gdb sempre programa saiu com o código 01

1

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?

    
por user4352158 26.02.2015 / 22:56

2 respostas

4

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

    
por 01.04.2016 / 11:16
1

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.

    
por 26.02.2015 / 23:05

Tags