Eu acho que você pode usar o truque.
defina o ponto de quebra na saída.
gdb ..
b sair
execute ..
bt
para que você possa saber onde a chamada principal a função de saída
Estou usando o Linux científico. Eu estou tentando compilar um projeto que usa um monte de arquivos cpp. No momento, ele compila com sucesso, mas os valores / dados que recebo estão definitivamente errados.
No diretório user/project/Build
, eu insiro make para compilar e vincular todos os arquivos cpp. Eu então tenho que ir para user/run/
e então digite ./run.sh values.txt
Quando vou para o diretório /user/project/Build/bin
e, em seguida, digito gdb project
e, em seguida, defino os pontos de interrupção, não há problemas. Mas quando eu bato, sempre vejo Program exited with code 01
. Não importa se eu definir pontos de interrupção em main.cpp ou em outro arquivo de origem. O gdb não deveria parar no breakpoint?
Eu acho que você pode usar o truque.
defina o ponto de quebra na saída.
gdb ..
b sair
execute ..
bt
para que você possa saber onde a chamada principal a função de saída
user/run/run.sh
é presumivelmente (dado o nome) um script de shell que configura coisas que o programa precisa executar. Provavelmente, as coisas estão definindo variáveis de ambiente e passando argumentos de linha de comando. Para definir variáveis de ambiente e argumentos de linha de comando no GDB, use
set args = arg1 arg2
set env VAR1 = value1
set env VAR2 = value2
Leia o script de shell para ver o que ele está realmente fazendo.
Tags gdb