fputs in tp_print crashes under Win32

Gabriel Genellina gagsl-py2 at yahoo.com.ar
Sat Nov 15 00:52:20 EST 2008


En Wed, 12 Nov 2008 08:58:05 -0200, Petr Gotthard  
<petr.gotthard at centrum.cz> escribió:

> Hello,
> my C++ extension crashes under Win32 when the tp_print is called.
>
> It crashes with both Python 2.5.2 and 2.6. The crash occurs in
> system32\ntdll.dll, with exception code 0xc0000005.
>
> I found out that this works fine:
>
> int ulonghandle_print(RtiULongHandleObject *v, FILE *fp, int flags)
> {
>     fputc('c', stdout);
>     return 0;
> }
>
> But this causes the error:
>
> int ulonghandle_print(RtiULongHandleObject *v, FILE *fp, int flags)
> {
>     fputc('c', fp);  // <-- "fp" instead of "stdout"
>     return 0;
> }
>
> It occurs under Windows (XP SP2) only. Under Linux everything works
> fine.

Short answer: compile your extension with the *same* compiler used to  
compile Python itself: Visual Studio 2008 for 2.6, Visual Studio .NET 2003  
for 2.5
For the long answer search http://wiki.python.org/moin/

-- 
Gabriel Genellina




More information about the Python-list mailing list