Estou executando o gdb e quero examinar um desses infelizes objetos divinos. São necessárias muitas páginas (e eu tenho um monitor de 24 "virado de lado!) Para ver tudo. Para facilitar o uso, gostaria que o gdb imprimisse o objeto em um arquivo em vez da tela para que eu pudesse abri-lo em vi e se mova com facilidade. Com toda a versatilidade do gdb, deve haver uma maneira de fazer isso, certo?
104
set logging redirect on
.set logging file my_god_object.log
antesset logging on
?tail -f
eawk
foi muito útil hoje. Obrigado!Descobri que você pode redirecionar a saída do gdb para um arquivo por meio do
run
comando:fonte
Ampliando a resposta de @qubodup
o
-ex
switch executa um comando gdb. Assim, o acima carrega o arquivo principal, executa obt
comando e, em seguida, oquit
comando. A saída é gravadabacktrace.log
e também na tela.Outra invocação de gdb útil (fornecendo stacktrace com variáveis locais de todos os threads) é
fonte
gdb -c core.3599 ...
De https://sourceware.org/gdb/onlinedocs/gdb/Logging-Output.html :
fonte
Um método simples para registrar gdb em um arquivo enquanto ainda vê a saída (o que facilita a gravação de comandos) é usar
tee
:fonte
Embora haja muitas respostas boas aqui, ainda tenho que postar a única coisa que funcionou para mim:
Essa era a única maneira de obter a saída gdb e binária no mesmo arquivo log.txt, ao mesmo tempo em que o visualizava no console.
EDITAR:
Cuidado: A saída parece não estar parcialmente sincronizada entre a saída gdb e a saída binária. Alguém pode confirmar? Você pode querer verificar se o seu cliente telnet / ssh tem uma função para registrar a saída que você vê em seu console.
fonte
Você teve várias respostas aqui. Eles estão corretos. Eu só quero adicionar um comando que o ajudará a coletar todas as saídas de uma vez. Isso é realmente útil quando você coleta um enorme backtrace. Antes de fazer qualquer configuração de registro, faça o seguinte:
Eu encontrei neste artigo: https://askaralikhan.blogspot.com/2016/05/gdb-all-threads-bt-to-file.html?showComment=1584614942454#c4584028195226351332
fonte