Во всяком случае для моего приложения C ++ для связи с GDB?

Я хотел бы прочитать файл дампа основной памяти, сброшенный с помощью gcore.
Однако я хотел бы прочитать файл coredump в моем приложении c ++, а не с помощью команды терминала gdb.
Например, у меня есть исполняемая программа «testEx», и она по какой-то причине убивается, после чего «testEx» оставляет дамп ядра.
Я создаю приложение C ++ «readGDB» для анализа дампа ядра, созданного «testEx».
Любая библиотека C ++ и пример для чтения файла ядра?

0

Решение

Любая библиотека C ++ и пример для чтения файла ядра?

Чтение core тривиально: вы просто open а также read Это.

Что не тривиально, так это понимание того, что означает содержание. core файл является ELF файл, поэтому он имеет много внутренней структуры, и такие библиотеки, как libelf может помочь вам прочитать конкретные разделы core,

Но это все еще долго далеко от того, что делает GDB: действительно чтобы понять содержание, вам также необходимо реализовать управление символами, разматывание стека и многое другое. Короче говоря, вам придется заново внедрить половину GDB.

Так почему бы просто не использовать GDB? Вы можете поговорить с GDB из своего приложения, и оно даст вам ответы, которые вы ищете. ГБД имеет специальный режим интерфейса машины только для этой цели.

0

Другие решения


По вопросам рекламы [email protected]