2010-02-05 85 views
4

可能重复:
How to avoid entering library's source files while debugging in Qt Creator with gdb?自动跳过/忽略外部代码

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

MyFunction(complexVarable, complexvar); //passed by value 

和gdb坚持通过两个传递的值的拷贝构造函数去,但我关心的是MyFunction的。有小费吗?有两个部分的问题,

  1. 忽略的代码是不是我的(而不是在主目录)
  2. 跳过拷贝函数调用。

谢谢。

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

+1

'next'(而不是'step')和'finish'可能很有用。在Emacs gud-gdb模式下,默认为'C-x C-a C-n' /'C-x C-a C-f'。 – ephemient 2010-02-05 05:42:17

回答

1

根据我的意见,这是不能做到的。每个项目都有一个数据从一个功能流向另一个功能。 gdb旨在处理数据流。 所以如果你的项目位于流程中间的某个地方,gdb不能帮助你,因为evry函数有一些目的是处理输入和输出。 所有你可以做的就是分别创建相同的功能,并通过给出它需要的输入和它给出的输出来复制场景,就好像它在流中运行一样。

+0

把这个问题留了几天,我担心这会成为答案。谢谢n'way – 2010-02-07 02:59:28

+0

@ChrisH:此功能在新gdb中可用作“跳过”命令。在这一点上,gdb 7.5版本没有它,你必须从源代码构建gdb(每周发布7.5.50作品,并且很容易构建)。 – nimrodm 2012-11-14 11:19:21