自学内容网 自学内容网

C++开发调试工具:GDB调试,windebug调试,adb调试

我们在C++开发过程中时常避免不了要调试追踪,一下介绍最主流的三种调试工具:

一.GDB调试

1.coredump文件:
coredump文件是程序异常时系统产生的错误日志文件,即核心转储文件;
编译一个debug程序,必须是debug版本,否则无法产生coredump文件;
编译命令:g++ test.cpp -o mytest -g,必须要加上"-g"才能生成由debug info的文件;
执行程序直至崩溃,让其产生coredump文件;
2.GDB命令调试:
安装GDB命令:sudo apt-get install gdb下载,执行…/configure,执行make j4,执行sudo make install安装
GDB常用命令:run,break,continue,frame,list,next等
调用GDB命令:gdb mytest core.2222
查看调用堆栈命令:bt 来看到崩溃时执行的程序行
切入出问题的堆栈中命令:f 0(f加上堆栈编号)看以看到当时执行的程序代码行,确认出问题的点
查看对应的指针命令:p ptr(指针名称) 可以看到该指针为空等原因

二.windebug调试

安装windebug,控制面板 -> 程序 -> Windows Software Development Kit -> 右键选择更改 -> change -> 勾选Debugging Tools For Windows -> 安装;
为进程创建转储文件(dmp),既可以在任务有管理中选中进程 -> 右键 -> 创建转储文件;
运行要调试的程序;
打开windebug工具,菜单栏选择"file",“Attach to Process”;
选择要调试的目标程序;
附加;
附加后程序会被暂停,这时候需要使用Debug中go、step out、stepover等命令让程序继续执行,直到出现异常,Windbg会检测出异常,并停止;
windbg发现异常并中断,然后输入:.dump /f e:dump/XXXX.dmp,来生成全信息的dmp文件;

三.adb调试

1.介绍
adb全称Android Debug Bridge是C/S模式的桥接调试工具,可以上传/下载文件,运行设备shell命令,对设备安装和卸载应用等功能,主要用于andriod调试,也支持Linux嵌入式设备调试;
2.安装adb
adb支持Windows和Linux,在adb官网下载;
Windows上解压后设置系统环境变量指向解压释放的目录,如下:
(1)本人将adb包解压在“E:\software\platform-tools”目录
ADB解压目录
(2)设置环境变量:此电脑->属性->高级系统设置->高级->环境变量
在这里插入图片描述

接下来点击系统环境变量里的“path”,设置环境变量路径。
在这里插入图片描述
(3)验证adb
在这里插入图片描述
在cmd工具上输入 adb version获取版本号来验证adb是否有效
在这里插入图片描述

3.连接使用
通过数据线连接开发板;
打开cmd命令窗口,即可使用adb命令调试设备;
输入adb devices 检测是否有设备连接,以下说明有一个设备连接的。
在这里插入图片描述

4.常用命令

adb verison //显示adb版本;
adb help //帮助信息;
adb devices //查看当前已连接的设备列表;
adb root //获取root权限;
adb -s 2121212121 shell //与设备号为2121212121 的设备建立连接;
adb shell //当只有一个设备连接到电脑时,可直接使用adb shell与设备建立连接
exit //退出设备连接;
adb -p 6666 start-server //指定6666端口来启动设备adb服务;
adb shell pm list packages //列出当前设备中所有的包名;
adb install -r <文件路径\apk> //覆盖式安装apk包;
adb push C:\user\test /usr/local/ //将C盘下的test文件拷贝到设备的usr/local目录下;
adb pull /usr/local/test.txt C:\user\test  //将设备上 usr/local目录下的test.txt文件,拷贝到电脑C盘下的test文件夹;
adb shell getprop ro.product.model //获取设备型号;

原文地址:https://blog.csdn.net/qianniulaoren/article/details/140197419

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!