Come ottenere la traccia dello stack delle chiamate gdb?

Aug 19 2020

Ho un core dump e un file in cui sono memorizzate le informazioni di debug, posso usare gdb senza usare un file eseguibile per ottenere uno stack di chiamate con il nome di funzioni e linee?

Risposte

1 EmployedRussian Aug 20 2020 at 10:04

posso usare gdb senza usare un file eseguibile per ottenere uno stack di chiamate con il nome di funzioni e linee?

Almeno su Linux/x86_64, la risposta è no: le informazioni salvate dopo objcopy --only-keep-debugnon sono sufficienti; è necessario anche il file eseguibile.

Questo sta accadendo (almeno in parte) perché il debug_filenon ha la .eh_framesezione, necessaria per lo svolgimento su x86_64.

Se stai eseguendo il debug dei core dump da solo, non c'è motivo di crearli debug_file: mantieni semplicemente l'eseguibile originale con le informazioni di debug complete per il debug (puoi comunque spedire un file rimosso più piccolo alle macchine di esecuzione).