2010-07-27 37 views
7

Cách tốt nhất để phân tích sự cố trên Linux là gì?Phân tích sự cố trên Linux

Chúng tôi hy vọng sẽ xây dựng phần mềm và cung cấp phiên bản phát hành cho người thử nghiệm. Những người thử nghiệm có thể không nhớ được cách tái tạo vụ tai nạn hoặc vụ tai nạn có thể hoàn toàn không liên tục. Họ cũng sẽ không có môi trường phát triển trên máy của họ. Phần mềm này được viết bằng C/C++ và được biên dịch thành mã máy gốc để phân phối.

+0

Có thể trùng lặp http://stackoverflow.com/questions/914833/linux-c-how-to-debug-release-application – DumbCoder

Trả lời

7

Nếu bạn có không gian trên đĩa, cho phép các ứng dụng tạo coredump của nó khi nó bị treo.

ulimit -c unlimited 

Sau đó, bạn có thể gỡ lỗi bằng GDB.

3

Ngoài coredumping và stacktracing như đã lưu ý - đảm bảo bạn có thể dễ dàng xác định phiên bản của những người thực thi của bạn đang chạy và có thể trả lời phiên bản của mỗi tệp nguồn đi vào phiên bản nhị phân nào (tức là dành chút thời gian hệ thống kiểm soát mã nguồn của bạn và các kịch bản xây dựng của bạn). Nếu không, không phải tệp lõi và dấu vết ngăn xếp sẽ trợ giúp.

3

Vết lõi là hữu ích, nhưng chúng không phải lúc nào cũng cho bạn biết mọi thứ bạn muốn biết về cách bạn kết thúc trong điều kiện lỗi.

Hành động, đầu vào và sự kiện ghi nhật ký có thể rất hữu ích. Nếu bạn có thể ghi lại từng lần chạy chương trình của mình theo cách mà trong trường hợp xảy ra sự cố, nhà phát triển có thể truy cập nhật ký và tạo lại lỗi có thể rất hữu ích.

Nếu có thể bạn nên xây dựng chương trình của mình với các biểu tượng gỡ lỗi tối đa được tạo và sau đó loại bỏ chúng nếu bạn không muốn hoặc không thể để các phiên bản phát hành có chúng, nhưng giữ một bản sao của mỗi phiên bản đã phát hành mà bạn có thể ghép nối với tệp lõi nếu bạn cần gỡ lỗi sự cố.

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