[Python-Dev] Hmmm... __PyObject_NextNotImplemented when tracing lines (original) (raw)

skip at pobox.com skip at pobox.com
Mon Jan 19 22:52:04 CET 2009


Alexander> I cannot reproduce this on my Mac.  It looks like you may
Alexander> have an out of date python.exe in your sandbox.  Please check
Alexander> that

Alexander> $ nm python.exe | grep PyObject_NextNotImplemented
Alexander> 00052940 T __PyObject_NextNotImplemented

Alexander> has a "T" in the second column.

Alexander> Note that this symbol seem to have been added recently:
...

I see what the problem is now. I configured with --enable-shared. Even though my sandbox was up-to-date, my python.exe was current and my libpython2.7.dylib held the symbol in question the installed version of libpython2.7.dylib didn't have the symbol:

% nm python.exe | grep PyObject_NextNotImplemented
% nm libpython2.7.dylib | egrep PyObject_NextNotImplemented
00054200 T __PyObject_NextNotImplemented
% nm /Users/skip/local/lib/libpython2.7.dylib  | egrep PyObject_NextNotImplemented
%

I've been bitten by this before. When building with --enable-shared the executable appears to have the installed shared library location bound into it:

% otool -L python.exepython.exe:
        /Users/skip/local/lib/libpython2.7.dylib (compatibility version 2.7.0, current version 2.7.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.3)

Is this something that we can fix/work around? It seems to me like a wart, probably platform-dependent.

Alexander> I am puzzled, however, that you don't see problems in a
Alexander> non-coverage run.

Yeah, that mystifies me as well, especially given the above output from nm and otool.

Skip



More information about the Python-Dev mailing list