Misc: Made gdb crash reporting script more automation friendly

* Don't block on successful exit
* Generate timestamped filenames to avoid overwriting old logs

(cherry picked from commit 58d3f17430bb0ab64c9da157bdbc842098d96370)
This commit is contained in:
Shauren
2022-01-02 16:32:47 +01:00
parent 1e5ccc89b7
commit 3a2eb806f8
+26 -15
View File
@@ -1,5 +1,5 @@
set logging overwrite on set logging overwrite on
set logging file backtrace.log set logging file backtrace.log.temp
set style enabled off set style enabled off
set height unlimited set height unlimited
set width unlimited set width unlimited
@@ -9,19 +9,30 @@ set pagination 0
set logging on set logging on
echo \n--- DEBUG: --- START\n\n echo \n--- DEBUG: --- START\n\n
run run
echo \n--- DEBUG: BACKTRACE FULL\n # check if exited normally
if TrinityAssertionFailedMessage != 0 if $_isvoid($_exitcode)
printf "%s\n", TrinityAssertionFailedMessage echo \n--- DEBUG: BACKTRACE FULL\n
# print assertion message if this is ASSERT crash
if TrinityAssertionFailedMessage != 0
printf "%s\n", TrinityAssertionFailedMessage
end
echo \n
backtrace full
echo \n--- DEBUG: INFO REGISTERS\n\n
info registers
echo \n--- DEBUG: CALLS (x/16i $pc)\n\n
x/16i $pc
echo \n--- DEBUG: THREAD APPLY ALL BACKTRACE\n
thread apply all backtrace
echo \n--- DEBUG: --- STOP\n\n
echo Generated by crashreport.gdb script version 1.4\n
set logging off
# rename log file to avoid it getting overwritten by restart scripts
shell mv backtrace.log.temp backtrace_$(date +%Y-%m-%d-%T).log
else
# normal exit, cleanup temp file
set logging off
shell rm backtrace.log.temp
end end
echo \n
backtrace full
echo \n--- DEBUG: INFO REGISTERS\n\n
info registers
echo \n--- DEBUG: CALLS (x/16i $pc)\n\n
x/16i $pc
echo \n--- DEBUG: THREAD APPLY ALL BACKTRACE\n
thread apply all backtrace
echo \n--- DEBUG: --- STOP\n\n
echo Generated by crashreport.gdb script version 1.3\n
set logging off
quit quit