Quando depuro um executável program
com argumentos arg1 arg2
com gdb
executo a seguinte sequência
gdb
file ./program
run arg1 arg2
bt
quit
Como posso fazer o mesmo a partir de uma linha de comando no script de shell?
Quando depuro um executável program
com argumentos arg1 arg2
com gdb
executo a seguinte sequência
gdb
file ./program
run arg1 arg2
bt
quit
Como posso fazer o mesmo a partir de uma linha de comando no script de shell?
Você pode passar comandos para gdb na linha de comando com a opção
-ex
. Você precisa repetir isso para cada comando. Isso pode ser útil quando seu programa precisa ler stdin para que você não queira redirecioná-lo. Por exemplo, paraod -c
Então, em particular para sua pergunta, você pode usar:
Os comandos podem ser alimentados na entrada padrão:
Ou os comandos podem ser colocados
afile
egdb
executados comgdb -batch -x afile
, ou se você odeia novas linhas (e o codificador de manutenção) com um shell sofisticado, você pode fazer tudo em uma única linha (uma maneira diferente de expressar a versão heredoc):Para passar argumentos para seu programa na linha de comando do GDB, use
gdb --args
.