[Ltrace-devel] Tracing dependent libraries

Joe Damato ice799 at gmail.com
Tue Mar 30 18:53:02 UTC 2010


Replying to this on-list just incase other people have this problem.

Not sure if I ever submit this patch back to the list, but I added support
for backtraces so you can see the function call stack for traced functions.

The problem with this feature is that I didn't take the time to fix the
configure script so that it would disable that code if you don't have
libunwind on your system.

There are two solutions:

1.) The simplest solution (until I or some one else fixes the configure
script) is to install libunwind library and header files on your system and
try building my branch again.

or

2.) Rewind the source tree in git to before that commit was made. To do this
you can just: git checkout a95f1 -b before_unwind

That will create a local branch called "before_unwind" (the first byte of
the sha before the libunwind commit are a95f1).

The downside is that if you do this you lose some of the man page cleanup
and a small bugfix.

Sorry for the pain.

joe

On Tue, Mar 30, 2010 at 11:11 AM, Rodrigo Dominguez <roddomi at hotmail.com>wrote:

>  Thanks. I was able to checkout your code.
>
> I am getting the following errors after ‘./configure && make’
>
>
>
> make -C sysdeps/linux-gnu
>
> make[1]: Entering directory `/home/rdomingu/ltrace/sysdeps/linux-gnu'
>
> gcc -Wall -g -O2 -iquote /home/rdomingu/ltrace -iquote
> /home/rdomingu/ltrace/sysdeps/linux-gnu -DSYSCONFDIR=\"/usr/local/etc\"  -I
> /usr/include/libelf -I/home/rdomingu/ltrace/sysdeps/linux-gnu/x86_64  -c -o
> events.o events.c
>
> In file included from events.c:12:
>
> /home/rdomingu/ltrace/common.h:1:23: error: libunwind.h: No such file or
> directory
>
> In file included from /home/rdomingu/ltrace/common.h:11,
>
>                  from events.c:12:
>
> /home/rdomingu/ltrace/elf.h:4:18: error: gelf.h: No such file or directory
>
> In file included from /home/rdomingu/ltrace/common.h:11,
>
>                  from events.c:12:
>
> /home/rdomingu/ltrace/elf.h:9: error: expected specifier-qualifier-list
> before âElfâ
>
> /home/rdomingu/ltrace/elf.h:50: error: expected â=â, â,â, â;â, âasmâ or
> â__attribute__â before âarch_plt_sym_valâ
>
> In file included from events.c:12:
>
> /home/rdomingu/ltrace/common.h:193: error: expected
> specifier-qualifier-list before âunw_addr_space_tâ
>
> In file included from events.c:12:
>
> /home/rdomingu/ltrace/common.h:234: error: expected declaration specifiers
> or â...â before âGElf_Symâ
>
> /home/rdomingu/ltrace/common.h:236: error: expected â)â before âaddrâ
>
> make[1]: *** [events.o] Error 1
>
> make[1]: Leaving directory `/home/rdomingu/ltrace/sysdeps/linux-gnu'
>
> make: *** [sysdeps/sysdep.o] Error 2
>
>
>
> *From:* Joe Damato [mailto:ice799 at gmail.com]
> *Sent:* Tuesday, March 30, 2010 1:12 PM
>
> *To:* Rodrigo Dominguez
> *Cc:* ltrace-devel at lists.alioth.debian.org
> *Subject:* Re: [Ltrace-devel] Tracing dependent libraries
>
>
>
> Not a dumb question at all. My code isn't part of the official repository,
> but it is on github at: git://github.com/ice799/ltrace.git
>
>
>
> My code is in the branch "libdl"
>
>
>
> So you should:
>
>
>
> git clone git://github.com/ice799/ltrace.git
>
> git checkout -b libdl origin/libdl
>
>
>
> and you will be sitting in the libdl branch.
>
>
>
> You can take a look at the commits on that branch by doing git log. If a
> particular commit interests you, you can git show <sha> to look at the diff.
>
>
>
> If you have any other questions/issues getting my code or getting it to
> build feel free to email me off list.
>
>
>
> joe
>
>
>
> On Tue, Mar 30, 2010 at 9:35 AM, Rodrigo Dominguez <roddomi at hotmail.com>
> wrote:
>
> Joe,
>
>
>
> I am sorry for the dumb question but how do you checkout a branch from
> github. I am not familiar with git. I ran:
>
>
>
> git clone git://git.debian.org/git/collab-maint/ltrace.git
>
>
>
> but this only gets me the master branch.
>
>
>
> Thank you.
>
>
>
> *From:* Joe Damato [mailto:ice799 at gmail.com]
> *Sent:* Tuesday, March 09, 2010 5:20 PM
> *To:* Rodrigo Dominguez
> *Cc:* ltrace-devel at lists.alioth.debian.org
> *Subject:* Re: [Ltrace-devel] Tracing dependent libraries
>
>
>
> I implemented support for libdl and you can get that tree from github:
> http://github.com/ice799/ltrace/tree/libdl
>
> I have *not* implemented tracing calls from libraries to other libraries,
> though. doing that should be pretty straightforward. i don't really have the
> cycles right now to implement that in the near term but I am willing to
> point people in the right direction if they are interested in implementing
> it.
>
>
>
> otherwise as soon as i have time to do it (probably later this month), i
> can implement it.
>
>
>
> joe
>
>
>
> On Tue, Mar 9, 2010 at 2:13 PM, Rodrigo Dominguez <roddomi at hotmail.com>
> wrote:
>
> How can I get ltrace to trace dependent libraries (libraries called from
> within libraries)? All I was able to find was this old post:
>
> http://sourceware.org/ml/binutils/2006-09/msg00009.html
>
> Has this been implemented since then?
>
> Thank you.
>
>
> _______________________________________________
> Ltrace-devel mailing list
> Ltrace-devel at lists.alioth.debian.org
> http://lists.alioth.debian.org/mailman/listinfo/ltrace-devel
>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.alioth.debian.org/pipermail/ltrace-devel/attachments/20100330/866ed3de/attachment-0001.htm>


More information about the Ltrace-devel mailing list