我試圖在一行上運行多個命令,e.g如何在單行中運行多個命令?
(gdb) info threads; c
Args must be numbers or '$' variables.
但它看起來像GDB不支持如此。有任何想法嗎?
我試圖在一行上運行多個命令,e.g如何在單行中運行多個命令?
(gdb) info threads; c
Args must be numbers or '$' variables.
但它看起來像GDB不支持如此。有任何想法嗎?
使用define
命令來定義自己的命令:
(gdb) define mycommand
Type commands for definition of "mycommand".
End with a line saying just "end".
>info threads
>c
>end
(gdb) mycommand
有關詳細信息,您可以參考:https://sourceware.org/gdb/onlinedocs/gdb/Define.html#Define。
gdb沒有這個語法。所以,你不能這樣做。
如果您希望能夠運行固定序列,請參閱「define」命令。
您可以先把斷點實現它,然後使用「命令 GDB內部和提及所有在這個特殊的斷點擊中應該被執行的命令。這樣我們就可以和自動化我們的調試會話。
(GDB)help命令時,遇到斷點將被執行
Set命令。 給斷點號爲後的參數 「命令」。 沒有參數時,目標斷點是最後一個集合。 命令本身在下一行開始。 鍵入包含「end」的行以指示它們的結束。 給「沉默」作爲第一行使斷點保持沉默; 然後在命中時不輸出任何輸出,除了命令打印的內容。
(gdb) break main
Breakpoint 1 at 0x40113e: file thread.cpp, line 19.
(gdb) info b
Num Type Disp Enb Address What
1 breakpoint keep y 0x000000000040113e in main() at thread.cpp:19
(gdb) commands 1
Type commands for breakpoint(s) 1, one per line.
End with a line saying just "end".
>info locals
>print argc
>print argv
>backtrace
>end
(gdb) info b
Num Type Disp Enb Address What
1 breakpoint keep y 0x000000000040113e in main() at thread.cpp:19
info locals
print argc
print argv
backtrace
(gdb)
可能重複[多個命令在gdb separted由某種分隔符';'?](http://stackoverflow.com/questions/1262639/multiple-commands-in-gdb-separted-by-some-sort -of分隔符) – ks1322