1、GDB的部署
建立gdb调试链接过程:
1、主机启动gdb,目标板启动服务器gdbserver
2、同时注意所调试程序编译选项需要带-g选项增加调试信息,并且主机和目标板上的调试程序需保持一致。
3、开发板运行 : "gdbserver 主机IP:端口 ./被调试的程序"
4、在ubuntu主机上运行gdb:"arm-none-linux-gdb 被调试程序"
5、在ubuntu主机中开始使用gdb连接开发板:" target remote 开发板IP:端口",这样便进入了gdb调试状态,然后在ubuntu主机上输入对应的gdb命令便可调试程序了。
2、GDB常用命令
以下是15个常用的GDB调试命令,有效地进行调试:
gdb
启动GDB并加载指定的可执行文件。
run(或r)
启动程序的执行。可以带参数,例如run arg1 arg2。
break (或b )
在指定位置设置一个断点。位置可以是行号、函数名或文件名+行号,例如break main或b 25。
continue(或c)
从当前断点处继续执行程序,直到下一个断点或程序结束。
step(或s)
单步执行程序,进入函数内部。
next(或n)
单步执行程序,但不进入函数,直接执行到下一行。
finish
继续执行当前函数直到返回,并显示返回值。
print (或p )
打印指定表达式的值。例如,print x会显示变量x的当前值。
display
每次程序停止时自动显示指定表达式的值。可以用来监控变量的变化。
backtrace(或bt)
显示当前调用栈的信息,帮助分析程序的执行路径。
list(或l)
显示当前执行的源代码位置附近的代码行。
watch
设置观察点,当表达式的值发生变化时暂停程序。
info breakpoints
显示当前设置的所有断点的信息。
delete
删除指定的断点。例如,delete 1会删除编号为1的断点。
quit(或q)
退出GDB。
3、重要的调试命令
1. aw (Access Watchpoint)
2. rw (Read Watchpoint)
3.until 命令用于让程序继续执行直到当前堆栈帧返回或者到达一个特定的源代码行。这通常用于在调试时快速跳过一些不相关的代码块,直接运行到下一个重要的代码位置。
until 命令的用法
因最近微信公众平台推送规则改变,很多读者反馈没有及时看到更新的文章。根据最新规则,建议多点击“推荐阅读、分享、收藏”等,成为常读用户。
推荐阅读: