2012-02-01 30 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