[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[DotGNU]I have a really really strange problem. Expecting marshalling bu
From: |
Ilyak Kasnacheev |
Subject: |
[DotGNU]I have a really really strange problem. Expecting marshalling bug. |
Date: |
Sat, 27 Nov 2004 00:42:03 +0300 |
User-agent: |
KMail/1.6.2 |
Hi everyone!
I can see only one source of my IceRegisterForProtocolSetup problem: we have
bug in marshalling code somewhere.
Look, how, do you think, will these two pieces of code differ?:
==
ICE.IcePoAuthProcIncapsulator authProc = new ICE.IcePoAuthProcIncapsulator(new
IcePoAuthProc(ICE._IcePoMagicCookie1Proc));
ICE.IceRegisterForProtocolSetup
("DUMMY", "DUMMY", "DUMMY",
(Xlib.Xint)1, ref version,
(Xlib.Xint)1, authNames, ref authProc, null);
majorOpcode = (int)ICE.IceRegisterForProtocolSetup
("DCOP", "KDE", "2.0",
(Xlib.Xint)1, ref version,
(Xlib.Xint)1, authNames, ref authProc, null);
== and
ICE.IcePoAuthProcIncapsulator authProc = new ICE.IcePoAuthProcIncapsulator(new
IcePoAuthProc(ICE._IcePoMagicCookie1Proc));
ICE.IceRegisterForProtocolSetup
("DUMMY", "DUMMY", "DUMMY",
(Xlib.Xint)1, ref version,
(Xlib.Xint)1, authNames, ref authProc, null);
ICE.IcePoAuthProcIncapsulator authProc1 = new
ICE.IcePoAuthProcIncapsulator(new
IcePoAuthProc(ICE._IcePoMagicCookie1Proc));
majorOpcode = (int)ICE.IceRegisterForProtocolSetup
("DCOP", "KDE", "2.0",
(Xlib.Xint)1, ref version,
(Xlib.Xint)1, authNames, ref authProc1, null);
==
(The only difference is different (but identical) authprocs used in 2 and,
same in 1)
The difference is that they give:
==
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1073879904 (LWP 2695)]
0x0000ffdb in ?? ()
(gdb) bt
#0 0x0000ffdb in ?? ()
#1 0x43ee2732 in IceProcessMessages () from /usr/X11R6/lib/libICE.so.6
#2 0x43ee4d82 in _IceProcessCoreMessage () from /usr/X11R6/lib/libICE.so.6
#3 0x43ee0aa5 in IceProcessMessages () from /usr/X11R6/lib/libICE.so.6
#4 0x43ee52f6 in IceProtocolSetup () from /usr/X11R6/lib/libICE.so.6
#5 0x080d78d3 in ffi_call_SYSV () at src/x86/sysv.S:59
#6 0x080d7899 in ffi_raw_call (cif=0x8370dc0,
fn=0x43ee4e70 <IceProtocolSetup>, rvalue=0x0, fake_avalue=0xbffff048)
at src/x86/ffi.c:515
#7 0x08094c12 in _ILCVMInterpreter (thread=0x8157e70) at cvm_call.c:855
#8 0x0804c3d8 in _ILCallMethod (thread=0x8157e70, method=0x40296370,
unpack=0x804c25c <_ILCallUnpackVResult>, result=0xbffff6e0, isCtor=0,
_this=0x0, pack=0x804bfa4 <_ILCallPackVParams>, userData=0xbffff6f0)
at call.c:706
#9 0x0804c6ad in ILExecThreadCallV (thread=0x8157e70, method=0x40296370,
result=0xbffff6e0, args=0xbffff6f0) at call.c:928
#10 0x0804bb6c in main (argc=2, argv=0xbffff7a4) at ilrun.c:494
== and
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1073879904 (LWP 2795)]
0x0000ffdb in ?? ()
(gdb) bt
#0 0x0000ffdb in ?? ()
#1 0x43ee0a56 in IceProcessMessages () from /usr/X11R6/lib/libICE.so.6
#2 0x080d78d3 in ffi_call_SYSV () at src/x86/sysv.S:59
#3 0x080d7899 in ffi_raw_call (cif=0x8366330,
fn=0x43ee0730 <IceProcessMessages>, rvalue=0xffdb, fake_avalue=0x0)
at src/x86/ffi.c:515
#4 0x08094c12 in _ILCVMInterpreter (thread=0x8157e70) at cvm_call.c:855
#5 0x0804c3d8 in _ILCallMethod (thread=0x8157e70, method=0x40296370,
unpack=0x804c25c <_ILCallUnpackVResult>, result=0xbffff6e0, isCtor=0,
_this=0x0, pack=0x804bfa4 <_ILCallPackVParams>, userData=0xbffff6f0)
at call.c:706
#6 0x0804c6ad in ILExecThreadCallV (thread=0x8157e70, method=0x40296370,
result=0xbffff6e0, args=0xbffff6f0) at call.c:928
#7 0x0804bb6c in main (argc=2, argv=0xbffff7a4) at ilrun.c:494
==
For me, that looks like:
After some function marshalling, n+1'th marshalled function gets b0rked.
Looks like it depend on number of marshallings, as in
IcePoAuthProcIncapsulator..ctor, and callings with marshalled as argument, as
in IceRegisterForProtocolSetup (Problem arose as: If i called this function
once, it worked, but i needed to call it twice - and it stopped to work).
P.S. If in 2nd piece i will do second call with authProc, it will do 1st
segfault-scenario.
Looks like authProc is created correctly for first time, but b0rked on second
creation.
Any more specifics needed? You can look background of these code pieces at
Xsharp/Ice dir.
P.P.S. Update: With second scenario, program runs farther than with first one.
Maybe, authProcs somehow b0rks itself after first function call?..
P.P.P.S. Update: Muuuch farther, it passes much deeper into DCOP protocol
handling, maybe second segfault now is my problem, not engine's.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [DotGNU]I have a really really strange problem. Expecting marshalling bug.,
Ilyak Kasnacheev <=