Đây có phải là vùng chứa lõi Linux không? Nếu vậy bạn có thể kiểm tra nó với gdb. Bạn sẽ cần phải chạy trên một hệ thống với một hệ điều hành giống hệt nhau và phiên bản của Python, bao gồm cả thư viện của bên thứ 3. Chạy gdb -c /path/to/core/file
. Khi gdb đã tải xong, lệnh bt
sẽ liệt kê theo dõi ngăn xếp cho chuỗi chính và thread apply all bt
sẽ liệt kê theo dõi ngăn xếp cho tất cả các chuỗi.
Điều này sẽ phụ thuộc vào việc phiên bản Python có bao gồm bảng biểu tượng đầy đủ hay không. . Tuy nhiên điều này vẫn có thể được sử dụng một số trong chẩn đoán những gì đã đi sai.
Nếu đó là một số hệ điều hành khác không hỗ trợ gdb thì bạn đang ở trên của riêng bạn - có lẽ hệ điều hành sẽ có các công cụ gỡ lỗi riêng.
Edit:
Có một trang trên wiki Python mô tả how to get a python stack trace with gdb.
Tuy nhiên, hãy xem nhanh liên kết trong câu hỏi cho biết hệ điều hành là Windows, do đó gdb không được sử dụng. Các thông tin trong Windows dump là tối thiểu, vì vậy tôi nghĩ rằng bạn đang ra khỏi may mắn.
gợi ý duy nhất của tôi là:
cố gắng để tái tạo các tai nạn trong nhà.
khiến người dùng tạo lại lỗi trong khi chạy một công cụ sẽ bắt gặp sự cố và thực hiện kết xuất bộ nhớ thích hợp. Đó là khoảng một thập kỷ kể từ khi tôi đã làm cửa sổ gỡ lỗi nghiêm trọng vì vậy tôi không biết những gì các công cụ có sẵn ngay bây giờ - có sử dụng được gọi là Dr.Watson, nhưng nó có thể là lỗi thời.
Nếu người dùng không thể tái tạo sự cố thì bạn sẽ không may mắn nếu nó không bao giờ xảy ra lại không phải là vấn đề lớn. ;-)
Cập nhật:
Google nói với tôi rằng Tiến sĩ Watson vẫn là xử lý vụ tai nạn mặc định trên Windows XP (và các phiên bản có lẽ khác của Windows) - stack dump đó có liên quan trong câu hỏi có thể đến từ nó. Tuy nhiên dữ liệu mặc định được lưu bởi Dr Watson là khá nhỏ, nhưng bạn có thể cấu hình nó để tiết kiệm hơn - xem this article. Tóm lại, nếu bạn chạy drwtsn32 -i
nó sẽ bật lên một hộp thoại để cho phép bạn thiết lập các tùy chọn.
Nguồn
2010-01-06 08:55:49
không, không phải linux chắc chắn (xem danh sách quá trình trong bãi chứa: P) – shylent
Tôi thực sự quan tâm đến một backtrace _Python_, mà tôi không thể sử dụng gdb tôi nghĩ. (Biểu tượng cho bãi chứa là có thể tôi nghĩ.) –
Tôi đã cố gắng sao chép nó trên máy của người dùng, không hoạt động. Tôi có nghĩa là có một sự thay đổi của 0,00001001 rằng bộ nhớ của người dùng bị hỏng hoặc Windows hơi say lên. –