Hi,

I've noticed ltrace not working in certain cases too. I think it might have 
something to do with binaries compiled with "relro now". This is a security 
feature where all the symbols are looked up on startup, not lazily, so that the 
GOT can be made read-only.

I'm still on Ubuntu 16.04 so I can still ltrace ls just fine. However, I can't 
ltrace curl. Here's the reason I think it's related to relro now (LAZY vs NOW 
in the scanelf output):

$ scanelf -a /bin/ls /usr/bin/curl
ET_EXEC PeMRxS 0755 LE RW- R-- RW-    -      -   LAZY /bin/ls 
ET_DYN PeMRxS 0755 LE RW- R-- RW-    -      -   NOW /usr/bin/curl

I added a little test case to the stack overflow question:

https://stackoverflow.com/questions/43213505/no-output-when-running-ltrace/44295494

Note that this issue was reported earlier on this list by Martin Cermak:

http://lists.alioth.debian.org/pipermail/ltrace-devel/2016-May/001378.html

Regards,

Doug

PS. This also seems to affect LD_AUDIT (and therefore latrace, where I'm going 
to report another bug right after this).

_______________________________________________
Ltrace-devel mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/ltrace-devel

Reply via email to