gpt4 book ai didi

c++ - 如何在使用 GDB 遍历代码时禁用步进 C++ 模板?

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

我正在尝试使用 GDB 遍历代码,而 GDB 总是试图显示 C++ 模板源代码,这使得调试不便并浪费了我很多时间。

GDB 尝试介入该函数,当它找不到实现模板的文件时显示错误,或者它跳转到我不想看到的模板代码。

我找不到如何禁用显示/单步进入容器或模板源代码的方法。我只想跳过,但我不知道该功能是否可用。

是否可以在使用 GDB 调试时禁用进入模板?当我跨过前任时。 make_unique 函数,我希望 GDB 不会尝试显示 make_unique 实现。有什么建议吗?

最佳答案

可以使用next命令跳过函数调用,或者使用finish命令退出函数。

另一种方法是使用skipskip file 命令。这使得 GDB 总是跳过不需要的函数或源文件,即使在使用 step 命令时也是如此。

然而,这并不总是人们想要的。例如,在调试 std::sort 中使用的比较函数时,人们希望直接进入比较函数,跳过所有 std::sort 实现。或者想要进入构造函数,跳过 std::make_unique 实现。

不幸的是,这对于 GDB 是不可能的(不设置断点)。跳过函数或文件时,GDB 还会跳过该函数或文件中 的所有内容。

另一个著名的调试器具有所需的功能,称为 Just My Code ,但它仅适用于 Windows。

出于某种原因,GDB 的“跳过文件”功能有时被吹捧为等同于“Just My Code”。它不是。

关于c++ - 如何在使用 GDB 遍历代码时禁用步进 C++ 模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58159433/

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