Gdb
gdb 在一個命令中
program
當我使用參數調試執行檔時arg1 arg2
,gdb
我執行以下序列gdb file ./program run arg1 arg2 bt quit
如何從 shell 腳本中的一個命令行執行相同的操作?
您可以使用選項在命令行上將命令傳遞給 gdb
-ex
。您需要對每個命令重複此操作。當您的程序需要讀取標準輸入以便您不想重定向它時,這可能很有用。例如,對於od -c
echo abc | gdb -ex 'break main' -ex 'run -c' -ex bt -ex cont -ex quit od
因此,特別是對於您的問題,您可以使用:
gdb -ex 'run arg1 arg2' -ex bt -ex quit ./program
這些命令可以在標準輸入中輸入:
#!/bin/sh exec gdb -q <<EOF file ./program run arg1 arg2 bt quit EOF
或者可以將命令放入
afile
並gdb
使用 執行gdb -batch -x afile
,或者如果您討厭帶有花哨的 shell 的換行符(和維護編碼器),您可以在一行中完成所有操作(表示 heredoc 版本的不同方式):gdb -q <<< "file ./program"$'\n'run$'\n'...