专栏名称: 21ic电子网
即时传播最新电子科技信息,汇聚业界精英精彩视点。
目录
相关文章推荐
COMSOL  ·  【在线演示】多物理场仿真简介 ·  昨天  
21ic电子网  ·  突发!德国“老牌”电机厂申请破产 ·  4 天前  
21ic电子网  ·  低功耗蓝牙龙头,收购一家UWB芯片公司! ·  4 天前  
半导体行业联盟  ·  聚焦半导体新风向,苏州系列专业会议即将启幕! ·  5 天前  
21ic电子网  ·  突发!又一造车新势力被曝拖欠工资 ·  6 天前  
51好读  ›  专栏  ›  21ic电子网

嵌入式linux的GDB调试与常用命令

21ic电子网  · 公众号  · 半导体  · 2024-10-21 16:53

正文


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调试命令,有效地进行调试:

  1. gdb
    启动GDB并加载指定的可执行文件。

  2. run(或r)
    启动程序的执行。可以带参数,例如run arg1 arg2。

  3. break (或b
    在指定位置设置一个断点。位置可以是行号、函数名或文件名+行号,例如break main或b 25。

  4. continue(或c)
    从当前断点处继续执行程序,直到下一个断点或程序结束。

  5. step(或s)
    单步执行程序,进入函数内部。

  6. next(或n)
    单步执行程序,但不进入函数,直接执行到下一行。

  7. finish
    继续执行当前函数直到返回,并显示返回值。

  8. print (或p
    打印指定表达式的值。例如,print x会显示变量x的当前值。

  9. display
    每次程序停止时自动显示指定表达式的值。可以用来监控变量的变化。

  10. backtrace(或bt)
    显示当前调用栈的信息,帮助分析程序的执行路径。

  11. list(或l)
    显示当前执行的源代码位置附近的代码行。

  12. watch
    设置观察点,当表达式的值发生变化时暂停程序。

  13. info breakpoints
    显示当前设置的所有断点的信息。

  14. delete
    删除指定的断点。例如,delete 1会删除编号为1的断点。

  15. quit(或q)

    退出GDB。


3、重要的调试命令   

1. aw (Access Watchpoint)

  • 命令: aw

  • 用途: 设置一个访问观察点,当程序读取或写入指定位置的内存时,程序将会停止。

  • 参数:

    • : 可以是变量名、内存地址或表达式,例如 aw myVar 或 aw *0x12345678。

  • 示例:

    aw myVariable

    这将会在 myVariable 被读取或修改时停止程序。


2. rw (Read Watchpoint)

  • 命令: rw

  • 用途: 设置一个只读观察点,当程序尝试读取指定位置的内存时,程序将会停止。如果该位置被写入,不会触发停止。

  • 参数:

    • : 可以是变量名、内存地址或表达式,例如 rw myVar 或 rw *0x12345678。

  • 示例:

    rw myVariable

    这将会在 myVariable 被读取时停止程序,但在被修改时不会停止。


3.until 命令用于让程序继续执行直到当前堆栈帧返回或者到达一个特定的源代码行。这通常用于在调试时快速跳过一些不相关的代码块,直接运行到下一个重要的代码位置。

until 命令的用法

  • 命令: until [location]

  • 语法:

    • until:不带参数时,将执行直到当前函数返回。

    • until :可以指定一个源代码位置(行号)或地址,程序将继续执行直到到达该位置。


温馨提示:

因最近微信公众平台推送规则改变,很多读者反馈没有及时看到更新的文章。根据最新规则,建议多点击“推荐阅读、分享、收藏”等,成为常读用户。


推荐阅读:


请点下【在看】给小编加鸡腿