【问题标题】:C++ debuggers for linux similar to MS Visual Studio's debugger? [closed]适用于 linux 的 C++ 调试器类似于 MS Visual Studio 的调试器? [关闭]
【发布时间】:2015-10-05 18:37:05
【问题描述】:

一点背景知识:一段时间以来,我一直在为我的 C++ 项目使用免费的 IDE,名为 CodeBlocks。最近我获得了 Microsoft Visual Studio 2013 的许可证,我不得不说这是一种完全不同的体验。自动完成功能更好、更灵敏、更准确地在您键入时进行错误检查,是 MFC 应用程序的可视化资源管理器。虽然这些东西你几乎可以在任何带有正确插件的文本编辑器中获得,但我发现 MS Visual Studio 特别吸引人的是它非常漂亮且视觉上吸引人的调试器(比 CodeBlocks 中的更易于使用并提供更多信息) .

我一直在考虑切换到基于 linux 的系统,因为至少对我而言,它似乎为通用编程提供了更好的工具。但是,我不能让自己失去 MS VS 调试器并回到 CodeBlocks 中的调试器。我一直在寻找各种适用于 linux 的调试器,但我真的找不到类似于 MSVS2013 中的调试器。有人可以帮我吗?我可以使用什么好的调试器?

我正在寻找的功能:

  • “自动”监视选项卡/窗口,用于跟踪最近使用或可能使用的变量,包括在类方法中的“this”指针;
  • 一个“Locals”监视选项卡/窗口,它严格跟踪局部变量(无需手动输入)
  • 高亮显示从一条指令跳到另一条指令时发生变化的变量
  • 能够设置多个 Watch 窗口/选项卡并在它们之间轻松切换
  • 能够展开被监视的对象以查看其成员的值
  • 能够轻松查看存储在监视指针指向的地址中的值

【问题讨论】:

  • 使用像样的 IDE,例如Eclipse CTD。

标签: c++ linux visual-studio debugging visual-studio-2013


【解决方案1】:

嗯,你并不缺乏选择。

经典的 Linux 调试器 - gdb - 有一个基于 ncurses 的命令行 gui,它通过使用 -tui 参数启动来激活。诚然,与 IDE 集成相比,它有点基础,但功能非常强大。

一个名为 ddd 的 gdb 独立 GUI 在某些圈子中很流行。该界面不是特别现代,但它支持所有 gdb 功能。

如果您正在寻找集成开发环境,那么 Jetbrains CLion 是一个相对较新的产品,但具有合理的 gdb 集成。如果您正在寻找免费的替代方案,那么 Eclipse CDT 的集成度相当不错。

我个人最喜欢的选项是一个名为 VisualGDB 的商业插件,它将 VisualStudio 与 GDB 集成在一起,允许您在不离开 VisualStudio 的情况下进行编译和调试。它非常灵活,并且得到了积极的支持和开发。

【讨论】:

    【解决方案2】:

    您可以使用GNU emacs 编辑器来输入 - 甚至编译 - 您的 C++ 代码。

    它可以运行gdb debuggerGCC 编译器(对于您的 C++ 代码,您可以将invoke it 用作g++ -Wall -Wextra -g 以获取警告和调试信息)、GNU make 构建自动化工具、git version control工具等...

    如果您需要在 emacs 之外为 gdb 提供图形界面,请考虑使用 xgdbddd

    【讨论】:

      【解决方案3】:

      我使用并喜欢 DDD 调试器(标准 gdb 之上的 GUI),它在多年的 MS VisualStudio 环境中感觉非常原生且易于学习。

      您可以执行所有“标准”调试任务,例如使用鼠标深入数据结构、设置断点、检查变量等。

      它被称为Data Display Debugger,您可以在 GNU 网站上找到更多信息,其中还包括屏幕截图,以便您快速判断该工具是否适合您: http://www.gnu.org/software/ddd/

      2017 年编辑
      新的 MS Visual Studio 2017(所有版本,包括免费版本)现在具有内置的 Linux 支持,包括使用 MS VC 的内置调试器远程调试 Linux 程序。这甚至包括编辑和继续支持(!)

      这是video that demonstrates这个

      【讨论】:

        猜你喜欢
        • 2018-11-27
        • 2021-09-28
        • 1970-01-01
        • 2012-08-15
        • 1970-01-01
        • 2023-02-16
        • 1970-01-01
        • 2010-12-09
        • 1970-01-01
        相关资源
        最近更新 更多