This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
[Bug runtime/14026] print_ubacktrace doesn't resolve the symbol name
- From: "mjw at redhat dot com" <sourceware-bugzilla at sourceware dot org>
- To: systemtap at sourceware dot org
- Date: Wed, 02 May 2012 14:05:25 +0000
- Subject: [Bug runtime/14026] print_ubacktrace doesn't resolve the symbol name
- Auto-submitted: auto-generated
- References: <bug-14026-6586@http.sourceware.org/bugzilla/>
http://sourceware.org/bugzilla/show_bug.cgi?id=14026
--- Comment #7 from Mark Wielaard <mjw at redhat dot com> 2012-05-02 14:05:25 UTC ---
(In reply to comment #6)
> The patch below made it work for me:
>
>
> diff --git a/runtime/unwind.c b/runtime/unwind.c
> index e440177..3ac7f8d 100644
> --- a/runtime/unwind.c
> +++ b/runtime/unwind.c
> @@ -610,7 +610,7 @@ static int processCFI(const u8 *start, const u8 *end,
> unsigned long targetLoc,
> break;
> }
> dbug_unwind(1, "targetLoc=%lx state->loc=%lx\n", targetLoc,
> state->loc);
> - if (ptr.p8 > end)
> + if (ptr.p8 >= end)
> result = 0;
> if (result && targetLoc != 0 && targetLoc < state->loc)
> return 1;
I am not sure that is correct. In principle ptr being equal to end should be
fine (see also the last return condition in ProcessCFI). It means we read
everything, the last instruction and arguments (and nothing more).
If you hit this case then processCFI () will fail, which will make unwind_frame
() also fail. So I am somewhat surprised this seems to work for you. Do you
have debug output for before/after this patch?
--
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.