除了gcc之外,我可以使用哪个程序来解决Linux问题?我在Ubuntu 12.04上使用vi,gcc。虽然gcc提供了调试选项,但仍然有任何程序可以给我一个详细的解释,即关于堆栈空间,指针位置等。
答案 0 :(得分:4)
首先,我假设您的意思是gdb
,而不是gcc
(这是编译器)。
这是一个非常广泛的问题,因为您没有编写GDB中缺少的功能。但是,Linux中有很多可用的调试器:
LDDB:LLVM调试器,与gdb非常相似。由Apple工具使用。如果您使用clang
编译代码,请使用。
Valgrind:分析内存使用,分析性能,检测常见错误(线程问题等)的高级工具
gperftools:Google的工具,性能分析器,堆检查器(检测内存问题,例如访问超出其边界的数组),堆分析器
IDA:商业调试器和反汇编程序。在调试无法访问源代码的程序时很有用。
....然后名单继续。
答案 1 :(得分:2)
正如评论中提到的幽默(讽刺?:p),gcc
是编译器,而不是调试器。 gcc
中的调试选项只是告诉编译器生成调试符号以及程序的二进制输出。
这样,调试器,如gdb
,就能够处理调试会话的程序。只需谷歌约gdb
,查看手册,在简单的程序上测试它,看看哪些功能对你有用......并且......玩得开心
更准确地说,如果没有为编译器指定调试选项,调试器将无法跟踪进程工作流及其内存状态(对于gcc
它是{{1} })
答案 2 :(得分:0)