ltrace for some reason fails to list library calls. Version-Release number of selected component (if applicable): ltrace 0.3.30. linux 2.4.26-gentoo-r9 How reproducible: Always. Steps to Reproduce: 1. ltrace /bin/true Actual results: $ ltrace /bin/true +++ exited (status 0) +++ $ Expected results: $ ltrace /bin/true __libc_start_main(0x08048ab4, 1, 0xbffff794, 0x0804876c, 0x080496d0 <unfinished ...> __register_frame_info(0x0804ad04, 0x0804ae48, 0xbffff738, 0x40046f18, 0x40132e48) = 0x080487c4 setlocale(6, "") = "LC_CTYPE=fi_FI;LC_NUMERIC=C;LC_T"... bindtextdomain("sh-utils", "/usr/share/locale") = "/usr/share/locale" textdomain("sh-utils") = "sh-utils" __cxa_atexit(0x08048c64, 0, 0, 0x0804966c, 1) = 0 exit(0 <unfinished ...> ferror(0x40130200) = 0 __fpending(0x40130200, 0x400135cc, 0xbffff794, 0x4003f3fe, 0x40132e48) = 0 __deregister_frame_info(0x0804ad04, 0x400135cc, 0x400137bc, 0x40013d50, 1) = 0 +++ exited (status 0) +++ $ A similar bug seems to have been reporter to redhat bugzilla, https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=116565
I can add possible source of bug: Some newer binaries (probably because of binutils/gcc/glibc upgrade) have zeroes in rel.plt sym.value (readelf output). I see ltrace work on binaries with numbers, and don't work on binaries without numbers. Also, upgrading ltrace from 0.3.31 to 0.3.36 solved problem, but I don't know if it's because that upgrade or because of recompile. (Note, according to redhat bugreport, problem is partially solved in ltrace-0.3.32-2 in rawhide and is caused by ld upgrade Patch description: http://sources.redhat.com/ml/binutils/2003-11/msg00258.html) Try to upgrade ltrace and report if it didn't help, then I'll try more tests.
Should work fine in later versions. Reopen if this is not the case. betelgeuse@pena /usr/portage/dev-util/ltrace $ ltrace /bin/true __libc_start_main(0x8048a00, 1, 0xffc95194, 0x8049b45, 0x8049b40 <unfinished ...> setlocale(6, "") = "en_US.utf8" __cxa_atexit(0x8048cfd, 0, 0, 1, 0xffc950f8) = 0 exit(0 <unfinished ...> __fpending(0x4568f4c0, 0x804d018, 0x804ce90, 0x4568eff4, 0x44c85ca0) = 0 fclose(0x4568f4c0) = 0 __fpending(0x4568f560, 0x804d018, 0x804ce90, 0x4568eff4, 0x44c85ca0) = 0 fclose(0x4568f560) = 0 +++ exited (status 0) +++