[IronPython] ctypes on Mono

Dino Viehland dinov at microsoft.com
Tue Jun 1 19:34:03 CEST 2010


Any chance you can put a print in any calls to dlopen in ctypes\__init__.py and see what we're trying to load?

From: users-bounces at lists.ironpython.com [mailto:users-bounces at lists.ironpython.com] On Behalf Of Tristan Zajonc
Sent: Sunday, May 30, 2010 3:57 PM
To: Discussion of IronPython
Subject: Re: [IronPython] ctypes on Mono

(I'll look into OSX issue, although am happy to hear a solution from other users)

I'm not sure why I don't get line numbers.  If I pass -XExceptionDetail, I don't get much more:

tristanz at aontic1:~$ ipy -X:ExceptionDetail
IronPython 2.6.1 (2.6.10920.0) on .NET 2.0.50727.1433
Type "help", "copyright", "credits" or "license" for more information.
>>> import ctypes
cannot load library
LoadLibrary at offset 0 in file:line:column <filename unknown>:0:0
dlopen at offset 0 in file:line:column <filename unknown>:0:0
Invoke at offset 0 in file:line:column <filename unknown>:0:0
  at IronPython.Modules.CTypes.LoadLibrary (System.String library, Int32 mode) [0x00000] in <filename unknown>:0
  at IronPython.Modules.CTypes.dlopen (System.String library, Int32 mode) [0x00000] in <filename unknown>:0
  at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod*,object,object[],System.Exception&)
  at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0
OSError: IronPython.Runtime.Exceptions.OSException: cannot load library
  at IronPython.Modules.CTypes.LoadLibrary (System.String library, Int32 mode) [0x00000] in <filename unknown>:0
  at IronPython.Modules.CTypes.dlopen (System.String library, Int32 mode) [0x00000] in <filename unknown>:0
  at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod*,object,object[],System.Exception&)
  at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0


On Sun, May 30, 2010 at 6:24 PM, Dino Viehland <dinov at microsoft.com<mailto:dinov at microsoft.com>> wrote:
On OS/X I believe you need to use Mono's DllMap feature (http://www.mono-project.com/Config_DllMap) to map from the Linux library name (libdl.so) to the Mac OS/X library which exports dlopen.  I actually have no clue what exports it and I don't see one listed over here: http://gemma.apple.com/mac/library/documentation/Darwin/Reference/ManPages/man3/dlopen.3.html so hopefully someone else on the list knows.

It looks like on Linux the -X:ExceptionDetail command line option is being passed which is preventing the stack trace from having any line number information - or maybe the stack trace is cut off?  Either way it'd be useful to see the line number which is calling dlopen to understand what library we are failing to load.  My guess would be that it's trying to load the Python library but I'd think that would work fine (it looks like we pass in a null path in that case which should be alright for dlopen).


From: users-bounces at lists.ironpython.com<mailto:users-bounces at lists.ironpython.com> [mailto:users-bounces at lists.ironpython.com<mailto:users-bounces at lists.ironpython.com>] On Behalf Of Tristan Zajonc

Sent: Saturday, May 29, 2010 3:59 PM
To: Discussion of IronPython
Subject: [IronPython] ctypes on Mono

I'm running the the latest IronPython 2.6.1 (.NET 2.0 version) with Mono.  I cannot import ctypes.

Is this behavior expected?  Any solutions?  Here are the exact results:

On OSX:
IronPython 2.6.1 (2.6.10920.0) on .NET 2.0.50727.1433
Type "help", "copyright", "credits" or "license" for more information.
>>> import ctypes
Traceback (most recent call last):
SystemError: libdl.so

On Ubuntu (using trunk Mono):

IronPython 2.6.1 (2.6.10920.0) on .NET 2.0.50727.1433
Type "help", "copyright", "credits" or "license" for more information.
>>> import ctypes
Traceback (most recent call last):
OSError: IronPython.Runtime.Exceptions.OSException: cannot load library
  at IronPython.Modules.CTypes.LoadLibrary (System.String library, Int32 mode) [0x00000] in <filename unknown>:0
  at IronPython.Modules.CTypes.dlopen (System.String library, Int32 mode) [0x00000] in <filename unknown>:0
  at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod*,object,object[],System.Exception&)
  at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0


Best,
Tristan

_______________________________________________
Users mailing list
Users at lists.ironpython.com<mailto:Users at lists.ironpython.com>
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20100601/f17020ee/attachment.html>


More information about the Ironpython-users mailing list