2
我想查看函數的哪個參數和返回值。我使用gdb斷點命令列表(gdb命令腳本)如下:如何使用gdb命令列表打印函數的參數並返回值而不暫停?
int foo(int)
(gdb) break foo
(gdb) print $r0
(gdb) finish
(gdb) print $r0
(gdb) continue
(gdb) end
但它只打印參數。
我之所以從這裏GDB Breakpoint command lists
在命令列表中的任何其他命令,即恢復執行命令後,將被忽略。
任何幫助表示讚賞。
我沒有'foo()'的源代碼。我如何找到函數foo()的正文的結尾? – 2010-08-18 04:05:52
當您在foo()中的斷點處停止時,反彙編命令應該反彙編整個函數,然後在用'break * 0xaddress'顯示的最後一個地址處設置一個斷點。根據你的架構,應該是'retq'或類似的東西。可能會顯示多個返回點。你應該爲它們設置一個斷點。 – 2010-08-18 05:26:56
謝謝,我正在胳膊上工作。 – 2010-08-18 05:28:22