SHL

得陇复望蜀
在学习DL性能优化的学生
© 2018. All rights reserved.

GDB调试

因为一般都是在linux命令行下直接编译代码,已经不太使用ide了,所以gdb这个调试神器也应该学习一下。 (一直用fprintf也实现显示不出专业性^_^)

gdb调试其实就相当于另开了一个shell,在其中你可以输入各种命令来对程序进行操作。

基础命令

  • run
    缩写为 r ,表示执行程序(如果程序已经在执行了,则重新开始执行程序)。
  • continue
    缩写为 c ,表示程序执行到下一个断点处停止。
  • break
    缩写为 b ,设置断点。
    用法:
    • b [行号] -> b 12
    • b [函数名] -> b compute
    • b [条件] -> b 7 if i==99
  • info
    查看信息,用法为info [name] -> info b 表示查看断点信息。
  • step
    缩写为 s ,表步进,如果当前执行的为函数,则进入函数内部。
  • next
    缩写为 n ,单步执行,不会进入函数。
  • clear
    用法:
    • clear 删除所有断点
    • clear [行号] 删除该行断点
    • clear [函数名] 删除该函数处断点
  • quit
    退出gdb调试

进阶命令

  • watch
    watch也是设置断点的一种方式,它可以跟踪变量,非常方便。(注意改变量在当前行应已被定义) 如 watch i == 1,那么当i=1时程序就会自动停下。