在 Linux 中调试 C++

Posted

技术标签:

【中文标题】在 Linux 中调试 C++【英文标题】:Debugging C++ in Linux 【发布时间】:2011-05-06 16:31:24 【问题描述】:

在使用 Visual Studio 一周后,我发现 Linux 中的 CodeBlocks 和其他 IDE 远远逊色。我不知道我是否遗漏了什么,但我很想在 Linux 中拥有像 VS 这样的 IDE。我试过gdb,但我觉得很难用。 例如,Linux 中是否有任何东西可以像 Visual Studio 显示的那样检查链表的值。

我需要试试 DDD。 (界面看起来像 1980 年代 :()

【问题讨论】:

您是在 IDE 中开发 C++ 吗? ***.com/questions/79023/c-gdb-gui的可能重复 你应该在你的 gdb foo 上工作,这样你就可以成为一个真正的 linux 用户,而不仅仅是一个 windows、linux 用户。 【参考方案1】:

是的,Data Display Debugger 或 DDD 在调试时以图形方式显示数据结构。话虽如此,如果您正在用 C++ 编写自己的链表类,那么您并没有真正充分利用该语言。为什么不使用已经完全调试的 std::list?

【讨论】:

我得说我觉得 DDD 不如 Visual Studios 直观。没有通过手册 - 但不需要 VS。 (我不喜欢这样说……) @Tom - 说出来也不错。每个人都私下认为,但没有人愿意谈论它。 上次用ddd的时候,太bug了,刚学gdb命令行界面,再也没看ddd。【参考方案2】:

Nemiver 是用于 C 和 C++ 的独立图形调试器。它得到积极维护,并具有现代调试器应具备的许多功能:设置断点、观察点、单步执行代码、检查内存和寄存器、显示变量内容的工具提示、集成反汇编器、源文件以语法高亮显示等。

【讨论】:

它在可视化 STL 容器方面的表现如何? Nemiver 的下一个版本将支持漂亮打印的标准 STL 容器。查看最新状态报告:mail.gnome.org/archives/nemiver-list/2011-March/msg00001.html 有趣。这似乎是一个好的开始。哪里有说明书?它如何处理线程?有没有办法打开监视窗口?【参考方案3】:

很惊讶没有人提到带有 CDT 的 Eclipse。在迁移到 Linux 之前使用 VS 多年,我发现它同样胜任。

【讨论】:

STL 容器可视化效果如何比较? 一张图描绘一千个字:cam-bamber.co.uk/other/Screenshot.jpg。不过,您需要先执行此操作:sourceware.org/gdb/wiki/STLSupport【参考方案4】:

我建议您查看 KDevelop 和 Qt Creator。

他们有一个图形调试器(它只是一个 GDB IDE,就像 DDD),它可以让您像在示例中一样浏览类字段和指针。

【讨论】:

【参考方案5】:

可能的最短答案是:是的,有可以在 Linux 上运行的 IDE,但在调试方面我从未见过任何与 Visual Studio 相近的东西。

【讨论】:

【参考方案6】:

试用带有 C++ 插件的 Netbeans。我觉得它很有用。

【讨论】:

【参考方案7】:

现在您只需要 JetBrain 的 Clion,提高工作效率并轻松调试。

【讨论】:

【参考方案8】:

也请查看MonoDevelop。它的设计与 Visual Studio 非常相似。

【讨论】:

以上是关于在 Linux 中调试 C++的主要内容,如果未能解决你的问题,请参考以下文章

c++ Windows 调试性能与 linux 相比非常慢

C++再谈vscode界面调试C++程序(linux) - 知识点目录

使用 Eclipse 调试 C++ 库

无法从 Visual Studio 启动 gdb 以在 Windows 上的 Linux 子系统中远程调试 Linux C++ 项目

在Windows上使用VSCode远程链接到Linux上开发并调试C++程序

Windows和Linux下排查C++软件异常的常用调试器与内存检测工具详细介绍