Lưu tệp lõi trong gdb


90

Có thể lưu / kết xuất tệp lõi bằng gdb không? Đôi khi tôi muốn lưu tệp để phân tích nó sau này.

Câu trả lời:


140

Phát hành lệnh 'create-core-file' trong 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
Nó sẽ được lưu trong thư mục làm việc hiện tại của GDB, có thể nhìn thấy thông qua pwdlệnh. Nếu bạn cần thay đổi nó, bạn có thể làm như vậy với cd, giống như ở một cái vỏ.
Jonathon Reinhart,

3
@Jonathon_Reinhart chuyển đường dẫn tệp lõi làm generate-core-fileđối số đầu tiên nếu bạn muốn lưu nó ở một nơi nhất định
SergA

19

Bạn cũng có thể sử dụng gcore <pid>để sản xuất lõi.


điều này nên có trong phần bình luận
V-rund Puro-hit

8
Vui lòng xem trang này stackoverflow.com/help/privileges/comment : Khi nào tôi không nên nhận xét? .... "Trả lời câu hỏi hoặc cung cấp giải pháp thay thế cho câu trả lời hiện có;"
Meinew

1
Có vẻ như gcorechỉ được hỗ trợ trong các phiên bản gdb mới hơn. Những cái cũ yêu cầu generate-core-file.
scai 19/09/18

Đây dường như là một tên viết tắt của generate-core-file, cả hai đều làm cùng một việc.
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.