1

除了 gcc,我可以使用哪个程序在 Linux 中进行调试?我在 Ubuntu 12.04 上使用 vi、gcc。尽管 gcc 提供了调试选项,但仍然有任何程序可以给我一个详细的解释,即关于堆栈空间、指针位置等。

4

3 回答 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 回答
0

IDB:它是 Intel 的调试器,附带 icc 编译器(您可以在此处获取非商业用途的版本并试用)。gdb 兼容,一个很棒的工具,使用起来非常友好,甚至包括 GUI。这就是我认为您正在寻找的东西(我猜您认为 gdb 太不友好了,对吧?)

Dbx : 这是 Sun/Orable 的调试器(我没有专门使用这个),附带 Sun Studio 软件集(我确实使用了编译器和 IDE),您也可以免费下载。也是一个很棒的工具,与 gdb 非常相似。

于 2013-10-26T17:54:03.677 回答