如何使用gdb在特定的正在运行的应用程序的文件中调试函数?
问题描述:
我做了一个应用程序,其中有一个文件main.c
,它使用master.c
文件中的函数。我想用gdb tool
来调试我的应用程序,以查找在master.c
文件中定义的所有功能。这是可能的,如果是这样的话?如图所示here如何使用gdb在特定的正在运行的应用程序的文件中调试函数?
对于实例
答
您必须编译使用-g
标志程序。
然后,您开始gdb your_program
并设置断点:break master.c:37
,它将在master.c,第37行上设置断点,或者您可以在函数break foo()
处设置断点。
然后通过run
启动程序,并继续调试过程中,inspect
,continue
,watch
,display
...
http://www.gnu.org/software/gdb/
http://www.gnu.org/software/gdb/documentation/
http://www.cs.cmu.edu/~gilpin/tutorial/
谷歌更多的文档关于使用gdb。
当然有:
答
使用break
:
break master.c:5
你是什么意思的术语调试应用程序做?如果你细化这个术语,下面的答案已经回答了这个问题,或者我们可能找到一个更具体的解决方案。你想自动设置标题中定义的所有函数的断点吗?你想检查所有功能的记忆吗?或者你想通过将它们与给定输入的特定输出进行比较来测试这些函数吗?这可能也有帮助:http://stackoverflow.com/questions/1504965/how-to-run-a-linux-program-line-by-line – Alex 2011-12-27 10:18:52
我想自动设置标题中定义的所有功能的断点.. – 2011-12-27 10:29:40
http://stackoverflow.com/questions/1476002/gdb-set-breakpoint-on-all-functions-in-a-file的副本? – 2011-12-27 10:41:56