Hi,
playing with ltrace, trying to see what functions are called by firefox,
it works fine in many situations:
ltrace -i -ulibnspr4 /usr/local/bin/firefox
ltrace -i -u:NSS* /usr/local/bin/firefox
*but* for some reason it doesnt seem to work with libxul.so, which is
where most of the symbols of the engine lies.
At the beginning i thought it was an issue as libxul.so is dlopen()'ed
by firefox binary (and not linked in the binary) but in some trunk
builds i have around, libnss3 & libnspr4 are also dlopen()'ed by firefox
binary and ltrace still shows symbols from those libs, so that doesnt
seem an issue with dlopen().
/usr/local/bin/firefox:
Start End Type Open Ref GrpRef Name
000013c3e0300000 000013c3e0353000 exe 2 0 0
/usr/local/bin/firefox
000013c68ce1b000 000013c68cef7000 rlib 0 1 0
/usr/lib/libc++.so.3.0
000013c6451ec000 000013c64522e000 rlib 0 2 0
/usr/lib/libc++abi.so.1.0
000013c6a1986000 000013c6a1993000 rlib 0 1 0
/usr/lib/libpthread.so.26.1
000013c6d5491000 000013c6d54c0000 rlib 0 1 0 /usr/lib/libm.so.10.1
000013c6987e5000 000013c6988d9000 rlib 0 1 0 /usr/lib/libc.so.96.0
000013c696dba000 000013c696dba000 ld.so 0 1 0 /usr/libexec/ld.so
objdump -p /usr/local/lib/firefox/libxul.so.85.0 |grep NEED lists all
the dependencies of libxul, and i have no issue showing called symbols
from those via ltrace, ie ltrace -i -ulibcairo /usr/local/bin/firefox
yields many things.
So, what could be the issue here ? the symbols i expect being called by
the code are not all exported in libxul.so ? The library is too large
(250mb)? I find it strange that
ltrace -i -ulibxul /usr/local/bin/firefox
yields nothing while most of the actual code is there.
Thanks for any pointers.
Landry