#c #memory #solaris #libumem
#c #память #solaris #libumem
Вопрос:
Я хочу знать, как использовать libumem в solaris. Если я последую http://www.unix.com/man-page/OpenSolaris/3malloc/umem_debug / и запустите процесс со всеми параметрами, как я получу результат?
Могу ли я получить текстовый файл результатов?
Я использовал wdb в HP-UX для того же. После завершения работы программы генерируется текстовый файл, который я могу проанализировать позже. Могу ли я сделать то же самое для libumem?
Примечание: Это удаленная отладка, у меня не будет доступа к системе до тех пор, пока это не произойдет.
Комментарии:
1. На данный момент я использую Solaris 9, поэтому Dtrace не поможет.
Ответ №1:
Вы можете создать основной файл процесса перед его завершением и позже изучить код с помощью mdb. Одним из способов сгенерировать этот файл core в нужный момент может быть скрипт dtrace, который запустит gcore сразу при вызове exit.
Комментарии:
1. Спасибо jlliagre, можете ли вы указать мне, с чего мне следует начать поиск такого скрипта? (кроме этого другого вопроса о stackoverflow, конечно!)
2. Извините, уточняю, что я пока на Solaris 9.
3. В Solaris 9 вы могли бы использовать библиотеку интерпозиции для перехвата вызова exit и запуска gcore там.
Ответ №2:
Я думаю, libumem сгенерирует ядро, когда что-то пойдет не так, вы можете проанализировать это ядро с помощью mdb, некоторые команды, такие как::umem_status , umem_verify , помогут вам в поиске повреждения