C++ 自动跳过/忽略gdb中的外部代码

C++ 自动跳过/忽略gdb中的外部代码,c++,gcc,gdb,C++,Gcc,Gdb,可能重复: 有人知道如何告诉gdb只输入项目中的代码吗?我知道调试器很难知道什么是“在项目中”,什么是库……但我认为一些简单的检查可能会有所帮助,例如不要查看任何不在用户主目录中的文件。我经常有这样的代码: MyFunction(complexVarable, complexvar); //passed by value gdb坚持使用两个传递值的复制构造函数,但我只关心MyFunction。有什么建议吗?这个问题有两个部分 忽略不是我的代码(不在home dir中) 跳过函数调用的副本 谢

可能重复:

有人知道如何告诉gdb只输入项目中的代码吗?我知道调试器很难知道什么是“在项目中”,什么是库……但我认为一些简单的检查可能会有所帮助,例如不要查看任何不在用户主目录中的文件。我经常有这样的代码:

MyFunction(complexVarable, complexvar); //passed by value
gdb坚持使用两个传递值的复制构造函数,但我只关心MyFunction。有什么建议吗?这个问题有两个部分

  • 忽略不是我的代码(不在home dir中)
  • 跳过函数调用的副本
  • 谢谢


    编辑:顺便说一句,我使用emacs,也许我错过了一些工具,但我愿意使用外部gdb前端

    我认为这是不可能的。 每个项目都有从一个功能到另一个功能的数据流。 gdb设计用于处理数据流。 因此,如果您的项目处于流动的中间位置,GDB就不能帮助您,因为EVRY函数有一些与它所获得和输出的输入相关的目的。
    您所能做的就是分别创建相同的函数,并通过提供所需的输入和输出,复制场景,就像在流程中运行一样。

    next
    (而不是
    step
    )和
    finish
    可能有用。默认情况下,
    C-xc-acc-n
    /
    C-xc-acc-f
    对于后者,使用Emacs gud gdb模式。请看一看,并将此问题保留几天,我担心这将是答案。谢谢way@ChrisH:此功能在较新的gdb中作为“跳过”命令提供。此时,GDB7.5版本没有它,您必须从源代码构建gdb(每周发布的7.5.50可以工作,并且很容易构建)。