如何使用gdb达到与使用可视化调试器相同的效率水平

How can you reach the same level of efficiency using gdb as you do with a visual debugger?

本文关键字:调试器 水平 效率 可视化 gdb 何使用      更新时间:2023-10-16

我知道这就像异端,但我根本看不出在日常调试中(而不是高级转储和日志调试)使用gdb如何比可视化调试器更高效。

我来自.Net(热爱环境讨厌心态)的背景,在过去的几年里,我转向了PHP&C++我现在正在使用Eclipse用C++开发一个项目,我讨厌编辑器有多重,所以我转到了Textmate。但是调试太不舒服了。我使用的是gdb,但错过了可视化调试,它更容易、更高效。

然而,每个人都说——学会正确使用gdb!所以我在问-如何正确使用gdb&高效?

您可以将gdb与类似KDevelop的IDE一起使用。它有一个视觉界面,所以有帮助
或者GDB和Emacs,它几乎可以轻松地完成高级图形调试器所能做的一切。

补充一下,您可以查看这篇文章。它告诉一些不错的技巧。

您可以尝试qt-creatror,它也有漂亮而简单的GDB可视化界面。

DDD呢?

对我来说,我总是使用gdb的TUI模式。来自gdb手册:

gdb文本用户界面(TUI)是一个使用curses库以显示源文件、程序集输出、程序单独的寄存器和gdb命令文本窗口。TUI模式为仅在以下平台上支持curses库的合适版本可用。

它为gdb带来了一些可视化调试,这对我来说已经足够了。我通常以常规命令行模式启动gdb,观察回溯并在其中设置断点。当我想查看源代码时,我切换到具有键绑定C-x-C-a的TUI模式,然后切换回看回溯。这是gdb的内置即用功能。您不需要任何其他软件,如KDevelop或Emacs来使用它。

我将netbeans用于C++。它与gdb集成,并为您提供可视化调试。它不如Visual Studio好,但它很接近。它比Eclipse更干净、更轻。不过,在Windows上设置所有内容并不容易。如果您需要,我可以在那里提供一些指针

也许gdb更高效。它可以在调试时使用核心转储来重现特殊的死锁等错误。它还可以调试正在运行的进程。其他特性,如条件断点和最近开发的反向执行,也使gdb脱颖而出。

免责声明:我不使用可视化调试器,我不太确定他们是否支持以上内容。