现在我有一个c语言项目,其中包含三个目录 / bin , / inc 和 / src 。 所有头文件( .h)都包含在 / inc 中,所有源( .c)文件都存储在 / src 中,ieac ,bc,cc ..,最终生成的可执行文件将位于/ bin。
在使用makefile编译之后,所有obj文件都将在 / src / obj 中生成,如a.o,b.o,c.o,d ......!此外,将在 / bin 目录中生成final.exe可执行文件。
现在,如果我想用GDB调试它,我该怎么办?
调试/ src / obj中的那些obj文件?或者其他什么?
非常感谢您的帮助!
答案 0 :(得分:3)
您可以通过使用GDB启动应用程序来调试应用程序
%> gdb <your_executable>
或通常更容易的是启动您的应用程序,然后使用PID将调试器附加到进程。
%> gdb -p <pid>
对于命令行选项,只需键入gdb -h
并在gdb内部运行
通过在gdb命令行上键入“help”,始终可以获得帮助。
以下是一些常用命令的快速cheat sheet和tutorial site。
正如Arkaitz所提到的,请确保编译代码,以便它具有可执行文件中包含的必要调试信息。
如果从命令行进行调试有点令人生畏,可以使用一些使用GDB的UI。我使用gdb在Eclipse中进行了很多调试。
一旦你开始走下gdb路径,我相信你会有更多问题,我鼓励你在SO上提出更具体的问题。
祝你好运。答案 1 :(得分:1)
gdb bin/binary.exe
有什么问题?如果编译正确并将-g -ggdb
放在编译标志中,GDB应该有足够的信息来显示内联代码