你如何使用gdb来调试你的代码?

Mat*_*hew 12 debugging gdb

作为开发人员,您如何使用gdb来跟踪代码中的错误?你用什么技巧来让你的生活更轻松?

And*_*son 2

一般来说,你会发现一些事情不应该是这样的,然后逆向分析,直到你明白原因为止。

最明显也是最有用的:在函数或行号上设置断点并逐行遍历代码。

另一个方便的技巧是为所有结构/对象提供显示函数,即使它们从未在程序中使用过,因为您可以从 gdb 中运行这些函数:

gdb> p show_my_struct(struct)

My custom display of Foo:
   ...
Run Code Online (Sandbox Code Playgroud)

观察点也非常方便,但可能会大大减慢您的程序。当变量或地址的值发生变化时,它们会中断流程:

gdb> watch foo
Watchpoint4: foo
gdb>
Run Code Online (Sandbox Code Playgroud)