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

Reply via email to