it-swarm-vi.tech

Có thể có được một bãi chứa cốt lõi của một quá trình đang chạy và bảng biểu tượng của nó?

Có thể lấy gdb hoặc sử dụng một số công cụ khác để tạo kết xuất lõi của quy trình đang chạy và bảng biểu tượng không? Sẽ thật tuyệt nếu có cách để làm điều này mà không chấm dứt quá trình. 

Nếu điều này là có thể, bạn sẽ sử dụng lệnh nào? (Tôi đang cố gắng làm điều này trên một hộp Linux)

50
Readonly
 $ gdb --pid = 26426 
 (gdb) gcore 
 Đã lưu lõi corefile.26426 
 (gdb) tách ra 
60
DustinB

Hoặc chạy gcore $(pidof processname).

Điều này có lợi ích (qua việc chạy gdb và phát lệnh cho CLI) mà bạn đính kèm và tách ra trong thời gian ngắn nhất. 

51
Alex Zeffertt

Bạn có thể sử dụng lệnh generate-core-file trong gdb để tạo kết xuất lõi của quá trình đang chạy.

0
Dev

Lưu ý: Phương pháp sau đây sẽ chấm dứt quá trình đang chạy và cũng yêu cầu các ký hiệu.

Bạn có thể gửi một trong các tín hiệu sau (có hành động = lõi) đến quy trình đang chạy:
Từ: http://man7.org/linux/man-pages/man7/signal.7.html

       Signal     Value     Action   Comment
       ──────────────────────────────────────────────────────────────────────
       SIGHUP        1       Term    Hangup detected on controlling terminal
                                     or death of controlling process
       SIGINT        2       Term    Interrupt from keyboard
       SIGQUIT       3       Core    Quit from keyboard
       SIGILL        4       Core    Illegal Instruction
       SIGABRT       6       Core    Abort signal from abort(3)
       SIGFPE        8       Core    Floating point exception
       SIGKILL       9       Term    Kill signal
       SIGSEGV      11       Core    Invalid memory reference
       SIGPIPE      13       Term    Broken pipe: write to pipe with no
                                     readers
       SIGALRM      14       Term    Timer signal from alarm(2)
       SIGTERM      15       Term    Termination signal
       SIGUSR1   30,10,16    Term    User-defined signal 1
       SIGUSR2   31,12,17    Term    User-defined signal 2
       SIGCHLD   20,17,18    Ign     Child stopped or terminated
       SIGCONT   19,18,25    Cont    Continue if stopped
       SIGSTOP   17,19,23    Stop    Stop process
       SIGTSTP   18,20,24    Stop    Stop typed at terminal
       SIGTTIN   21,21,26    Stop    Terminal input for background process
       SIGTTOU   22,22,27    Stop    Terminal output for background process

Thích như vậy:
kill <signal> <pid>

Và một khi bạn có lõi, bạn có thể mở trong gdb cùng với tệp ký hiệu.

0
brokenfoot