คำถามติดแท็ก backtrace

2
ฉันจะรับ backtrace สำหรับเธรดทั้งหมดใน GDB ได้อย่างไร
มีคำสั่งที่เทียบเท่าใน GDB กับของ WinDbg's "! process 0 7" หรือไม่? ฉันต้องการแยกเธรดทั้งหมดในไฟล์ดัมพ์พร้อมกับ backtraces ใน GDB "เธรดข้อมูล" จะไม่แสดงผลการติดตามสแต็ก ดังนั้นมีคำสั่งที่ทำหรือไม่

5
จะทำให้ backtrace () / backtrace_symbols () พิมพ์ชื่อฟังก์ชันได้อย่างไร?
ลินุกซ์เฉพาะbacktrace()และbacktrace_symbols()อนุญาตให้คุณสร้างการติดตามการโทรของโปรแกรม อย่างไรก็ตามมันพิมพ์เฉพาะที่อยู่ของฟังก์ชันไม่ใช่ชื่อของโปรแกรมของฉัน ฉันจะทำให้พวกเขาพิมพ์ชื่อฟังก์ชันด้วยได้อย่างไร ฉันได้ลองรวบรวมโปรแกรมด้วย-gเช่นเดียวกับ-ggdb. กรณีทดสอบด้านล่างเพียงแค่พิมพ์สิ่งนี้: พื้นหลัง ------------ ./a.out () [0x8048616] ./a.out () [0x8048623] /lib/libc.so.6(__libc_start_main+0xf3) [0x4a937413] ./a.out () [0x8048421] ---------------------- ฉันต้องการให้ 2 รายการแรกแสดงชื่อฟังก์ชันด้วยfooและmain รหัส: #include <execinfo.h> #include <string.h> #include <errno.h> #include <unistd.h> #include <stdlib.h> static void full_write(int fd, const char *buf, size_t len) { while (len > 0) { ssize_t ret …
90 c  linux  debugging  backtrace 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.