Sto usando backtrace() e backtrace_symbols() per backtrace di uscita sul SIGSEGV e altri segnali in formato simile a questo:Come interpretare gli indirizzi backtrace per il debug con GDB
0: [0xb750818]
1: /opt/server/libQtScript.so.4(+0x6f42a) [0xb782c42a]
2: /opt/server/libQtScript.so.4(+0x7bffc) [0xb7838ffc]
3: /opt/server/libQtScript.so.4(+0x86946) [0xb7843946]
4: /opt/server/libQtScript.so.4(+0x7c4bc) [0xb78394bc]
5: /opt/server/libQtScript.so.4(+0x86946) [0xb7843946]
6: /opt/server/libQtScript.so.4(+0x9603e) [0xb785303e]
7: /opt/server/libQtScript.so.4(_ZN12QScriptValue4callERKS_RK5QListIS_E+0x2e7) [0xb7891647]
In questo caso particolare, telaio # 7 per me va bene, sebbene il frame 1-6 mi dia degli indirizzi "+ x" gentili.
Come ottenere la linea esatta in smontaggio per "+ 0x6f42a" e altri indirizzi in GDB? E quale frame # 0, senza modulo descritto, significa?
debug-file-directory è per GDB, ma sto ottenendo il backtrace con i simboli senza associare GDB. Come assicurarsi che backtrace_symbols() ottenga tutti i dati dei simboli? Il file .debug sarebbe sufficiente? Questi arresti anomali sono rari, quindi non posso semplicemente riprodurli nell'ambiente di sviluppo di mine. –