Was ist "SYSV00000000"?

7

In meinem dmesgerschien dies, als mein Fenstermanager (xfwm4, Teil von XFCE) abstürzte:

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

Das gleiche SYSV00000000erscheint auch an anderen Stellen (wie lsof). Also, was ist das SYSV00000000? Ich habe herum gegoogelt und festgestellt, dass es sich um virtuellen Speicher handelt, aber sonst nicht viel.

Renan
quelle

Antworten:

11

Der Kernel teilt Ihnen mit, dass sich der Anweisungszeiger zum Zeitpunkt des Segfault 0x7f3c7c523770in einem SysV IPC shm-Segment befand. Das gemeinsam genutzte Speichersegment begann bei 0x7f3c7c4e8000und war 0x60000bytelang.

SysV shm-Segmente werden nicht von einer Datei gesichert, daher wird die Zeichenfolge dort SYSV00000000angezeigt, wo normalerweise der Dateiname der ausführbaren Datei oder Bibliothek angezeigt wird, in der der Segfault aufgetreten ist. Infolgedessen gibt uns diese Protokollzeile keine wirklich nützlichen Informationen. Wenn Sie die Ursache des Absturzes ermitteln möchten, benötigen Sie den Core Dump.

Ich vermute, dass der Anweisungszeiger überhaupt nicht vorhanden sein sollte. Es ist ziemlich seltsam, ausführbaren Code in ein SysV-shm-Segment zu laden. Aber ich habe keinen XFCE-Code gesehen. Was für mich seltsam aussieht, ist dort möglicherweise normal.

Sie können die Grundlagen von sysv shm erlernen, vorausgesetzt, Sie haben ein gutes Verständnis für die Grundlagen der Speicherverwaltung, indem Sie diese Manpages lesen:

man svipc
man shmget
man shmat

Führen Sie den ipcsBefehl aus, um zu sehen, welche Sysv-IPC-Ressourcen derzeit zugewiesen sind. ipcs -mbeschränkt die Liste nur auf die gemeinsam genutzten Speichersegmente.

Alan Curry
quelle