[Gtk-sharp-list] Debugging binding issues (managed-unmanaged interface problems)

Mike Kestner mkestner@ximian.com
Mon, 17 May 2004 14:31:58 -0500


On Mon, 2004-05-17 at 14:04, Peter Johanson wrote:
> On Mon, May 17, 2004 at 11:41:26AM -0500, Mike Kestner wrote:
> > 
> > Define "earliest point possible."  Did you insert C.WLs in
> > voidObjectCallback?
> 
> Yup, here's a snippet from the start of that method:
> 
> private static void voidObjectCallback(IntPtr arg0, int key)
> {       
> 	Console.WriteLine("We've entered the callback!");
> 	if (!_Instances.Contains(key))
> 		throw new Exception("..
> 
> and here's what happens when running my small test program:
> 
> peter@gonzo src $ mono test-gst-backend.exe
> ~/audio/emoish/modest_mouse/modest_mouse-01-horn_intro.ogg
> Trying to LinkMany!
> Succeeded to LinkMany!
> setting the file?
> Setting the location to
> /home/peter/audio/emoish/modest_mouse/modest_mouse-01-horn_intro.ogg!
> Playing!
> Segmentation fault
> 
> The segfault happens right when the song ends.

Only thing I can think of is that maybe for some reason your
SignalHandler is getting gc'd and the callback delegate is being
released prior to the invocation from native code.

Maybe try adding a finalizer to the SignalHandler class to see if that's
what's going on?

-- 
Mike Kestner <mkestner@ximian.com>