gpt4 book ai didi

c++ - Emacs 和 gdb - 在回溯中显示函数代码

转载 作者:行者123 更新时间:2023-11-28 05:39:01 25 4
gpt4 key购买 nike

我正在调试 C++ 程序。假设我正坐在 gdb 的断点处,我执行 bt 50。这将生成回溯并向我显示调用堆栈,其中包含在执行过程中运行的 50 个函数到达现在的位置。

有时,我想快速检查回溯调用堆栈中某个函数的代码。我知道如何在 Visual Studio 上执行此操作。 Visual Studio 维护类似于 gdb backtrace调用堆栈。在 Visual Studio 上,我只需双击调用堆栈中的一个函数,Visual Studio 就会将我带到该函数的代码,如果文件没有打开,它甚至会为我打开文件。非常方便。

我想知道是否有一个 gdb 命令可以在回溯中显示围绕符号名称的代码。目前,我知道的唯一方法是手动查找文件并在 emacs 中打开它,然后在 emacs 中进行搜索以将我带到该功能。请告诉我是否有更好的方法,以便像在 Visual Studio 中一样方便。

最佳答案

有多种选择,具体取决于您运行 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”。这是一个基于 curses 的界面,在终端中显示源代码。

另一种方法是使用众多 gdb GUI 之一。

关于c++ - Emacs 和 gdb - 在回溯中显示函数代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37590698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com