[Crash-utility] [PATCH] do not check sp if ip points to user space
Dave Anderson
anderson at redhat.com
Wed Sep 28 12:53:01 UTC 2011
----- Original Message -----
> >>>
> >>> And what happens when a backtrace is attempted on such a task?
> >>>
> >>> Since the current code would not set BT_USER_SPACE, I'm guessing that it
> >>> would run into this (at least on x86_64):
> >>>
> >>> if (!(bt->flags & BT_USER_SPACE) && (!rsp || !accessible(rsp))) {
> >>> error(INFO, "cannot determine starting stack
> >>> pointer\n");
> >>> return;
> >>> }
> >>
> >> Yes, crash will run into this on x86_64.
> >
> > OK, so why not change the above to do something like this:
> >
> > if (!(bt->flags & BT_USER_SPACE) && (!rsp || !accessible(rsp))) {
> > fprintf(ofp, "cannot determine starting stack pointer\n");
> > if(KVMDUMP_DUMPFILE())
> > kvmdump_display_regs(bt->tc->processor,
> > ofp);
> > else if (ELF_NOTES_VALID() && DISKDUMP_DUMPFILE())
> > diskdump_display_regs(bt->tc->processor,
> > ofp);
> > else if (SADUMP_DUMPFILE()) {
> > sadump_display_regs(bt->tc->processor,
> > ofp);
> > return;
> > }
> >
> > Dave
>
> Agree with it. But we should init ofp earlier, and we should add the
> same code in the function x86_back_trace_cmd().
>
> Thanks
> Wen Congyang
Yes, I'll do that as well.
Thanks Wen,
Dave
More information about the Crash-utility
mailing list