Как использовать libumem для поиска повреждения кучи, не полагаясь на файл "core"?
Я хочу знать, как использовать libumem на солярисе. Если я последую за http://www.unix.com/man-page/OpenSolaris/3malloc/umem_debug/ и начну процесс со всеми опциями, как я получу вывод?
Могу ли я получить текстовый файл результатов?
Я использовал WDB на HP-UX для того же. После завершения работы программы создается текстовый файл, который я могу проанализировать позже. Могу ли я сделать то же самое для libumem?
Примечание: это удаленная отладка, у меня не будет доступа к системе до тех пор.
2 ответа
Вы можете создать основной файл процесса до его завершения и позже изучить код с помощью mdb. Одним из способов создания этого файла ядра в нужный момент может быть сценарий dtrace, который будет запускать gcore как раз при вызове exit.
Я думаю, что libumem сгенерирует ядро, когда что-то пойдет не так, вы можете проанализировать это ядро, используя mdb, некоторые команды, такие как:::umem_status, umem_verify, помогут вам найти повреждение