Skip to content



shmdt - detach a shared memory segment from the caller's data segment


The shmdt() syscall detached a shared memory segment from the caller's data segment. It shall be used after a shared memory segment is no longer needed. When a shared memory segment is attached, it becomes part of the address space of the calling process, and the calling process must explicitly detach it. An shmdt() call destroys the association between the process and the shared memory segment. If a process has multiple shared memory attachments, each must be detached individually.

When the last process detaches a segment, the segment is deleted and its resources are returned to the system. If a segment is detached while processes still have the segment attached, the state of the segment persists until all processes have detached it.


  • shmaddr:const void*[K] - pointer to the shared memory segment.

Available Tags

  • K - Originated from kernel-space.






The shmdt() syscall is used to detach a shared memory segment from the caller's data segment, so it is important to understand when this event is called.

Example Use Case

For example, you can monitor when shared memory is being detached and gather information such as the process PID and the address of the segment being detached.


Currently, the shmdt() syscall is not able to detach more than one shared memory segment at a time.

  • shmget - get a shared memory segment
  • shmat - attach a shared memory segment

This document was automatically generated by OpenAI and needs review. It might not be accurate and might contain errors. The authors of Tracee recommend that the user reads the "events.go" source file to understand the events and their arguments better.