Troubleshooting statically built application using backtrace.
ANDY KENNEDY
ANDY.KENNEDY at adtran.com
Tue May 14 19:05:27 UTC 2013
> > two applications listed a backtrace. Only one line is printed with an
> > address (presumably of the backtrace function call).
> Yes, it is the calling function address.
> You can use addr2line command to convert the address in line number.
> Before you have to compile the application with debug information (add
> -g compiler flag),
> then use:
> addr2line -e <exec_name> <address>
Let's say I do that. I don't think that resolves the issue of it not
doing a backtrace, will it?
> >
> > It appears that, since the reference to dlopen was removed from
> > libubacktrace/backtrace.c, that the libgcc_s.so.1 is removed from the
> > equation entirely. Believing this, I'm attempting to revert the
> > changes made to that file so that we still attempt to dlopen the
> > libgcc_s.so.1 library prior to performing the backtrace.
> >
> > I'll let the list know whether this works.
> >
As I reported this seg faults.
This is a FULL description of what I did:
# Extract the code from `man 3 backtrace` in to hello_world.c
/opt/toolchains/powerpc-unknown-linux-uclibcgnuspe/bin/powerpc-linux-gcc \
-static -rdynamic -o hello_world hello_world.c -lubacktrace -ldl
# Next, I copy over to my target (essentially this is a P1010RDB):
SYSROOT=$(/opt/toolchains/powerpc-unknown-linux-uclibcgnuspe/bin/powerpc-linux-gcc -print-sysroot)
LIBDIR=$SYSROOT/lib
for i in ld-uClibc.so.0 libc.so.0 libgcc_s.so.1 ; do \
cp $LIBDIR/$i /tftpboot ; \
done
cp hello_world /tftpboot
ssh <mytarget>
tftp <all those files>
LD_LIBRARY_PATH=./ hello_world 5
That should produce five function calls and a backtrace through each
(as it does on my x86_64 host). I only get the backtrace function
in the list.
What did I do wrong?
Thanks,
Andy
More information about the uClibc
mailing list