"SYSV00000000"이란 무엇입니까?

"SYSV00000000"이란 무엇입니까?

dmesg내 창 관리자(xfwm4, XFCE의 일부)가 다음과 같이 충돌하는 경우 :

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

다른 곳에서도 동일한 상황이 SYSV00000000발생합니다(예 lsof: ). 그래서, 이것은 무엇입니까 SYSV00000000? 구글링을 해보니 가상 메모리와 관련이 있는 것으로 나타났는데 그 외에는 별로 많지 않았습니다.

답변1

커널은 segfault가 발생하면 명령 포인터가 0x7f3c7c523770SysV IPC shm 세그먼트에 있음을 알려줍니다. 공유 메모리 세그먼트는 0x7f3c7c4e8000바이트 0x60000길이로 시작됩니다.

SysV shm 세그먼트는 파일에서 지원되지 않으므로 이 문자열은 SYSV00000000일반적으로 세그먼트화된 실행 파일 또는 라이브러리의 파일 이름을 가져오는 위치에 나타납니다. 따라서 이 로그 줄은 실제로 유용한 정보를 제공하지 않습니다. 충돌 원인을 추적하려면 코어 덤프가 필요합니다.

지시 포인터가 전혀 없어야한다고 생각합니다. 실행 가능한 코드를 SysV shm 세그먼트에 로드하는 것은 다소 이상합니다. 하지만 XFCE 코드를 본 적이 없으므로 이상하게 보이는 것은 아마도 정상일 것입니다.

메모리 관리의 기본 사항을 잘 이해하고 있다는 가정 하에 다음 매뉴얼 페이지를 읽으면 sysv shm에 대한 기본 사항을 배울 수 있습니다.

man svipc
man shmget
man shmat

ipcs명령을 실행하여 현재 할당된 sysv ipc 리소스를 확인합니다. ipcs -m목록을 공유 메모리 세그먼트로만 제한하십시오.

관련 정보