บันทึกไฟล์หลักใน gdb


91

เป็นไปได้ไหมที่จะบันทึก / ถ่ายโอนไฟล์หลักโดยใช้ gdb บางครั้งฉันต้องการบันทึกไฟล์เพื่อวิเคราะห์ในภายหลัง

คำตอบ:


140

ออกคำสั่ง 'create-core-file' ใน gdb

(gdb) help generate-core-file
Save a core file with the current state of the debugged process.
Argument is optional filename.  Default filename is 'core.<process_id>'.
(gdb) break main
Breakpoint 1 at 0x400e0b: file utils/udec.c, line 36.
(gdb) r
Starting program: /home/nos/build/utils/udec

Breakpoint 1, main (argc=1, argv=0x7fffffffe9a8) at utils/udec.c:36
36              int fileargc = 1;
(gdb) generate-core-file
Saved corefile core.7336

4
จะถูกบันทึกไว้ในไดเร็กทอรีการทำงานปัจจุบันของ GDB ซึ่งสามารถมองเห็นได้ผ่านpwdคำสั่ง หากต้องการเปลี่ยนก็ทำได้cdเช่นเดียวกับที่เชลล์
Jonathon Reinhart

3
@Jonathon_Reinhart ส่งเส้นทางคอร์ไฟล์เป็นgenerate-core-fileอาร์กิวเมนต์แรกหากคุณต้องการบันทึกในบางที่
SergA

19

คุณยังสามารถใช้gcore <pid>เพื่อผลิตคอร์


นี่ควรอยู่ในส่วนความคิดเห็น
V-rund Puro-hit

8
โปรดดูที่หน้านี้stackoverflow.com/help/privileges/comment : เมื่อใดที่ฉันไม่ควรแสดงความคิดเห็น .... "การตอบคำถามหรือให้ทางเลือกอื่นสำหรับคำตอบที่มีอยู่"
Meinew

1
ดูเหมือนว่าgcoreจะได้รับการสนับสนุนใน gdb เวอร์ชันใหม่กว่าเท่านั้น generate-core-fileคนเก่าต้อง
scai

ดูเหมือนจะเป็นชื่อย่อของgenerate-core-fileทั้งสองที่ทำสิ่งเดียวกัน
Ciro Santilli 郝海东冠状病六四事件法轮功
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.