您好我想知道在Linux操作系统上哪些是最适合C / C ++的调试器。我听说过gdb和valgrind相当不错,但我想听听这些意见/比较。
谢谢
答案 0 :(得分:6)
GDB可能是我认为最好的。
内存调试器:
答案 1 :(得分:3)
还有EDB,它包含在BackTrack 5中。它更倾向于倒车。
答案 2 :(得分:1)
我认为我说的是Linux上常用的所有C ++源代码级调试器都是gdb或围绕gdb的包装器。至少除非你使用的是非gnu工具链。
Valgrind不是调试器。它是一个动态行为分析工具,可用于检测通常存在错误的某些类型的不当行为,但肯定不适用于您通常使用调试器的事物;你不能单步调试代码或检查变量等。你不能使用Valgrind来检测大多数类型的逻辑错误。
我不认为Valgrind曾声称自己是一名调试人员。
答案 3 :(得分:1)
Eclipse具有良好的集成调试环境。它是GDB的图形包装器 - 因此您可以获得GDB的强大功能,其界面更像Xcode或Visual Studio。
因为“GDB”是唯一的“真正的调试器” - (并认为“DDD”就是它的包装器) - Eclipse这可能是你正在寻找的调试器和IDE。
答案 4 :(得分:1)
另请参阅UndoDB http://undo-software.com/
它位于gdb下方并显着增强了gdb的可逆调试功能(例如内存损坏?在坏内存位置设置一个观察点,然后反向继续直接转到最后一段代码来更新该内存)。
答案 5 :(得分:0)
你对valgrind是对的。它是检测由动态分配内存引起的内存泄漏的有用工具。