HeapTrack Query - Stripped Binary

sindhu krishnan sindhu.muthu25 at gmail.com
Mon Jun 19 12:22:04 BST 2023


Hi ,

Thank you!

I have set the UNWIND METHOD as EXIDX as you suggested by disabling
the CONFIG_DEBUG_FRAME.
I'm currently using the latest version of libunwind 1.7.0, In this
version EXIDX unwinding method is used and if it fails then DWARF
method is used.
However, in my case, it seems that both unwinding methods are failing,
Hence its trying fallback method where there is an attempt to access
an unallocated variable, leading to a SIGSEV.

My doubt is,
1) Is the way I set the unwinding method is correct or should I set
UNW_ARM_METHOD=4 by any compiler options?
2) Do you have any insights into why both unwinding methods are failing?

Thank you.

On Mon, Jun 19, 2023 at 2:08 PM Milian Wolff <mail at milianw.de> wrote:
>
> On Freitag, 16. Juni 2023 14:35:26 CEST sindhu krishnan wrote:
> > Thank you!
> >
> > I have updated libunwind to version 1.6.2 and heaptrack to version 1.4.0.
> >
> > Initially, I believed that there might be an issue with unwinding the
> > backtrace due to using a stripped binary.
> > However, I just did LD_PRELOAD of libheaptrack_preload.so to my program.
> >
> > 1) I am still experiencing a crash in libunwind.
> > (gdb) bt
> > #0  _ULarm_step (cursor=cursor at entry=0xbe964488) at
> > ../../libunwind-1.6.2/src/arm/Gstep.c:173
> > #1  0xb6d1b04c in slow_backtrace (uc=0xbe960448, size=64,
> > buffer=0xbe9684b8) at ../../libunwind-1.6.2/src/mi/backtrace.c:45
> > #2  unw_backtrace (buffer=buffer at entry=0xbe9684b8, size=size at entry=64)
> > at ../../libunwind-1.6.2/src/mi/backtrace.c:72
> > #3  0xb6fa4af0 in Trace::unwind (data=data at entry=0xbe9684b8) at
> > /usr/src/debug/heaptrack/1.4.0-r0/git/src/track/trace_libunwind.cpp:64
> > #4  0xb6fa43c4 in Trace::fill (skip=2, this=0xbe9684b0) at
> > /usr/src/debug/heaptrack/1.4.0-r0/git/src/track/trace.h:44
> > #5  heaptrack_malloc (ptr=ptr at entry=0x43f258, size=4936) at
> > /usr/src/debug/heaptrack/1.4.0-r0/git/src/track/libheaptrack.cpp:845
> > #6  0xb6fa1ada in malloc (size=<optimized out>) at
> > /usr/src/debug/heaptrack/1.4.0-r0/git/src/track/heaptrack_preload.cpp:214
> > #7  0xb6153792 in BKNI_Malloc_tagged () from /usr/lib/libnexus.so
> > #8  0xb6d070a4 in bipc_client_create () from /usr/lib/libnxclient.so
> > #9  0xb6d04a84 in ?? () from /usr/lib/libnxclient.so
> > Backtrace stopped: previous frame identical to this frame (corrupt stack?)
>
> As I said - create an MWE and report a bug. And try to use UNW_ARM_METHOD=4.
>
> > 2) In certain cases, it is not possible to preload
> > libheaptrack_preload.so to the program. Although the library is
> > present in the specified path and has the necessary permissions.
> >
> > Starting program: /usr/bin/env
> > LD_PRELOAD=/usr/lib/heaptrack/libheaptrack_preload.so
> > /usr/bin/audiocap
> > process 22570 is executing new program: /usr/bin/audiocap
> > ERROR: ld.so: object '/usr/lib/heaptrack/libheaptrack_preload.so' from
> > LD_PRELOAD cannot be preloaded (cannot open shared object file):
> > ignored.
>
> Create an MWE and report a bug.
>
> > On Thu, Jun 15, 2023 at 12:50 PM Milian Wolff <mail at milianw.de> wrote:
> > > On Mittwoch, 14. Juni 2023 22:49:18 CEST sindhu krishnan wrote:
> > > > Thank you For the inputs!
> > > >
> > > > I'm using heaptrack version 1.2.0 and libunwind 1.3.1. I will try with
> > > > libunwind version 1.6.2.
> > > >
> > > > Is there any way to provide debug symbols separately when using a
> > > > stripped
> > > > binary?
> > >
> > > Yes, with `heaptrack --record-only` followed by a manual invocation of
> > > `heaptrack_interpret` (see heaptrack bash file for examples). Note that we
> > > don't yet have good support to add custom sysroot or library search paths
> > > though - patches welcome.
> > >
> > > <snip>
> > >
> > > > How do I execute heaptrack for a running process? Do I only need to
> > > > attach
> > > > the process to heaptrack, or can I modify the service file to start the
> > > > process directly with heaptrack?
> > >
> > > That's up to you, pick whatever you want/need.
> > >
> > > Cheers
> > > --
> > > Milian Wolff
> > > mail at milianw.de
> > > http://milianw.de
>
>
> --
> Milian Wolff
> mail at milianw.de
> http://milianw.de


More information about the Heaptrack mailing list