首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Emacs和gdb -在反向跟踪中显示函数代码

Emacs和gdb -在反向跟踪中显示函数代码
EN

Stack Overflow用户
提问于 2016-06-02 11:35:15
回答 1查看 544关注 0票数 0

我正在调试一个C++程序。假设我坐在gdb中的一个断点上,并执行bt 50。这将生成回溯跟踪,并向我展示具有50个函数的调用堆栈,这些函数在执行过程中运行,达到现在的水平。

有时,我希望快速检查回跟踪调用堆栈中的一个函数的代码。我知道如何在上这样做。Visual维护的call stack类似于gdb backtrace。在Visual上,我只需双击调用堆栈中的一个函数,Visual就会带我找到该函数的代码,如果没有打开,甚至可以为我打开该文件。非常方便。

我想知道是否有一个gdb命令来显示回溯中的符号名周围的代码。目前,我所知道的唯一方法是手动查找文件并在emacs中打开它,然后在emacs中进行搜索,将我带到函数中。如果有更好的方法,请告诉我,这样就可以像Visual那样方便了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-02 14:56:04

有几种选择,取决于您如何运行gdb。

一个简单的方法是在emacs中运行gdb。您可以使用M-x gdb (或者M-x gud-gdb,这有点老派)来做这件事。在emacs中运行gdb时,只需选择一个框架就可以在emacs中访问源,并且点将移到有问题的行。“选择一个框架”可以通过updownframe命令来完成。

如果您在emacs之外运行gdb,并且希望继续这样做,那么仍然有一些选项。

一种方法是edit命令。确保将EDITOR环境变量设置为使用emacsclient,并设置emacs以响应此操作(如M-x server-start)。

然后,在gdb中,选择一些框架,您可以使用edit *$pc看到该框架的源代码。

一些人喜欢的另一种方法是使用gdb "tui“。这是一个基于诅咒的界面,显示终端中的源。

还有一种方法是使用许多gdb之一。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37590698

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档