Khi một ứng dụng gặp sự cố mà không xuất ra lỗi, có bản ghi nào tôi có thể kiểm tra không?


17

Đôi khi nó xảy ra rằng một số vụ tai nạn ứng dụng mà không cung cấp cho không có lỗi đầu ra ( conky trong trường hợp của tôi, có lẽ là một trong những cấu hình của tôi đó là không chính xác).

Có nơi nào đó một bản ghi lỗi mà tôi có thể kiểm tra để hiểu tại sao nó bị hỏng không?

Câu trả lời:


14

Phụ thuộc vào ứng dụng. Các ứng dụng khác nhau có hệ thống đăng nhập khác nhau; không có một bản ghi trung tâm nào chứa tất cả đầu ra từ tất cả các chương trình chạy trên hệ thống của bạn.

Điều đó đang được nói, rất nhiều chương trình đưa tập tin nhật ký của họ vào thư mục /var/log. Cụ thể, tệp /var/log/syslog(hoặc có thể /var/log/messages) chứa đầu ra từ "bộ ghi hệ thống", đây là dịch vụ được cung cấp bởi hệ thống mà các chương trình có thể sử dụng (nếu họ chọn) để ghi nhật ký. Nhưng không phải tất cả các chương trình đều sử dụng nó. Hầu hết, bạn sẽ tìm thấy tin nhắn từ các dịch vụ hệ thống cấp thấp trong tệp đó, không phải các ứng dụng đồ họa mà bạn có thể sử dụng bình thường.

Bạn có thể muốn đọc thêm về vị trí của các tệp nhật ký tiêu chuẩn .


6

các tập tin sự cố đi vào /var/log/crashes/sử dụng với apport để báo cáo lỗi. Bạn có thể trích xuất kết xuất lõi với apport-unpack, đặt kết xuất lõi đó qua gdb và tìm hiểu nguyên nhân khiến chương trình bị sập.

Đây là tất cả giả sử bạn là một lập trình viên. Nếu bạn không ... tốt, bạn vẫn không thể khắc phục sự cố!


1
"Đây là tất cả giả sử bạn là một lập trình viên. Nếu bạn không ... tốt, bạn không thể khắc phục sự cố!" với nguồn mở, tất cả chúng ta đều có thể cố gắng giải quyết các vấn đề của mình, rõ ràng là có nguy cơ;)
Strae

@DaNiel: Không hẳn! Nếu bạn không phải là lập trình viên và bạn không hiểu rõ về mã ứng dụng, bạn càng gặp rắc rối với mã mà kẻ lừa đảo có thể sẽ nhận được :)
AntonioCS

1
Ngay cả khi bạn không phải là lập trình viên, đôi khi tìm kiếm một kết xuất cốt lõi có thể cho bạn ý tưởng về vấn đề. Ví dụ: có vẻ như nó bị lỗi trong một loại thói quen đồ họa nào đó - có lẽ tôi nên cập nhật trình điều khiển hiển thị của mình ...
user1242

2
..và nó giúp mô tả các lỗi trong các báo cáo / diễn đàn lỗi;)
Strae

1
Bạn có biết những người không lập trình có thể sử dụng gdb không? Tôi là một lập trình viên và có thể đi xa đến mức bt full"ồ nhìn ngược lại ... với các biểu tượng bị thiếu ... đoán tôi cần cài đặt các biểu tượng gỡ lỗi và cố gắng tái tạo sự cố ..." Tôi đã từng tìm ra cách thiết lập một điểm dừng ... đó là điều tiên tiến nhất mà tôi đã nhận được với nó mặc dù.
maco

3

Đối với conky cũng có thể có các mục trong $HOME/.xsession-errors.


2

Một số ứng dụng có các cờ có thể được sử dụng để bật gỡ lỗi, chẳng hạn như -d, -D, --debug, v.v. Kiểm tra trang man của ứng dụng ( man [my-app]) hoặc chạy ứng dụng với cờ -h để xem nó có như vậy không Lựa chọn.

Nhiều ứng dụng GUI ghi vào lỗi $ HOME / .xsession-vì vậy đó là nơi tốt để kiểm tra đầu ra.

quyền của maco đó có lẽ là cách chắc chắn nhất để có được thông tin gỡ lỗi tốt. Đôi khi, nó không chụp được vụ tai nạn.

Nếu vẫn thất bại, bạn cũng có thể buộc thông tin ra khỏi nó bằng cách chạy ứng dụng trong gdb. Nó sẽ giống như:

$ gdb my-app

(gdb) run

... làm bất cứ điều gì cần thiết để khiến nó sụp đổ ...

(gdb) bt full

và đi từ đó.

Nếu bạn đi theo tuyến gdb, bạn cũng sẽ muốn cài đặt các biểu tượng, như đã đề cập trước đó. Xem https://wiki.ubfox.com/DebuggingProgramCrash để được tư vấn về việc nắm giữ.


Câu trả lời tốt nhất cho tôi mà không nghi ngờ gì
Claudix

1

bạn có thể đi đến /var/log/messages or crashessau đó bạn có thể chạy greplệnh trên những cái đó và tìm kiếm ứng dụng mà bạn đang tìm kiếm các tệp có thể trở nên khá lớn đôi khi. Nó sẽ trả về thông tin liên quan đến ứng dụng của bạn. :)


1

Nếu bạn đang khởi chạy ứng dụng của mình từ tệp launcher .desktop, hãy thêm tùy chọn Terminal=truevào tệp .desktop của bạn. Điều này sẽ mở ra một thiết bị đầu cuối khi bạn chạy chương trình, đầu ra trên thiết bị đầu cuối sẽ tương tự như những gì bạn thấy nếu bạn đã chạy chương trình thông qua dòng lệnh ở vị trí đầu tiên. Bằng cách này, khi GUI gặp sự cố hoặc treo, bạn có thể thấy đầu ra văn bản nào dẫn đến nó.


Cái này làm gì Tôi đã có bộ này và nó không đăng nhập thêm bất cứ điều gì.
Matt

Tôi đã cố gắng trả lời câu hỏi của bạn bằng cách chỉnh sửa câu trả lời của tôi. Điều này có ý nghĩa?
Selah
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.