firefox és java plugin

Valahogy el van ez átkozva...
Főbb tényezők:

- Debian GNU/linux 6
- 64-bites kernel 3.10.5
- firefox-23.0, angol, 32-bites /opt/firefox-ba telepítve
- java-jdk1.7.0_25 /opt/jdk-ba telepítve, benne egy tök jó kis plugin
- /usr/lib/mozilla/plugins, benne
libflashplayer.so (file)
libjavaplugin_oji.so (symlink)
- saját könyvtáramban egy ~/.mozilla/firefox/*.default/pluginregs.dat, benne:
[INVALID]
/local/opt/jdk1.7.0_25/jre/plugin/i386/ns7/libjavaplugin_oji.so:$
1370492063000:$

Most azt találtam ki, hogy megnézem a firefox forrását, végső esetben megpróbálom fordítani... na nem mintha az olyan könnyű lenne...

Persze nincs leírás, ösztön és google alapján ilyesmivel próbálkozom:


#!/bin/sh

cat >.mozconfig <<DONE
ac_add_options --enable-application=browser # FF

ac_add_options --build=x86_64-unknown-linux-gnu
ac_add_options --target=i686-pc-linux-gnu

ac_add_options --enable-debug

DONE

make distclean 2>&1 | tee log.make.distclean

python mach build    \
        2>&1 | tee log.mach.build

[/code]

2013.08.08 18:17 Hát természetesen C++-t debuggolni a lehetetlennel határos, de azért egy vad ötletem támadt: minő szimbólumokat exportál a java plugin, és milyeneket a flash plugin?


0053ada0 T FlashPlayer_11_2_202_297_FlashPlayer
0053ad40 T Flash_DisableLocalSecurity
0053ad70 T Flash_EnforceLocalSecurity
00538a80 T NP_GetMIMEDescription
00538a60 T NP_GetPluginVersion
005389e0 T NP_GetValue
005386f0 T NP_Initialize
005386d0 T NP_Shutdown

000143a0 T NSGetFactory
000146d0 T _Z10LoadNSCorePPv
000145f0 T _Z12UnloadNSCorePv
0000cf50 T _Z13trace_adapterPKc
000148d0 T _ZN15CNSAdapter_NSPR11JD_GetErrorEv
00014980 T _ZN15CNSAdapter_NSPR12JD_AvailableEPv
00014bf0 T _ZN15CNSAdapter_NSPR12JD_NotifyAllEPv
00014b30 T _ZN15CNSAdapter_NSPR13JD_CreatePipeEPPvS1_
00014ce0 T _ZN15CNSAdapter_NSPR13JD_NewMonitorEv
00014c50 T _ZN15CNSAdapter_NSPR14JD_ExitMonitorEPv

Ebből az első egész értelmesen hangzik, a többi olyan, mintha a C++ keze betette volna a lábát... Pedig hát, mint tudjuk, a C++ és a DLL nem megy jól össze (illetve a C++ és a bármi nem megy jól össze, de ez most off-topic)

2013.08.08 19:08 az IcedTeát bezzeg egyből felismerte a derék firefox... jó, működni nem működik, sőt szétfagyott az X is, de ezt annak tudom be, hogy az elaggott debianban kicsit összevissza vannak a csomagok, holnap talán újra ránézek.

PS: Hálás köszönet minden hozzászólónak!

PS2: A debuggolásnál további nehézséget jelenthetett (ez ugyan csak egy ötlet, nem teszteltem), hogy a pluginok tulajdonképpeni betöltését (dlopen, dlsym) esetleg egy külön processz végezte (mint ahogy a tulajdonképpeni futtatást is egy külön 'plugin-container' processz végzi), amit az én debuggolásom nem is érintett, így aztán várhattam, hogy mikor áll meg a 'dlopen'-en...

2013.08.09.09:53.
Közben eljutott a tudatomig _ventura_ hozzászólása... Köszi!
További feladat önmagamnak: gdb és fork kapcsolatáról keresni valamit.
(Off: eddigi gdb-s tapsztalataimat itt foglaltam írásba)

Hozzászólások

Nekem a régi libjavaplugin_oji.so réges rég óta nem megy
helyette:
/usr/java/jre1.7.0_25/lib/amd64/libnpjp2.so
simán jó.

Értelemszerűen gondolom amd64 helyett i386 is jó.

Fedora 19, Thinkpad x61s