System (“pause”) no Unix?

6

Eu normalmente uso um depurador como cgdb , então, felizmente, não precisei recorrer a system chamadas para depuração, até agora.

Eu tenho um binário que leva cerca de 30 minutos para carregar em gdb e, freqüentemente, trava o depurador depois, provavelmente devido ao grande número de símbolos. Isso faz com que meu fluxo de trabalho normal (carregando gdb , adicionando pontos de interrupção, identificando variáveis de problema, etc.) seja insustentável.

No Windows, eu começaria a adicionar muitas instruções cout e system("pause") (ponto de interrupção do homem pobre) em todo o meu código; mas como faço isso em um ambiente parecido com um unix?

    
por quant 09.09.2014 / 01:21

3 respostas

13

Você pode querer ler a partir de cin para obter a pause de um homem pobre - esperará que você digite um Enter , em vez de retomar enquanto você está tomando café (como sleep() ).

    
por 09.09.2014 / 01:45
6

Eu às vezes recorro a isso

#define BRK()  do { printf("%s %d\n", __FILE__, __LINE__); getchar(); } while (0)
...
BRK();  // Stop and wait for enter

Além disso, a instrumentação de função pode ajudar: O GCC permite que cada função entre / saia, consulte link

    
por 09.09.2014 / 13:06
5

A mesma coisa para cout / cerr e você pode usar apenas sleep() - consulte man 3 sleep ou man 3 usleep para obter mais informações.

    
por 09.09.2014 / 01:27

Tags