Eu gostaria de ter gdb
executado o executável imediatamente, como se tivesse digitado "run" (motivação: não gosto de digitar "run").
Uma maneira é canalizar o comando para gdb
assim:
$ echo run | gdb myApp
Mas o problema com essa abordagem é que você perde interatividade com gdb
, por exemplo. se um ponto de interrupção disparar ou myApp
travar, gdb
fecha. Este método é discutido aqui .
Olhando as opções em --help
, não vejo uma maneira de fazer isso, mas talvez esteja faltando alguma coisa.
./a.out a b
gdb -x
em sistemas Linux. OS X usa LLVM e clang, então verifique os recursos de depuração dolldb
.Eu usaria um script gdb:
onde seu-script contém algo como:
depois disso, você tem o prompt gdb interativo normal
EDITAR :
aqui está uma otimização para os verdadeiramente preguiçosos:
.gdbinit
noworking directory
.Depois, você simplesmente executa o gdb como
gdb
... e o gdb carrega e executa automaticamente o conteúdo do .gdbinit.
fonte
fg
depois dar
linha, ele age de forma saudávelstart
comando fornece um atalho parab
+r
: stackoverflow.com/a/2119606/895245O gato permite que você continue digitando após as interrupções do gdb.
fonte
Make breakpoint pending on future shared library load? (y or [n])
assumirão automaticamente a resposta "Não".start
comandoEste comando é outra boa opção:
É como executar, mas também define um ponto de interrupção temporário em
main
e para aí.Este breakpoint temporário é desativado assim que é atingido.
starti
Há também um relacionado
starti
que inicia o programa e para na primeira instrução, consulte também: Parando na primeira instrução de código de máquina em GDBÓtimo quando você está fazendo coisas de baixo nível.
fonte
gdb -x <(echo run) --args $program $args
fonte