2012-02-01 80 views
3

我想把断点放在文件的所有功能上。我碰到这个链接:http://sourceware.org/gdb/download/onlinedocs/gdb/Set-Breaks.html#Set-Breaks使用“rbreak filename.c:”将断点放入文件中。不起作用

它建议使用rbreak命令来达到此目的。当我使用“rbreak”时。 ,它可以按预期正常工作,并在prog的所有功能中放置断点。但何时使用

rbreak filename.c :.

这根本不起作用,没有任何断点。我甚至尝试过这种放置空间的变化:,但即使这样也行不通。

关于如何做到这一点的任何想法?它有可能吗? 任何帮助将不胜感激。

感谢, 维卡斯

+1

的可能重复[用gdb停止时,它使用从文件X任何功能的程序] (http://stackoverflow.com/questions/475283/using-gdb-stop-the-program-when-it-is-using-any-function-from-file-x) – 2012-02-01 16:02:09

+1

确保你的'gdb'版本是最新。 'rbreak filename.c:.'命令适用于* gdb 7.6 * – Sebastian 2013-05-27 08:13:34

回答

-1

rbreak FILENAME.C :.

这不应该工作。从文件链接到您:

rbreak regex 
Set breakpoints on all *functions* matching the regular expression regex. 

这是位置,其中filename.c:...打算使用不同。

我想把断点放在文件的所有功能上。

这是一个不寻常的要求。在我多年的调试中,我从不需要这样做。

您必须准备一个列表,并分别设置断点。这样做的配方可以找到here

+1

'rbreak filename.c:.'适用于最近的* gdb 7.6 *。它在* gdb 7.2 *中不起作用。您的链接配方也适用。谢谢。 – Sebastian 2013-05-27 08:12:21

+2

感谢您的回答 - 只需注意“不寻常的要求”;也许希望OP想要的是执行过程中的调用图,我认为这应该更好地用tracepoint(但是,它需要'gdbserver');但是我自己经常忘记'tracepoints'这个名字,然后我开始寻找“在每个函数上设置断点”,并最终在这样的页面结束:“干杯! – sdaau 2013-11-12 13:13:43

0

rbreak filename.cpp:.*适合我。

注意,为了把断点在一个文件中,你需要编译调试信息的程序,如

g++ -g filename.cpp