GDB在断点触发时, 怎样查看函数的自动变量和局部变量?怎样查看断点所在函数的源代码?

在 GDB 中,当断点触发时,你可以查看函数的自动变量和局部变量,并且可以查看断点所在函数的源代码。以下是如何进行这些操作的详细步骤:

查看自动变量和局部变量

  1. 使用 print 命令
    • 查看自动变量或局部变量
      (gdb) print <变量名>
    • 例如,如果你在断点处想查看变量 localVar 的值,可以使用:
      (gdb) print localVar
    • 查看更复杂的表达式
    • 你可以打印更复杂的表达式,例如数组或结构体的成员:
      (gdb) print myStruct.member
    • (gdb) print myArray[3]
  2. 使用 info locals 命令
    • 查看所有局部变量(gdb) info locals
    • 该命令会列出当前函数中所有局部变量及其值。
  3. 使用 info args 命令
    • 查看函数参数(gdb) info args
    • 该命令会列出当前函数的所有参数及其值。
  4. 使用 display 命令
    • 自动显示变量
      如果你希望在每次断点触发时自动显示某些变量的值,可以使用 display 命令:(gdb) display <变量名>
    • 示例:(gdb) display localVar

查看断点所在函数的源代码

  1. 使用 list 命令
    • 查看当前源代码
      (gdb) list
    • 该命令会显示当前执行位置周围的源代码。
    • 查看特定文件和行号的源代码
      (gdb) list <文件名>:<行号>
    • 示例
      (gdb) list main.cpp:42
  2. 查看函数的源代码
    • 查看当前函数的源代码
      如果你想查看当前函数的完整代码,可以使用:
      (gdb) list <函数名>
    • 这会列出当前函数的源代码。
    • 通过断点位置查看代码
      如果你知道断点的编号,可以直接查看断点所在的文件和行号的代码:
      (gdb) info breakpoints
    • 这个命令会列出所有断点及其位置。你可以根据断点的文件和行号使用 list 命令来查看代码。

总结

  • 查看局部变量:使用 print <变量名>、info locals 和 info args 命令。
  • 自动显示变量:使用 display <变量名> 命令。
  • 查看源代码:使用 list 命令来查看当前或特定文件和行号的源代码。

这些命令可以帮助你在调试过程中更好地理解和检查代码的状态。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部