From: Paulo Marques <pmarques@grupopie.com>
To: Sebastian Siewior <lkml@ml.breakpoint.cc>
Cc: Greg Ungerer <gerg@snapgear.com>,
torvalds@linux-foundation.org, akpm@linux-foundation.org,
gerg@uclinux.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] m68knommu: add pretty back strace
Date: Mon, 05 May 2008 20:21:19 +0100 [thread overview]
Message-ID: <481F5E2F.1030806@grupopie.com> (raw)
In-Reply-To: <20080502211038.GB22631@Chamillionaire.breakpoint.cc>
Sebastian Siewior wrote:
> * Paulo Marques | 2008-05-02 20:27:57 [+0100]:
>
>> Greg Ungerer wrote:
>>> From: Sebastian Siewior <bigeasy@linutronix.de>
>>> With this patch and
>>> CONFIG_FRAME_POINTER=y
>>> CONFIG_KALLSYMS=y
>>> The backtrace shows resolved function names and their numeric
>>> address.
>> This is really not my area, but this patch reminds me of all the dwarf2
>> unwinder on x86 that caused so many problems in the beginning...
>>
>>> [...]
>>> +#ifdef CONFIG_FRAME_POINTER
>>> + printk(KERN_EMERG "Call Trace:\n");
>>> +
>>> + last_stack = stack - 1;
>>> + while (stack <= endstack && stack > last_stack) {
>>> +
>>> + addr = *(stack + 1);
>>> + printk(KERN_EMERG " [%08lx] ", addr);
>>> + print_symbol(KERN_CONT "%s\n", addr);
>>> +
>>> + last_stack = stack;
>>> + stack = (unsigned long *)*stack;
>>> }
>>> printk("\n");
>>> +#else
>>> + printk(KERN_EMERG "CONFIG_FRAME_POINTER disabled, no symbolic call
>>> trace\n");
>> You could probably fall back to the old method in this case, no?
> The old method printed every value from stack which was in the text
> range (you didn't get modules AFAIK). This might be the caller as well a
> function pointer as argument as well something else. I tried to find to
> find a pattern without frame pointers but I had no luck. I thing the
> caller fixed the stack frame or something.
> Greg did not complain about removing it. If you or others want the old
> method in case of no frame pointers I can send a patch.
Having output garbled with "false positive" addresses, but that have the
"true positives" in between is better than no output at all.
>> Also, if the stack is slightly corrupted on the top, the new method might
>> just bail out without giving any indication about the path that lead there,
>> when instead it could also fall back to the old method.
> You mean by slightly that the first caller ORed the address with
> something?
Or more commonly, a buffer overflow... (or underflow, depending on how
the stack grows)
> In that case we don't return safely. I don't know how I could
> find out the right time for a fallback (in case of slightly corrupted
> stack).
I was imagining you would get a page fault where you'd show a stack
trace, but that's on a MMU processor. With no MMU I guess you don't get
a chance to do that :(
As I said before, this is really not my area. I just remember that a
very similar change in x86 was a real pain, and wanted to make sure that
everyone here was aware of that.
--
Paulo Marques - www.grupopie.com
"Who is general Failure and why is he reading my disk?"
next prev parent reply other threads:[~2008-05-05 19:21 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-05-01 2:16 [PATCH] m68knommu: add pretty back strace Greg Ungerer
2008-05-02 19:27 ` Paulo Marques
2008-05-02 21:10 ` Sebastian Siewior
2008-05-05 19:21 ` Paulo Marques [this message]
2008-05-06 4:52 ` Greg Ungerer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=481F5E2F.1030806@grupopie.com \
--to=pmarques@grupopie.com \
--cc=akpm@linux-foundation.org \
--cc=gerg@snapgear.com \
--cc=gerg@uclinux.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lkml@ml.breakpoint.cc \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.