Solofo Ramangalahy wrote:
Hello,
Testing crash with 2.6.25-rc2-git1 leads to:
..............................................................................
crash 4.0-4.13
[ ... snipped ... ]
please wait... (patching 33611 gdb minimal_symbol values)
crash: invalid structure member offset: tss_struct_ist
FILE: x86_64.c LINE: 682 FUNCTION: x86_64_ist_init()
[.../crash-4.0.4-13/bin/crash] error trace: 4522bb => 4cc1cb => 4ce2fb =>
5029bd
5029bd: OFFSET_verify+159
4ce2fb: x86_64_ist_init+501
4cc1cb: x86_64_init+2903
4522bb: main_loop+115
WARNING: Because this kernel was compiled with gcc version 4.2.3, certain
commands or command options may fail unless crash is invoked with
the "--readnow" command line option.
..............................................................................
. This is probably also the case with less recent kernel versions (cannot
confirm as of now).
. The vmcore was the one produced by "echo c > /proc/sysrq-trigger"
. Advice of using --readnow does not suppress the error.
. Using --no_data_debug option allows to go further.
This is a result of the recent x86/x86_64 merger. And I expect that
there will be several more crippling issues associated with the data
structure changes associated with that merger.
But it *may* be possible to get past what your seeing by applying this
change to x86_64.c:
--- crash-4.0-4.13/x86_64.c.orig
+++ crash-4.0-4.13/x86_64.c
@@ -255,7 +255,7 @@ x86_64_init(int when)
MEMBER_OFFSET_INIT(thread_struct_rsp, "thread_struct",
"rsp");
MEMBER_OFFSET_INIT(thread_struct_rsp0, "thread_struct",
"rsp0");
STRUCT_SIZE_INIT(tss_struct, "tss_struct");
- MEMBER_OFFSET_INIT(tss_struct_ist, "tss_struct",
"ist");
+ MEMBER_OFFSET_INIT(tss_struct_ist, "x86_hw_tss",
"ist");
MEMBER_OFFSET_INIT(user_regs_struct_rip,
"user_regs_struct", "rip");
MEMBER_OFFSET_INIT(user_regs_struct_rsp,
This only works because the new embedded x86_hw_tss structure (which
contains the ist[] array of exception stack pointers) is the first
member of the generic tss_struct.
Dave