Возможно ли сбросить и исследовать содержимое разделяемой памяти из Linux? Я заметил некоторые странные сегменты разделяемой памяти в выводе «ipcs -m» и хочу видеть, что там есть. Также можно определить создателя этого сегмента. «Натч» кажется всегда нулевым.Dump shared memory
0
A
ответ
2
Посмотрите на этот инструмент
Это хороший инструмент для вашей цели.
Что вы имеете в виду с создателем? Вы имеете в виду PID процесса? В этом последнем случае вы можете использовать
ipcs -mp
Вы получите этот результат:
------ Shared Memory Creator/Last-op --------
shmid owner cpid lpid
3211265 root 1857 1866
где
CPID
The process ID of the job that created the shared memory segment.
и
LPID
The process ID of the last job to attach or detach from the shared memory segment or change the semaphore value.
Edit:
Невозможно зарегистрировать эту информацию со стандартными инструментами.
Я думаю, что мы можем сделать таким образом.
Предположим, мы выполняем команду:
ipcs -m
и получить эти результаты
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x00000000 3211265 root 644 80 2
Затем с помощью команды Grep 3211265/Proc/*/карты, мы получаем:
/proc/1862/maps:bla bla bla rw-s 00000000 00:09 3211265 /SYSV00000000 (deleted)
/proc/1863/maps:bla bla bla rw-s 00000000 00:09 3211265 /SYSV00000000 (deleted)
Таким образом мы получаем процессы, которые были привязаны к сегменту.
Сканирование элементов в/proc/*/maps, вы можете обнаружить PID, которые в настоящее время подключены к данному сегменту.
Вы можете использовать скрипт bash, который регистрирует эту конкретную информацию.
Смежные вопросы
- 1. JVM memory dump
- 2. Read-Write shared memory
- 3. подталкивания Тип Shared Memory
- 4. Unmapping boost shared memory
- 5. C shared memory
- 6. Dump to CSV/Postgres memory
- 7. Gdb search core dump memory
- 8. cuda shared memory - непоследовательные результаты
- 9. Linux Shared Memory Segmentation Fault
- 10. C shared memory using fork()
- 11. Cuda Shared Memory переменная массива
- 12. Undeclare a Class, Dump from memory
- 13. Icarus verilog dump memory array ($ dumpvars)
- 14. boost :: interprocess shared memory и R bigmemory
- 15. Shared Memory фрагмент кода в C
- 16. Posix shared memory vs mapped files
- 17. php shared memory читает все 0s
- 18. Shared Memory иногда не нулевой terminatied
- 19. C++ WINAPI Shared Memory массив структур
- 20. posix shared memory для нескольких клиентов
- 21. Когда можно использовать Un-named shared memory?
- 22. IPC shared memory std :: vector в windows
- 23. OpenCl shared virtual memory test странные результаты
- 24. c shared memory attach/detach/deallocate
- 25. Posix shared memory причина ошибка шины
- 26. Writable Shared Memory в Apache Спарк
- 27. Dump GPU memory в CNTK Перевод художественного стиля
- 28. .NET Memory Dump - Как сообщить о не управляемой памяти?
- 29. Apache derby in-memory db schema dump with Hibernate 4+
- 30. gdb, dump memory, сохранить форматированный вывод в файл
Благодарим вас за разъяснение, что такое CPID и LPID. Но можно ли их каким-то образом зарегистрировать? Потому что к моменту обнаружения этого сегмента «ps aux | egrep CPID | LPID» ничего не дает. И я думаю, что команда «ipcs -mp» сама меняет LPID? – Radium
Я отредактировал свой ответ. Я надеюсь быть полезным. – Oscerd
Вы попробовали? Какая ситуация? – Oscerd