[SATYR PATCH] unwind: resolve symbols through libunwind
Michal Toman
mtoman at redhat.com
Tue Jun 4 13:46:44 UTC 2013
Pushed
On 03.06.2013 20:19, Martin Milata wrote:
> The libunwind-based unwind code used elfutils to obtain function names.
> This patch adds fallback to symbol resolution provided by libunwind if
> elfutils do not return any result. This is useful on systems where
> binaries have embedded minidebuginfo and libunwind has minidebuginfo
> support while elfutils do not (e.g. fedora 19).
>
> Related to #82.
>
> Signed-off-by: Martin Milata <mmilata at redhat.com>
> ---
> lib/core_unwind_libunwind.c | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>
> diff --git a/lib/core_unwind_libunwind.c b/lib/core_unwind_libunwind.c
> index 29805da..8f4664b 100644
> --- a/lib/core_unwind_libunwind.c
> +++ b/lib/core_unwind_libunwind.c
> @@ -395,6 +395,17 @@ unwind_thread(struct UCD_info *ui,
> entry->function_name = sr_strdup(funcname);
> }
>
> + if (!entry->function_name)
> + {
> + size_t funcname_len = 512;
> + char *funcname = sr_malloc(funcname_len);
> +
> + if (unw_get_proc_name(&c, funcname, funcname_len, NULL) == 0)
> + entry->function_name = funcname;
> + else
> + free(funcname);
> + }
> +
> trace = sr_core_frame_append(trace, entry);
> /*
> printf("%s 0x%llx %s %s -\n",
>
More information about the Crash-catcher
mailing list