除了 gcc,我可以使用哪个程序在 Linux 中进行调试?我在 Ubuntu 12.04 上使用 vi、gcc。尽管 gcc 提供了调试选项,但仍然有任何程序可以给我一个详细的解释,即关于堆栈空间、指针位置等。
问问题
97 次
3 回答
4
首先,我假设您的意思是gdb
,而不是gcc
(这是编译器)。
这是一个非常广泛的问题,因为您没有编写 GDB 中缺少的功能。但是,Linux 中有很多可用的调试器:
LDDB:LLVM 调试器,非常类似于 gdb。由 Apple 工具使用。如果您使用clang
.
Valgrind:用于分析内存使用、性能分析、检测常见错误(线程问题等)的高级工具
gperftools:Google 的工具、性能分析器、堆检查器(检测内存问题,例如访问超出边界的数组)、堆分析器
IDA:商业调试器和反汇编器。在调试您无权访问源代码的程序时很有用。
.... 而这样的例子不胜枚举。
于 2013-10-26T17:06:45.463 回答
2
正如评论中带有幽默感(讽刺?:p)所建议的那样,gcc
是编译器,而不是调试器。中的调试选项gcc
只是告诉编译器生成调试符号以及程序的二进制输出。
这样,调试器就gdb
能够处理您的程序以进行调试会话。只需谷歌一下gdb
,查看手册,在简单的程序上进行测试,看看哪些功能对你来说很有趣……而且……玩得开心
gcc
更准确地说,如果您不为编译器指定调试选项(因为它是-g
),调试器将无法跟踪流程工作流及其内存状态
于 2013-10-26T17:02:57.860 回答