[Crash-utility] 2.6.25-rc2-git1 test

Dave Anderson anderson at redhat.com
Tue Feb 19 14:11:00 UTC 2008


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






More information about the Crash-utility mailing list