首页 > Note > GDB 常用调试技巧

GDB 常用调试技巧

2019年10月12日 发表评论 阅读评论

1. 调试宏

宏是预编译的,无法 print 宏的定义。但是如果配合 gcc, 我们还是可以有限地调试宏。
在 GCC 编译程序的时候,加上 -g3 参数,就可以调试宏了。

  • info macro mac_name 可查看宏定义,及位置
  • macro expand mac_expr 可查看宏展开的样子

示例:

调试现场如下:

2. 修改变量

两种方法:

  1. print var_name=x
  2. set var var_name=x

示例:

调试现场如下:

3. 强制函数返回

使用

  • return
  • return expr
    来忽略还没有执行的语句并返回

4. 跳转执行

jump location 简写 j location 可以实现跳转调试。
location 可以是行号, +/-偏移, 文件名:行号, 函数名,*内存地址 等
使用 jump 需要小心:

  1. 它类似于 c 语言的 goto, 需要注意跳转前后的联系, 否则可能出现程序崩溃等问题
  2. jump 在跳转后会立即执行,如果要在跳转后高度,需要配合断点使用。
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.