[Crash-utility] crash -s may have some problem

Dave Anderson anderson at redhat.com
Fri Mar 21 04:09:13 UTC 2008


baiwd wrote:
> Hi:
>    When I  use crash, I encounter this strange thing.
>    Executing "vm 1" under  crash, I see:
> PID: 1      TASK: e0000001ff908000  CPU: 0   COMMAND: "init"
>       MM               PGD          RSS    TOTAL_VM
> e000000185baac80  e000000185ca8000   256k    4464k
>      VMA              START             END        FLAGS FILE
> e000000185abc878                0             4000  84011
> e000000185abca88 2000000000000000 200000000003c000    875 /lib/ld-2.5.so
> e000000185abcb38 2000000000048000 2000000000050000 100873 /lib/ld-2.5.so
> e000000185abfaa8 2000000000060000 20000000000e0000     75 
> /lib/libsepol.so.1
> e000000185abf738 20000000000e0000 20000000000ec000     70 
> /lib/libsepol.so.1
> e000000185abf948 20000000000ec000 20000000000f0000 100073 
> /lib/libsepol.so.1
> e000000185abf9f8 20000000000f0000 20000000000fc000 100073
> e000000185abfb58 20000000000fc000 2000000000124000     75 
> /lib/libselinux.so.1
> e000000185abf898 2000000000124000 2000000000130000     70 
> /lib/libselinux.so.1
> e000000185abf5d8 2000000000130000 2000000000134000 100073 
> /lib/libselinux.so.1
> e000000185abf688 2000000000134000 2000000000138000 100073
> e000000185abd218 2000000000138000 20000000003a0000     75 
> /lib/libc-2.5.so
> e000000185abd168 20000000003a0000 20000000003ac000     70 
> /lib/libc-2.5.so
> e000000185abc458 20000000003ac000 20000000003b4000 100073 
> /lib/libc-2.5.so
> e000000185abc718 20000000003b4000 20000000003b8000 100073
> e000000185abd798 20000000003b8000 20000000003c0000     75 
> /lib/libdl-2.5.so
> e000000185abc508 20000000003c0000 20000000003cc000     70 
> /lib/libdl-2.5.so
> e000000185abd848 20000000003cc000 20000000003d0000 100073 
> /lib/libdl-2.5.so
> e000000185abd8f8 20000000003d0000 20000000003e8000 100073
> e000000185abc928 4000000000000000 4000000000014000   1875 /sbin/init
>       But when I execute "vm 1" under crash -s, the second part is 
> missing.
> [root at rhel51rc2 crash-4.0-6.1]# crash -s
> crash> vm 1
> PID: 1      TASK: e0000001ff908000  CPU: 0   COMMAND: "init"
>       MM               PGD          RSS    TOTAL_VM
>       0                 0            0k       0k
>
>        I think is caused by that IS_ZOMBIE(task) in memory.c failed. 
> And this failure
> is caused by that the value of _ZOMBIE_ has not been initialized. the 
> initialization of
> _ZOMBIE_ is in initialize_task_struct(), called by show_context() 
> finally. But when
> executing "crash -s", it's not called.
>      I added the following code in memory.c before using _ZOMBIE_, but 
> I don't  know
> whether it's good, it need to change initialize_task_state() to 
> nonstatic and use
> TASK_STATE_UNINITIALIZED which is now in task.c only.
> "
>        if (_ZOMBIE_ == TASK_STATE_UNINITIALIZED)
>                initialize_task_state();
> "
>
> Best Regards
>

Nice catch!  I'm going to just call initialize_task_state() from
task_init() so that it will get done unconditionally.  Queued for
the next release.

Thanks,
  Dave





More information about the Crash-utility mailing list