Hap*_*ude 208 c++ linux debugging gdb
简而言之:有没有人知道gdb的GUI会使它与更新版本的Visual C++中的功能集相提并论?
详细说明:作为一个花了很多时间在Windows上编程的人,每当我在Linux中编写C++代码时,我发现的一个更大的绊脚石就是使用命令行gdb调试任何东西需要花费我几倍的时间. Visual Studio,它似乎没有通过练习变得更好.有些事情只是更容易或更快地以图形方式表达.
具体来说,我正在寻找一个GUI:
如果这样的程序不存在,那么我想听听人们对于至少满足一些要点的程序的经验.有没有人有任何建议?
编辑:
列出可能性很好,我将采取我能得到的,但如果你可以在你的回答中包含它会更有帮助:
(a)你是否真的使用过这个GUI,如果有的话,你有什么积极/消极的反馈.
(b)如果您知道,上述哪些功能不受支持
列表很容易获得,像这样的网站很棒,因为你可以了解人们的应用程序的个人经验.
Jon*_*all 84
Eclipse CDT将提供与使用Visual Studio相媲美的体验.我每天都使用Eclipse CDT来编写代码并调试本地和远程进程.
如果您不熟悉使用基于Eclipse的IDE,GUI将需要一点时间习惯.但是,一旦您了解了Eclipse独有的GUI思想(例如透视图),使用该工具就会变得很好.
CDT工具提供了一个不错的C/C++索引器,允许您快速查找代码库中方法的引用.它还提供了一个很好的宏扩展工具和有限的重构支持.
关于支持调试,CDT能够执行列表中的所有操作,但读取核心转储除外(它可能支持此功能,但我从未尝试过使用此功能).另外,我使用模板调试代码的经验有限,所以我不确定CDT在这方面会提供什么样的体验.
有关使用Eclipse CDT进行调试的更多信息,您可能需要查看以下指南:
小智 78
gdb -tui可以正常工作,如果你想要GUI-ish,但仍然基于字符.
Vic*_*rti 55
你不会发现任何覆盖GDB的东西,它可以与Visual Studio调试器的原始功能竞争.它太强大了,它在IDE中集成得太好了.
对于Linux替代方案,如果您喜欢自由软件,请尝试使用DDD.
Ada*_*wes 29
我不喜欢Windows开发的想法,但VC++调试器是我见过的最好的.我还没有找到一个接近VC的GUI前端.
一旦你真正习惯了GDB就很棒了.足够愤怒地使用它,你会变得非常精通.我可以围绕一个程序来完成你所列出的所有事情而不需要太多努力.在我精通之前,确实需要一个月左右的时间才能通过SSH链接到远程服务器.我永远不会回去.
DDD确实非常强大,但它非常有缺陷.我发现当它从GDB收到消息时它经常冻结.它很好,因为它有一个gdb接口窗口,所以你可以看到正在发生的事情并直接与gdb交互.DDD不能在我的环境中的远程X会话上使用(一个真正的问题,因为我在Unix开发时我坐在一个瘦客户端)由于某种原因所以它对我而言.
KDevelop遵循典型的KDE风格并向用户展示了一切.我也没有在KDevelop中调试非KDevelop程序的运气.
Gnat编程工作室(GPS)实际上是GDB的一个很好的前端.它不仅仅管理Ada项目,因此如果您需要调试器,则值得尝试.
你可以使用Eclipse,但是它非常重,而且我和我合作的很多经验丰富的Unix人员(包括我在内)并不关心它的界面,这不仅仅是STFU而且让你不受欢迎.Eclipse也似乎占用了大量空间并像狗一样运行.
Sou*_*man 28
Qt Creator看起来很棒.一位同事向我展示了一种用于调试的方法:
对于调试我已经编译的应用程序来说,这看起来似乎有点大,但值得.调试器以与Visual Studio类似的方式显示线程,堆栈和局部变量,甚至使用许多相同的键盘快捷键.它似乎很好地处理模板,至少std :: string和std :: map.虽然我尚未对其进行测试,但似乎支持附加到现有进程和核心转储.
请记住,我现在使用它的时间不到一小时,但到目前为止我印象深刻.
Nic*_*tin 16
我经常使用DDD,一旦你学会使用DDD它就会非常强大.我要说的一件事就是不要在WAN上使用它,因为它似乎做了很多不必要的屏幕更新.
另外,如果你没有与GDB交配并且不介意筹集一些现金,那么我会尝试TotalView.它有一个陡峭的学习曲线(它肯定会更直观),但它是我在任何平台上使用过的最好的C++调试器,可以扩展为以自定义方式内省对象(从而允许您查看STL列表作为实际的对象列表,而不是一堆令人困惑的内部数据成员等.)
我为gdb尝试了几种不同的guis,发现DDD更好。虽然我无法对Linux的其他非gdb产品发表评论,但我在其他平台上使用了许多其他调试器。
gdb可以完成您希望清单中的大部分工作。DDD为他们提供了更好的选择。例如,线程切换变得更简单。设置断点非常简单。
如果您想做一些晦涩难懂的事情,还可以得到一个cli窗口。
DDD的一项功能比我使用的任何其他调试器都要出色,它是数据“绘图”。这使您可以将结构,对象和内存显示和排列为可拖动的框。双击指针将打开已取消引用的数据,并通过可视链接返回到父级。