快速浏览

返回

 

***************************************************************************

*                          法律声明

* 版权所有:重庆比纯软件科技有限公司

* 比纯调试器及其文档是重庆比纯软件科技有限公司财产。没有

* 比纯软件科技正式许可,任何个人和单位不得将产品及其文档

* 用于商业活动。

*

*

***************************************************************************

 

 

 

 

简介 

      欢迎使用比纯源代码调试器。 

      比纯源代码调试器是真正意义上的源码级调试器。比纯调试器2.0支持WINDOWS,LINUX,UNIX,ANDROIDAPPLE

   比纯调试器2.0Windows下调试支持:

   python,golang, mcu(large ram),vc,java,c#,android,qt,windows driver , php , nodejs , kotlin matlab.

   比纯调试器2.0LINUX下调试支持:

   python , golang , gcc,java, android , qt, kernel, uboot , nodejs , php , kotlin

   比纯调试器2.0BSD UNIX下调试支持:

   python , gcc , node , php

   比纯调试器2.0Android下调试支持:

   SDK   NDK , android studio 下的JAVA 、C 、Kotlin工程

   比纯调试器2.0Apple下调试支持:

   MacOS | iOS 下的object-cswift开发

      比纯调试器100%报告崩溃源代码位置,100%报告线程无限循环源代码。

      比纯调试器采用进程日志技术,自动跟踪与过滤进程运行轨迹,解决了大工程不知从何处下调试断点的局限。

      通过使用源代码日志,源代码逻辑bug能被很快发现。比纯调试器记住每一真正运行源代码行。查看源代码运行日志,您的 逻辑bug能被快而准地发现!

      比纯调试器跟踪资源建立和释放。内存指针,文件,网络套接字,结构对象...,均能被跟踪。

      比纯调试器跟踪程序变量。当变量值改变 ,比纯调试器马上记住当前值和该源代码行所在位置。

      比纯调试器支持断点和单步调试。

      比纯调试器耗时统计能改进您的程序性能。

   比纯调试器大多情形为零配置。安装后即可调试、构建代码工程。

      版权所有(C)重庆比纯软件科技有限公司

 

功能特点 

 

      比纯调试器主要功能如下:

1) flash

       用户在任意时间可观察进程最新60000行运行现场源代码。许多bug就藏在这些按运行顺序组织的源代码里面.

2) 日志

     跟踪每一行源代码, 保存至源代码日志。所有bug就藏在这些按运行顺序组织的源代码里面。

3) 跟踪指针 

      实时报告野指针, 未释放指针

4) 消息输出

      输出任何组织成字符串的调试信息。

5) 跟踪变量

      跟踪变量值改变过程,地址计算,堆变量察看。

6) 耗时统计

      每一行代码耗时计算。

7) 断点 、观察点

     用户可设定源代码断点。某些情形,如单片机,驱动,断点不适合,适合观察点,只快照,不中断。

8) 单步跟踪

      单步跟踪源代码。

9) 函数时序

      函数调用时序。

10)资源  

     跟踪资源建立和释放。 

11)同时调试多个工程  

     同时调试应用程序及其库工程;同时调试clientserver如何进行会话;同时调试安卓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/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]

flashclog命令事先设置多个过滤条件, 过滤指定的文件,函数体,字符串

 

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指针( mallocfree)(newdelete)

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_namev_addrv_len) 设定变量值跟踪。

bwatch(name,class,obj,member,datatypedatalen)设定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();
[00009][hello.java](00000) x.add( 21
3725 );

new subc()耗时54时间片。 x.add(213725)函数调用耗时极少。

timeon

timeoff

timeoff

耗时统计开关打开关闭。

timeoff

 

export

 

export -s file

导出build时生成的调试数据大包,以备在另外测试PCandroid或嵌入设备手机上调试

export -s /home/usr/a.pkg

(linux, unix)

export -s i:\x.pkg

(win)

(可以把a.pkg , x.pkgimport入设备)

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) 重庆比纯软件科技有限公司

 

 

比纯调试器插件调用api 

    

 

函数

用法

示例

bwp()

bwp()

在不能停的环境中用观测点代替断点

单片机、手机、内核、ubootnodejs和驱动只能用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;
s = "" + z;

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_len0,则关闭该变量的跟踪.

跟踪变量后,使用:

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) 被 调试进程                  比纯调试器   在相同LANip地址设比纯调试器地址 如:192.168.1.188

(3) 被 调试进程在AndroidiPhone的模拟机里,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 >

 

      比纯调试器文档解决方案还可查看编辑您的树状组织的源代码。 帮助您飞快搜索到您的源代码。 您可修改、查找、替换、删除 整个源代码树,LinuxUnix用户应非常欢迎比纯代码树编辑器。

      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