2012-03-01 23 views
6

Tôi có một tool để tạo ảnh chụp nhanh chương trình C của tôi khi chương trình đang chạy, dưới dạng tệp lõi.có thể hồi sinh một corefile trở lại chương trình đang chạy không?

Có thể đưa các tệp lõi này trở lại cuộc sống dưới dạng chương trình thực thi không? Và nếu có, làm thế nào để tôi làm điều đó? Có thư viện nào thực hiện việc này không?

Tôi đang làm việc trên các hệ thống * nix.

+0

Tôi dường như nhớ lại rằng có một trình biên dịch "Perl" đã làm điều tương tự. – ninjalj

Trả lời

2

Có, theo lý thuyết.

Nếu ảnh chụp của bạn là một kết xuất đầy đủ của toàn bộ bộ nhớ của chương trình, chồng, đống, cùng với PC, có thể đặt kết xuất này vào bộ nhớ và khởi chạy lại quá trình thực thi. Nhưng bạn sẽ phải làm điều này trong hạt nhân tôi nghĩ.

0

GDB sẽ làm điều đó cho bạn. Tôi đã sử dụng nó cho các chương trình đã bị hỏng, tạo ra một lõi, nhưng điều này sẽ không khác nhau, theo lý thuyết.

+0

bạn có thể giải thích làm thế nào để làm điều đó với gdb? tôi có thể khám phá một corefile với gdb ('gdb executable_file core_file') nhưng điều này không giống như chuyển đổi corefile trở lại thành một file thực thi – horseyguy

+0

Oh ... Tôi nghĩ rằng tôi đã hiểu lầm mục tiêu cuối cùng của bạn. Vì vậy, mục đích là để cho phép mọi người 'tiếp tục' thực thi theo cách tương tự như cách nó chạy trước đó? Nếu có, tôi có lẽ sẽ thực hiện một hành động khác và tuần tự hóa dữ liệu mà tôi quan tâm đến một tệp và kiểm tra tệp đó khi tệp thực thi của tôi bắt đầu. – Hoons

Các vấn đề liên quan