strange Bug

Björn Döbel doebel at os.inf.tu-dresden.de
Wed Nov 26 23:24:54 CET 2014


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

> Now i revisited my project a found something. When i add the faulty
> code in myClient, i find the PC with objdump. But, when i put the
> faulty code in libClient, i.e. a shared lib which myClient uses,
> then i dont find the PC in myClient or libClient (but in moe).

The fact that your PC has a value that is also valid in Moe does *not*
imply that the code comes from Moe. Those are two completely distinct
binaries executing in different address spaces.

What seems to happen is that your dynamic lib gets loaded to some free
address range within myClient and due to the nature of dynamic loading
your PC may end up anywhere the linker choses.

Debugging quickfix: link your program statically to identify the
faulty location.

Alternative (not recommended before you tried the quickfix): obtain
dynamic loading info using the LD_DEBUG environment variable and
figure out which library gets mapped to the respective address.

Also, to really understand what is going on here:
http://www.iecc.com/linker/

Bjoern
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iEYEARECAAYFAlR2UzIACgkQP5ijxgQLUNlVzACfUiI86fXC2vLzlQAWU588aN/r
MXAAn2wn8HZm+iDQGyW8yxMFI2KZC4/n
=4flV
-----END PGP SIGNATURE-----



More information about the l4-hackers mailing list