Cốt truyện SYSV00000000 là gì?


7

Trong dmesgphần này xuất hiện khi trình quản lý cửa sổ của tôi (xfwm4, một phần của XFCE) bị hỏng:

xfwm4[3936]: segfault at 7f3c7c523770 ip 00007f3c7c523770 sp 00007ffffea1ee28 error 15 in SYSV00000000 (deleted)[7f3c7c4e8000+60000]

Điều tương tự SYSV00000000cũng xuất hiện ở những nơi khác (như lsof). Vậy, đây là cái gì SYSV00000000? Tôi đã đi vòng quanh và thấy rằng nó liên quan đến bộ nhớ ảo, nhưng không nhiều.

Câu trả lời:


11

Nhân nói với bạn rằng khi xảy ra segfault, con trỏ lệnh 0x7f3c7c523770nằm trong phân đoạn shm SysV IPC. Phân đoạn bộ nhớ dùng chung bắt đầu từ 0x7f3c7c4e80000x60000dài byte.

Các phân đoạn shm SysV không được hỗ trợ bởi một tệp, do đó, chuỗi SYSV00000000xuất hiện ở nơi thông thường bạn sẽ nhận được tên tệp của tệp thực thi hoặc thư viện nơi xảy ra segfault. Kết quả là dòng nhật ký này cung cấp cho chúng tôi không có thông tin hữu ích thực sự. Nếu bạn muốn có bất kỳ hy vọng truy tìm nguyên nhân của vụ tai nạn, bạn cần bãi chứa lõi.

Tôi nghi ngờ rằng con trỏ lệnh không cần phải ở trong đó. Thật kỳ lạ khi tải mã thực thi vào phân đoạn shm SysV. Nhưng tôi chưa thấy bất kỳ mã XFCE nào, vì vậy những gì có vẻ kỳ lạ đối với tôi có thể là bình thường ở đó.

Bạn có thể tìm hiểu những điều cơ bản về sysv shm, giả sử bạn đã nắm bắt được những điều cơ bản về quản lý bộ nhớ bằng cách đọc những trang hướng dẫn này:

man svipc
man shmget
man shmat

Chạy ipcslệnh để xem tài nguyên ipc sysv nào hiện đang được phân bổ. ipcs -mgiới hạn danh sách chỉ các phân đoạn bộ nhớ chia sẻ.

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.