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

问题描述

| 我知道这很像异端,但是我根本看不出在日常调试(而不是高级转储和日志记录调试)中使用gdb会比可视调试器更有效。 我来自.Net(热爱环境,讨厌这种心态)的背景,在过去的几年中,他们转移到了PHP&C ++。 我现在正在使用Eclipse在C ++中开发一个项目,并且讨厌编辑器有多沉重,因此我已移至Textmate。 但是调试太不舒服了。 我正在使用gdb,但是错过了可视化调试,它是如此简单,高效。 然而,每个人都说-学习正确使用gdb! 所以我问-如何正确有效地使用gdb?     

解决方法

        对于我来说,我总是使用gdb的TUI模式。从gdb手册:   gdb文本用户界面(TUI)是   终端接口使用   curses库以显示源   文件,程序集输出,程序   寄存器和gdb命令分开   文字视窗。 TUI模式是   仅在以下平台上受支持   适用于curses库的版本   可用。 它为gdb带来了一些可视化调试,对我来说足够了。我通常在常规命令行模式下启动gdb,观察回溯并在其中设置断点。当我想查看源代码时,我会使用键绑定C-x C-a切换到TUI模式,然后再切换回以查看回溯。这是内置的即用型gdb功能。您不需要任何其他软件,例如KDevelop或Emacs即可使用它。     ,        您可以将gdb与KDevelop等IDE一起使用。它具有可视界面,因此很有帮助。 或带有Emacs的GDB,它几乎可以轻松完成精美的图形调试器可以做的所有事情。 只需添加一下,您就可以看一下这篇文章。它讲述了一些不错的技巧。     ,        您可以尝试qt-creatror,它也具有简单易用的GDB可视界面。     ,        DDD呢?     ,        我将netbeans用于C ++。它与gdb集成,并提供可视化调试。它不像Visual Studio那样好,但是已经接近了。它比Eclipse更干净,更轻。但是,要在Windows上进行所有设置并不容易。如果您需要,我可以在这里提供一些指示     ,        也许gdb甚至更有效率。当难以调试以重现诸如特殊死锁之类的错误时,它可以利用核心转储。它还可以调试正在运行的进程。其他功能(例如条件断点)和最近开发的反向执行也使gdb脱颖而出。 免责声明:我不使用可视调试器,并且我不确定它们是否支持以上内容。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...