[Mono-list] Embedding woes, Mono 2.4
dodecaphonic at gmail.com
Sun May 17 09:29:31 EDT 2009
I've been for the past couple of days hitting my head against the wall
over a problem that I finally admit I can't figure out. I'm using mono
as an extension platform for my C++ application, and everything seemed
fine up until I started needing to call methods in various contexts
(it wasn't fine for long, as you can see).
I have an extension manager that loads assemblies up and returns an
object wrapping a MonoAssembly* which knows a little extra over paths,
returns its image and so on -- simple sugar coating. I proceeded to
build MonoMethodDescs, search for the methods and get up to
mono_runtime_invoke, and invariably got a SIGSEGV. All the pointers
were initialized and everything seemed fine, which baffled me all the
gazillion times I stepped through in gdb, but I figured: "hey, I'm
overengineering, let's do away with this wrapper altogether. Makes no
sense, but I'm out of ideas". So I passed around the MonoAssembly* and
get the same SIGSEGV's when invoking. Ok, consistent.
But then, to my utter puzzlement, I tried hardcoding the loading of
the assembly in the scope it was supposed to be used, and invocation
then worked perfectly.
I looked for references of a similar use in a similar context and
found out that the guy responsible for Qyoto is doing pretty much the
same thing I am, and there seem to be no special calls. Is there
something I should be aware of regarding sharing a MonoAssembly*?
I'm using Mono 2.4 on Mac OS X Leopard and Ubuntu 9.04, the dmg
version on the first and compiled from source in the second. I don't
have access to my work computer right now, so I can't provide the more
detailed stacktrace it's giving on Linux, but it fails on exactly the
same place in both OS's.
If extra information of any type is needed, let me know. I'll try to
provide it to my best capacity.
Thanks in advance,
Vitor Peres (dodecaphonic)
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Mono-list