In order to ease finding of the post_mortem struct in core dumps, let's
make it start with a recognizable pattern of exactly 32 chars (to
preserve alignment):
"POST-MORTEM STARTS HERE+
7654321\0"
It can then be found like this from gdb:
(gdb) find 0x000000012345678, 0x0000000100000000, 'P','O','S','T','-','M','O','R','T','E','M'
0xcfd300 <post_mortem>
1 pattern found.
Or easier with any other more practical tool (who as ever used "find" in
gdb, given that it cannot iterate over maps and is 100% useless?).
*/
struct post_mortem {
/* platform-specific information */
+ char post_mortem_magic[32]; // "POST-MORTEM STARTS HERE+7654321\0"
struct {
struct utsname utsname; // OS name+ver+arch+hostname
char hw_vendor[64]; // hardware/hypervisor vendor when known
static int feed_post_mortem()
{
+ /* write an easily identifiable magic at the beginning of the struct */
+ strncpy(post_mortem.post_mortem_magic,
+ "POST-MORTEM STARTS HERE+7654321\0",
+ sizeof(post_mortem.post_mortem_magic));
/* kernel type, version and arch */
uname(&post_mortem.platform.utsname);