[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