[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Libunwind-devel] src/os-linux.h:maps_init and threads
From: |
Philippe De Muyter |
Subject: |
Re: [Libunwind-devel] src/os-linux.h:maps_init and threads |
Date: |
Thu, 31 Aug 2017 14:40:46 +0200 |
User-agent: |
Mutt/1.5.16 (2007-06-09) |
On Thu, Aug 31, 2017 at 11:54:14AM +0200, Philippe De Muyter wrote:
> Hi all
>
> I try to use libunwind (on arm linux) and I need a clarification.
>
> I use libunwind to get call stacks of a running multithreaded process.
>
> Do I need to call 'UPT_create' for each thread pid, as the documentation
> of unw_init_remote() seems to imply, or only once for the process pid ?
>
> I looked at libunwind sources and /proc on my current linux machine,
> and see that 'maps_init' in src/os-linux.h opens /proc/pid/maps,
> while on my machine that file exists only with the pid of a process,
> but not for any of its threads, so _UPT_get_proc_info, as called by
> unw_step often fails, IIRC.
>
> Do I need to create my own find_proc_info accessor that will call
> _UPT_find_proc_info replacing the thread (void *arg) by one
> created for the process ?
I have tried that, and it shows no progress : libunwind retrieves some
infos but misses also other ones, that gdb can retrieve on the same
running process or core file :
using libunwind :
_UPT_find_proc_info(0x73bd48d4) ret = -10
_UPT_find_proc_info(0x73bd48e0) ret = -10
_UPT_find_proc_info(0x73b58644) ret = -10
_UPT_find_proc_info(0x6e0540bc) ret = -10
_UPT_find_proc_info(0x6e050868) ret = -10
_UPT_find_proc_info(0x6e050720) ret = -10
_UPT_find_proc_info(0x6e0580ac) ret = -10
gdb on the core file
(gdb) x /i 0x6e0580ac
0x6e0580ac <convert_image_to_from+272>: subs r11, r0, #0
(gdb) x /i 0x6e050720
0x6e050720 <single_line_file_read+40>: subs r5, r0, #0
(gdb) x /i 0x6e050868
0x6e050868 <single_line_file_update+32>: subs r5, r0, #0
(gdb) x /i 0x6e0540bc
0x6e0540bc <put_header+332>: mov r4, r0
(gdb) x /i 0x73b58644
0x73b58644 <melpiResultGetPlateAttr+128>: str r0, [r6]
(gdb) x /i 0x73bd48e0
0x73bd48e0 <gst_melpi_com+424>: ; <UNDEFINED>
instruction: 0xe7f001f0
(gdb) x /i 0x73bd48d4
0x73bd48d4 <gst_melpi_com+412>: ; <UNDEFINED>
instruction: 0xe7f001f0
(gdb)
--
Philippe De Muyter +32 2 6101532 Macq SA rue de l'Aeronef 2 B-1140 Bruxelles