我想读取一个用gcore转储的核心转储文件。
但是,我想在我的c ++应用程序中读取coredump文件,而不是使用gdb terminal命令。
例如,我有一个可执行程序'testEx',它被某些原因杀死然后'testEx'离开核心转储。
我正在创建一个C ++应用程序'readGDB'来分析'testEx'创建的核心转储。
任何c ++库和读取核心文件的例子?
答案 0 :(得分:0)
任何读取核心文件的c ++库和示例?
阅读core
是微不足道的:您只是open
和read
。
理解内容的含义并不简单。 core
文件是ELF
文件,因此它有很多内部结构,libelf
等库可以帮助您阅读core
的特定部分。
但是,它仍然长远离GDB的做法:真正了解内容,你还需要实现符号管理,堆栈展开,以及还有更多的东西。简而言之,您将不得不重新实现GDB的一半。
那么为什么不使用GDB呢?您可以从您的应用程序与GDB交谈,并让它为您提供您正在寻求的答案。为此目的,GDB有一个特殊的machine interface mode。