快速浏览
***************************************************************************
* 法律声明
* 版权所有:重庆比纯软件科技有限公司
*
*
* 比纯调试器及其文档是重庆比纯软件科技有限公司财产。没有
* 比纯软件科技正式许可,任何个人和单位不得将产品及其文档
* 用于商业活动。
*
*
***************************************************************************
欢迎使用比纯源代码调试器。
比纯源代码调试器是真正意义上的源码级调试器。比纯调试器2.0支持WINDOWS,LINUX,UNIX,ANDROID和APPLE。
比纯调试器2.0在Windows下调试支持:
python,golang, mcu(large ram),vc,java,c#,android,qt,windows driver , php , nodejs , kotlin ,matlab.
比纯调试器2.0在LINUX下调试支持:
python , golang , gcc,java, android , qt, kernel, uboot , nodejs , php , kotlin
比纯调试器2.0在BSD UNIX下调试支持:
python , gcc , node , php
比纯调试器2.0在Android下调试支持:
SDK NDK , android studio 下的JAVA 、C 、Kotlin工程
比纯调试器2.0在Apple下调试支持:
MacOS | iOS 下的object-c及swift开发
比纯调试器100%报告崩溃源代码位置,100%报告线程无限循环源代码。
比纯调试器采用进程日志技术,自动跟踪与过滤进程运行轨迹,解决了大工程不知从何处下调试断点的局限。
通过使用源代码日志,源代码逻辑bug能被很快发现。比纯调试器记住每一真正运行源代码行。查看源代码运行日志,您的 逻辑bug能被快而准地发现!
比纯调试器跟踪资源建立和释放。内存指针,文件,网络套接字,结构对象...,均能被跟踪。
比纯调试器跟踪程序变量。当变量值改变 ,比纯调试器马上记住当前值和该源代码行所在位置。
比纯调试器支持断点和单步调试。
比纯调试器耗时统计能改进您的程序性能。
比纯调试器大多情形为零配置。安装后即可调试、构建代码工程。
版权所有(C)重庆比纯软件科技有限公司
比纯调试器主要功能如下:
1) flash
用户在任意时间可观察进程最新60000行运行现场源代码。许多bug就藏在这些按运行顺序组织的源代码里面.
2) 日志
跟踪每一行源代码, 保存至源代码日志。所有bug就藏在这些按运行顺序组织的源代码里面。
3) 跟踪指针
实时报告野指针, 未释放指针。
4) 消息输出
输出任何组织成字符串的调试信息。
5) 跟踪变量
跟踪变量值改变过程,地址计算,堆变量察看。
6) 耗时统计
每一行代码耗时计算。
7) 断点 、观察点
用户可设定源代码断点。某些情形,如单片机,驱动,断点不适合,适合观察点,只快照,不中断。
8) 单步跟踪
单步跟踪源代码。
9) 函数时序
函数调用时序。
10)资源
跟踪资源建立和释放。
11)同时调试多个工程
同时调试应用程序及其库工程;同时调试client和server如何进行会话;同时调试安卓JAVA及其安卓C工程。
假定您的工程位于/path1/path2/.../pathn,则用比纯调试器构建就是:
build /path1/path2/.../pathn
或,
./bd.exe build /path1/path2/.../pathn ( Win形如: bd.exe build d:\path\myproject )
目录须绝对路径,在windows下可以包括空格符。比纯分析并构建他们,构建成功后的可执行文件中含有比纯的调试插件。
如构建成功, 报:Msg 50017 : build ok.否则构建失败。
只能用比纯先构建您的工程,然后才能用比纯调试您的工程。
您须手动先构建成功您的工程,无误后再交由比纯构建之。
编程语言 |
用法 |
备注 |
vc6 vc2003- vc2019 |
build d:\BTR\demo\win\hellowindow build d:\BTR\demo\win\tstdll build d:\BTR\demo\win\usedll build c:\Program Files\myproj\test |
|
java jdk J2EE |
build d:\BTR\demo\win\javahello build d:\BTR\demo\win\javabean build d:\BTR\demo\linux\servlet |
支持eclipse , jboss, tomcat , weblogic , websphere... |
c# |
build d:\BTR\demo\win\csharp |
|
g++ gcc
|
build /BTR/demo/linux/echo build /BTR/demo/linux/mylib build /BTR/demo/linux/mydll build /BTR/demo/linux/uselibdll
build /BTR/demo/unix/mylib build /BTR/demo/unix/mydll build /BTR/demo/unix/myexe
|
LINUX GCC UNIX GCC Win: GUI gcc
|
Driver |
build e:\Wdk8.1\samples\ioctl\sys build /home/usr/mod/mydrv
|
Windows: driver project in vc Linux: driver project in gcc |
Linux kernel
|
build /home/usr/kernel_prj/mymodule |
|
uboot |
build /opt/uboot |
|
mcu单片机
|
build d:\freescale\uart1_interrupt |
100M以上RAM的单片机才能调试 |
python
|
build d:\python\pytest |
win python linux python unix python |
go |
build d:\golang\mygo_prj |
win go linux go unix go
|
php |
build d:\php\myphp_prj |
|
Nodejs |
build d:\mynode\node_prj |
|
|
|
|
Qt |
build /home/usr/BTR/demo/linux/myQt build d:\BTR\demo\Win\myQt
|
Win Qt , Linux Qt , Android Qt |
android (java)
android (c,c++)
|
build e:\BTR\demo\win\android build /home/usr/BTR/demo/linux/androidstudio/myproj build /home/usr/BTR/demo/linux/android build /home/usr/BTR/demo/linux/androidstudio/myproj build /home/usr/BTR/demo/linux/androidstudio/myproj/mymodule
|
|
Object-c |
build /home/xcode/object macos | ios |
|
swift |
build /home/xcode/swift_prj\ macos | ios |
|
Matlab |
Build /home/myuser/matproj |
|
命令 |
用法 |
示例 |
F2 |
F2 暂停被调试进程,接受各种命令生效 |
F2 |
F3 |
F3 被调试进程继续运行,屏蔽各种手动命令 |
F3 |
help |
help 列示各命令 |
help |
shutdown |
shutdown 退出bd.exe |
shutdown |
restore |
restore 恢复代码,为build之前状态 |
restore |
build |
build <homepath> build <homepath> [subpath] build <homepath> a.c b.c c*.cpp (1)由比纯调试器构建工程,工程只有通过比纯调试器构建成功后,才能调试 (2)如有subpath , 则只调试subpath下的源代码 , subpath目录无代码, 则比纯调试器就是命令行构建器 (3)如指定a.c b.c等,则构建并对指定文件调试,运行速度快
|
build d:\myproj build /home/usr/t build /home/usr/t init/db build e:\myproj a.c |
flash |
flash [filter] [-s file] 顺序输出最新运行源代码行,崩溃时最后一行就是崩溃行。 |
flash flash -s a.txt (-s : 指定保存文件) flash a.c -s a.txt |
lon |
lon 日志开关打开 ,使clog命令生效 |
lon |
clog |
clog [filter] -s file 输出运行源代码的日志。再运用过滤可直观查看逻辑BUG |
clog -s c.txt -m 90000 (-m: 最大输出行数 ) clog a.cpp -s d.txt clog -e b.java -s d.txt (-e: 不含b.java代码) clog a.c:633 -s c.txt (633 函数定义行) (a.c:633代表该函数) |
loff |
loff 日志开关关闭 ,clog 命令失效 |
loff |
fadd |
fadd [codefile] [string] 对flash和clog命令事先设置多个过滤条件, 过滤指定的文件,函数体,字符串
|
fadd a.cpp fadd -e b.cpp : 547 ( 过虑掉b.cpp : 547行处的函数) fadd a.java : 63 (63 函数定义行) (过滤f:no处函数) fadd 'person->name' (过滤代码中含'person->name'串) |
flist |
flist 列示所加的过滤条件 |
flist |
fdel |
fdel #no 删除过滤条件 |
fdel 1 fdel 4 |
func |
func [filter] [-s file] 输出最新函数调用序列 |
func func -s b.txt func a.c -s b.txt |
flog
|
flog -s file 输出函数调用序列,时间段从lon命令打开算起 |
lon ... flog -s b.txt |
rfunc |
rfunc [filter] -s file 输出正在运行的函数表,所有崩溃行包含在正在运行的函数表中 |
rfunc -s a.txt rfunc test.java -s a.txt |
bins |
bins <file : no> 插入断点 若非跟踪崩溃,请插入断点,插入断点后进程运行更快,嵌入式及单片机提倡先设断点 |
bins a.cpp : 2149 bins [02149][a.cpp] bins -v a.c : 94 进程在a.c:94中断,如果bwatch(...)发现该处变量值改变 |
bdel |
bdel <no#> 删除一个断点 |
bdel 1 |
blist |
blist 列出所有断点 |
blist |
F7 |
F7 单步跟踪 |
F7 |
F8 |
F8 在当前函数内单步跟踪 |
F8 |
F9 |
F9 与F8相反,下一步跳出当前函数跟踪 |
F9 |
pv |
pv 显示所有未释放资源(bdebug.ini中[PV_FUNCTION]指定资源PV操作) 显示所有未释放RAM指针( malloc,free),(new,delete) |
pv 列出[PV_FUNCTION]指定的类似h=open(...),close(h)的未释放资源管理函数对;pointer , sock, file , ram ,struct, sql ... |
kadd |
kadd <file : no > 添加关键指针代码行,关键指针释放时,进程暂停并报告释放位置。 |
|
kdel |
kdel <no#> 去掉关键指针。
|
kdel 1 |
klist |
klist 显示所有关键指针。
|
klist |
vlog |
vlog <-s file> 输出变量值变化日志。 插件函数bwatch(var_name,v_addr,v_len) 设定变量值跟踪。 bwatch(name,class,obj,member,datatype,datalen)设定JAVA|C#值跟踪。 例:bwatch("buf" , buf , 1024 ); 例:bwatch( "NUM" , &num, sizeof( int) ); 例:bwatch( "PERSON",Person,p,age,int,4 );//in c# , in java |
vlog -s a.txt 将变量v的每一修改值及位置都记下来。从而观察v在何处出错。 |
pid |
pid 列出所有被调试进程号,代码工程名,断点表,过滤表,BTR调试器支持多个进程同时接受调试。 |
pid |
timeon |
timeon 耗时统计开关打开。 clog命令时,每行源代码就有耗时.0表示耗时极少 [00008][hello.java](00054) subc
x = new subc(); new subc()耗时54时间片。 x.add(21,3725)函数调用耗时极少。 |
timeon |
timeoff |
timeoff 耗时统计开关打开关闭。 |
timeoff |
export
|
export -s file 导出build时生成的调试数据大包,以备在另外测试PC或android或嵌入设备手机上调试 |
export -s /home/usr/a.pkg (linux, unix) export -s i:\x.pkg (win) (可以把a.pkg , x.pkg再import入设备中) |
import |
import file 导入旧的或其它PC的比纯调试器在build时生成的调试数据大包,该包由export命令导出, android手机或嵌入设备调试前一般有import入(win/linux下构建)调试数据大包。 |
import /home/usr/x.pkg import /data/a.pkg (android) import d:\a.dat |
pkgclean
|
pkgclean 删除不用的、旧的调试数据包 |
pkgclean |
startpage |
启动比纯调试器 web 服务, 提供html帮助,代码树查看等 查看编辑代码树,也可看userguide.htm等用户手册 http://127.0.0.1:9090/btrcode.html 查看、编辑代码树。 web服务在LINUX/UNIX可派上用途,尤其在海量代码搜索的应用上。 BTRweb.exe也可启动web。 其他web server此时应关闭。 打开操作: ./bd.exe bd > startpage BTRweb > 关闭操作: BTRweb > stoppage |
startpage
|
stoppage |
结束比纯调试器web服务 BTRweb.exe下用shutdown命令 |
stoppage |
版权所有 (C) 重庆比纯软件科技有限公司
函数 |
用法 |
示例 |
bwp() |
bwp() 在不能停的环境中用观测点代替断点 单片机、手机、内核、uboot、nodejs和驱动只能用bwp(),不能用bins 插入断点 |
y = f(x); … bwp(); … |
bprint() |
C , ObjectC: bprint( char *message ); 其他情形: bprint( String message ); bprint( string message ); bprint( message )
|
C OC C++: sprintf( s , "%d" , i ); bprint( s );
Java: z = x + y; bprint( s + z ); C#: bprint( "IUnknown" );
Py: bprint( "Python" )
Go: bprint( "GoLang" )
Swift: bprint( "swift" ) |
bwatch() |
情形一:C C | OC | Android C| Qt bwatch( "var_name" , void *addr ,ata_len ); //open bwatch( "var_name" , void *addr , 0 ); //close bd>vlog -s x.txt ( 文件x.txt保存变量值变化的每一个细节及代码位置)
情形二:全局class bwatch( "show_title" , classname , objectname ,member, data_type , data_len );//打开 bwatch( "show_title" , classname , objectname ,member, data_type , 0 ); //关闭
情形三:全局变量 bwatch( "show_title" , var, type , data_len ); //打开 bwatch( "show_title" , var, type , 0 ); /关闭 bwatch( "show_title" , var.field, type , data_len ); //打开 bwatch( "show_title" , var.field, type , 0 ); /关闭 ( golang 变量跟踪适用情形三) 情形四: 函数变量 bwatch( show_title , "var_name" , datatype , datalen);//open bwatch( show_title , "var_name" , datatype , 0);//close bwatch( show_title , "var_name.field" , datatype , datalen);//open bwatch( show_title , "var_name.field" , datatype , 0);//close 各情形下,data_len为0,则关闭该变量的跟踪. 跟踪变量后,使用: vlog -s v.txt查看各时期变量值。 |
情形一:C b=(char *)malloc(64); int i = 0; //variable trace bwatch("V1",b, 32 ); bwatch("V2",&i, 32 ); p = b; while( i < 3 ){ strcpy( p , "ABC" ); i++; p++; strcat( p , "def"); p += 2; *p++ = ( char )i; } //close trace bwatch("V2",NULL, NULL ); bwatch("V1",0, 0 ); free( b ); 情形二:全局class bwatch("str",string,s,s,string, 8); //open bwatch("str",string,s,s,string, 0);//close 情形三:全局对象 bwatch("str",s,string, 16); //open bwatch("str", s,string,0 ); //close 情形四:函数变量 bwatch("input","edit1.text",string, 16); //open bwatch("input", "edit1.text",string,0 ); //close |
版权所有 (C) 重庆比纯软件科技有限公司
调试 Java , C# , Android , Apple , Embed linux 时, 比纯调试器采用局域网调试进程。
LAN
-------------------------------------
| 设备1 | 设备2
被调试进程 比纯调试器
局域网可以是WIFI,以太网. 设备1和设备2可以是相同PC。
被 调试进程如何发现比纯调试器并与之通信呢?
(1) 被调试进程 与 比纯调试器 在同一设备, ip地址设: 127.0.0.1
(2) 被 调试进程 与 比纯调试器 在相同LAN网, ip地址设比纯调试器地址 如:192.168.1.188
(3) 被 调试进程在Android或iPhone的模拟机里,ip地址设: 10.0.2.2
比纯调试器有两类版本:
普及版适用于个人、公司等大量普及学习交流,作体验功能使用。
企业版和标准版用于商业领域。 用户必须付费购买。 企业版由比纯软件提供比纯调试服务PC,标准版由比纯软件提供比纯调试盒。
企业版功能更多一些,比如可配置防火墙,可以云端调试.
用户可从www.btrue.com.cn下载比纯调试器企业版。
1、从 www.btrue.com.cn下载企业版, 安装会很顺利。
2、 如果试用多用户企业版,您必须电子邮件发送以下信息:
公司名: |
|
地址 : |
|
邮编: |
|
电子邮箱 : |
|
公司电话( 非手机号) : |
|
联系人: |
|
联系人手机号 |
|
日期: |
|
3、 我们的工程师收到邮件马上发一个完整产品包,并和您们热线联系。
4、 我们的工作人员收到邮件后,用btrue@163.net马上发一个微信或支付宝二维码给用户,用户扫码付费完成比纯调试器的购买。
5、 我们的工作人员会快递比纯调试盒或者比纯调试服务器,用户插上比纯调试盒或将比纯服务器加入LAN网
6、 用户可使用比纯调试器构建和迅速的调试大工程了。
帮助目录位置: .\home\help。 帮助是HTML文档.
如果您在WINDOWS使用比纯调试器, 双击userguide.htm即可学习怎样使用调试器。
如果您在LINUX/UNIX使用比纯调试器, 使用BTRweb.exe阅读帮助。
比纯调试器web server会占用很多资源,不需要时请记住及时shutdown。
如果您发现字符乱码,请用UTF字符集。
1) 启动web server :
./bd.sh
startpage
BTRweb >
2) 使用mozilla游览器 ,访问:
http://www.btrue.com.cn/help/userguide.htm
3) 关闭www server.
BTRweb >stoppage
bd >
比纯调试器文档解决方案还可查看编辑您的树状组织的源代码。 帮助您飞快搜索到您的源代码。 您可修改、查找、替换、删除 整个源代码树,Linux和Unix用户应非常欢迎比纯代码树编辑器。
1) 启动web server:
./.bs.bat
bd > startpage
BTRweb >
2) 使用 mozilla游览器 ,访问:
http://127.0.0.1:9090/btrcode.html
3) In "project path" 域 , 输入您的源代码工程路径.
/home/usr/btr/demo/...
单击"Load"按钮后,如下所示:
4) 单击某个源代码文件链接, 右边主窗口即可查阅.
5) 在单个文件或整个工程代码树中执行查找、修改、替换操作。
6) 退出mozilla浏览器.
7) 关闭BTRweb.exe
BTRweb > shutdown
公司: |
重庆比纯软件科技有限公司。 |
|
|
网站: |
www.btrue.com.cn |
|
|
地址 : |
重庆市高新技术开发区石桥铺南华街701#B2-9-8 |
|
|
邮箱 : |
btrue@163.net |
|
|
电话 : |
023-68935745(中国.重庆) |
|
|
邮编: |
400039 |