2009-09-30 15 views
0

當我使用gdb執行調試會話時,它會爲我輸出一些信息。我該如何阻止這一點。這裏有一個例子:在執行指令時抑制gdb的默認輸出

Breakpoint 1, 0x100000d4 in ??() 
(gdb) si 
0x100000d8 in ??() 
(gdb) si 
0x100000dc in ??() 
(gdb) 

在這裏,我想刪除說0x100000d8 in ??()線。我無法找到有關壓制此輸出的文檔中的任何內容。有任何想法嗎?

感謝 添

回答

1

可以抑制0x100000d8set print address off打印。看source(搜索static void print_frame (...)),我不認爲壓制其餘的可能。

1

有點神祕的解決方案是定義一個打開「記錄重定向」功能,然後逐步執行指令,最後關閉日誌記錄。例如:

define stepix 
    set logging redirect on 
    set logging file /tmp/whatever 
    set logging on 
    si 
    set logging off 
end 

但該解決方案將抑制所有輸出,而不僅僅是0x100000d8 in ??()。可能不適合你的需求/品味。我不認爲壓制這種產出是可能的。

+2

...你當然可以'設置日誌文件/ dev/null',這樣它就不會向硬盤發送任何東西。 – 2010-12-06 02:18:12

0

現在是2016年,對於那些想要有選擇地禁用命令輸出的人來說,我有一個醜陋的解決方案。我不知道你的gdb應該是多麼近。

而不是

(gdb) stepi 

試試這個

(gdb) python gdb.execute("stepi", to_string=True) 

感覺就像這樣一個基本功能,請,分享,如果你有更好的方法尤其是一個不依賴於python。我希望在循環中運行stepi時避免(可能)性能下降。