We now use known prototypes for all aliased symbols (same address)
authorDima Kogan <dima@secretsauce.net>
Mon, 2 Jun 2014 09:01:57 +0000 (02:01 -0700)
committerChanho Park <chanho61.park@samsung.com>
Fri, 22 Aug 2014 11:38:26 +0000 (20:38 +0900)
commit5c5c38e500fd8f20bb8d6c0177948dbfe86b6fcd
tree4f05fbaf41292a7c264cbe2caedd5c78c8e24a91
parent703e5c6363ae5d07be62c2efa0a17862ce3c1c45
We now use known prototypes for all aliased symbols (same address)

Some libraries have multiple names for the same function. Prior to this patch,
it was possible to define a prototype for a symbol, and not have ltrace use it
because it saw a different symbol be called. libc is a common source of this.
For instance (on my amd64 Debian box) it defines the nanosleep symbol as both
'nanosleep' and '__GI___nanosleep', at the same address. If a calling library
calls '__GI___nanosleep', then an ltrace prototype for 'nanosleep' would not be
used, even though it should apply to this call
dwarf_prototypes.c
library.c
library.h
ltrace-elf.c
output.c
proc.c