Linux:调试器--gdb简单使用


gdb:调试器

功能:调试一个程序的运行过程,查看程序出问题的位置

Linux下gcc编译器默认生成release版本程序,不带有调试符号信息,意味着程序无法被调试。
所以程序调试的前提就是编译生产debug版本程序,因此编译程序时需要加上gcc -g选项, 开启调试,向程序中添加调试符号信息。

调试命令

  • gdb binFile 退出: ctrl + d 或 quit

开始调试命令:

  • run/r :程序直接开始运行 ;
  • start :开始逐步调试

调试的流程控制命令:

  • list :查看指定文件指定行附近的代码 list filename:line
  • next/n 下一步:并不跟踪进入函数
  • step/s 下一步:跟踪进入函数
  • until 直接运行到指定文件的指定行 until filename:line
  • continue 从当前位置继续运行

断点相关命令:

  • break:打断点
    • break filename:line(给指定文件指定行打断点)
    • break function_name(将断点打到函数的首行)
  • info break 查看断点信息
  • delete: 删除断点
  • watch: 变量监控,当变量内容发生变化则停下来 watch varible name

其他命令:

查看程序运行信息中的函数调用栈
backtrace: 查看程序运行的调用栈信息–定位程序崩溃位置
因为程序崩溃后,栈顶函数就是出问题的函数

  • backtrace(或bt):查看各级函数调用及参数
  • list/l line 查看指定行(默认当前调试行)附近代码
  • finish:执行到当前函数返回,然后挺下来等待命令
  • print( p ):打印表达式的值,通过表达式可以修改变量的值或者调用函数 p 变量;打印变量值。
  • set var:修改变量的值
  • display 变量名:跟踪查看一个变量,每次停下来都显示它的值
  • undisplay:取消对先前设置的那些变量的跟踪

如有不同见解,欢迎留言讨论~~

猜你喜欢

转载自blog.csdn.net/AngelDg/article/details/106605589