Bagaimana cara mendapatkan pelacakan tumpukan panggilan gdb?
Saya memiliki core dump dan file di mana informasi debug disimpan, dapatkah saya menggunakan gdb tanpa menggunakan file yang dapat dieksekusi untuk mendapatkan tumpukan panggilan dengan nama fungsi dan baris?
Jawaban
dapatkah saya menggunakan gdb tanpa menggunakan file yang dapat dieksekusi untuk mendapatkan tumpukan panggilan dengan nama fungsi dan baris?
Setidaknya di Linux / x86_64, jawabannya tidak: info yang disimpan setelahnya objcopy --only-keep-debugtidak cukup; Anda juga membutuhkan file yang dapat dieksekusi.
Ini terjadi (setidaknya sebagian) karena debug_filetidak memiliki .eh_framebagian, yang diperlukan untuk melepas lilitan x86_64.
Jika Anda sendiri debug_filemen -debug core dump, tidak ada alasan untuk membuatnya - cukup simpan file executable asli dengan info debug lengkap untuk proses debug (Anda masih bisa mengirimkan file yang lebih kecil ke mesin eksekusi).