Hi, Crash fails to start with current (4.4+) kernels. The following patch fixes this. Regards, Sebastian ----->8 >From ddd809812705ba36796c6750d12a12838b4106ec Mon Sep 17 00:00:00 2001 From: Sebastian Ott <sebott@xxxxxxxxxxxxxxxxxx> Date: Tue, 19 Jan 2016 14:14:13 +0100 Subject: [PATCH] Fix invalid structure member offset. Struct module was changed by kernel commit 7523e4dc50 "module: use a structure to encapsulate layout." Fix the offsets to handle the following crash error: crash: invalid structure member offset: module_init_text_size FILE: symbols.c LINE: 1668 FUNCTION: store_module_symbols_v2() [../crash/crash] error trace: 10062e92 => 10109812 => 1014f16e => 101813ac 101813ac: OFFSET_verify+124 1014f16e: store_module_symbols_v2+2182 10109812: module_init+4386 10062e92: main_loop+410 Signed-off-by: Sebastian Ott <sebott@xxxxxxxxxxxxxxxxxx> --- kernel.c | 49 +++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 39 insertions(+), 10 deletions(-) diff --git a/kernel.c b/kernel.c index 2d4188a..5ce2fb9 100644 --- a/kernel.c +++ b/kernel.c @@ -3291,16 +3291,45 @@ module_init(void) MEMBER_OFFSET_INIT(module_gpl_syms, "module", "gpl_syms"); MEMBER_OFFSET_INIT(module_num_gpl_syms, "module", "num_gpl_syms"); - MEMBER_OFFSET_INIT(module_module_core, "module", - "module_core"); - MEMBER_OFFSET_INIT(module_core_size, "module", - "core_size"); - MEMBER_OFFSET_INIT(module_core_text_size, "module", - "core_text_size"); - MEMBER_OFFSET_INIT(module_module_init, "module", "module_init"); - MEMBER_OFFSET_INIT(module_init_size, "module", "init_size"); - MEMBER_OFFSET_INIT(module_init_text_size, "module", - "init_text_size"); + + if (MEMBER_EXISTS("module", "module_core")) { + MEMBER_OFFSET_INIT(module_core_size, "module", + "core_size"); + MEMBER_OFFSET_INIT(module_init_size, "module", + "init_size"); + + MEMBER_OFFSET_INIT(module_core_text_size, "module", + "core_text_size"); + MEMBER_OFFSET_INIT(module_init_text_size, "module", + "init_text_size"); + + MEMBER_OFFSET_INIT(module_module_core, "module", + "module_core"); + MEMBER_OFFSET_INIT(module_module_init, "module", + "module_init"); + } else { + ASSIGN_OFFSET(module_core_size) = + MEMBER_OFFSET("module", "core_layout") + + MEMBER_OFFSET("module_layout", "size"); + ASSIGN_OFFSET(module_init_size) = + MEMBER_OFFSET("module", "init_layout") + + MEMBER_OFFSET("module_layout", "size"); + + ASSIGN_OFFSET(module_core_text_size) = + MEMBER_OFFSET("module", "core_layout") + + MEMBER_OFFSET("module_layout", "text_size"); + ASSIGN_OFFSET(module_init_text_size) = + MEMBER_OFFSET("module", "init_layout") + + MEMBER_OFFSET("module_layout", "text_size"); + + ASSIGN_OFFSET(module_module_core) = + MEMBER_OFFSET("module", "core_layout") + + MEMBER_OFFSET("module_layout", "base"); + ASSIGN_OFFSET(module_module_init) = + MEMBER_OFFSET("module", "init_layout") + + MEMBER_OFFSET("module_layout", "base"); + } + MEMBER_OFFSET_INIT(module_percpu, "module", "percpu"); /* -- 2.3.0 -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility