onde o gdb coloca o arquivo de log?

2

Isso começa parcialmente a partir de por que o gdb não gosta de aliases

Agora eu coloco os seguintes argumentos -

gdb firefox-esr
(gdb) set logging file my-firefox-esr-1802018.log
(gdb) set pagination 0
(gdb) show logging 
Future logs will be written to firefox-esr-020818.log.
Logs will be appended to the log file.
Output will be logged and displayed.
(gdb) run --safe-mode

quando caiu eu fiz -

(gdb) bt
(gdb) thread apply all bt

Quando terminar de mostrar todos os segmentos e as saídas que eu coloquei

(gdb) quit

Mas agora, quando estou em / home / shirish, não vejo esse arquivo de log. Eu deveria ter dado todo o caminho?

    
por shirish 08.02.2018 / 11:21

2 respostas

4

Por padrão, a diretiva set logging file in gdb irá gravar no diretório atual.

Assim, no seu exemplo, o arquivo de log seria gravado no diretório em que firefox-esr está localizado, se o usuário que está sendo usado tiver direitos de gravação nesse diretório.

Então a resposta é sim, para escrever o arquivo de log no seu diretório home, você tem que dar o caminho completo para set logging file .

Veja o backtrace do gdb para o arquivo para um interessante truque para realizar sua ações:

alias bt='echo 0 | gdb -batch-silent -ex "run" -ex "set logging overwrite on" -ex "set logging file gdb.bt" -ex "set logging on" -ex "set pagination off" -ex "handle SIG33 pass nostop noprint" -ex "echo backtrace:\n" -ex "backtrace full" -ex "echo \n\nregisters:\n" -ex "info registers" -ex "echo \n\ncurrent instructions:\n" -ex "x/16i \$pc" -ex "echo \n\nthreads backtrace:\n" -ex "thread apply all backtrace" -ex "set logging off" -ex "quit" --args'

bt $crashing_application

Veja também Backtraces com o Gentoo

    
por 08.02.2018 / 11:56
0

O arquivo gdb.txt ou custom-log-file não será criado em pwd sempre, pelo gdb. Tem que ser explicitamente especificado executando o comando 'set logging' no terminal gdb. Só então a saída será registrada.

    
por 26.07.2018 / 15:31

Tags