- Segmentation-fault with PyObject_Call() in shared library for iTunes
- cimport libc.stdio as stdio
- cdef extern from "iTunesAPI/iTunesAPI.h":
- ctypedef int OSType
- ctypedef int OSStatus
- ctypedef struct PluginMessageInfo:
- pass
- int unimpErr
- cdef public OSStatus iTunesPluginMain( OSType message,
- PluginMessageInfo* messageInfo,
- void* refCon ):
- cdef stdio.FILE* fl = stdio.fopen('C:/itunes_cyplugin_feedback.txt', 'wb')
- return unimpErr
- # ...
- cdef public OSStatus iTunesPluginMain( OSType message,
- PluginMessageInfo* messageInfo,
- void* refCon ):
- object()
- return unimpErr
- C:Program Files (x86)iTunes>gdb iTunes.exe
- GNU gdb (GDB) 7.3.1
- Copyright (C) 2011 Free Software Foundation, Inc.
- License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
- This is free software: you are free to change and redistribute it.
- There is NO WARRANTY, to the extent permitted by law. Type "show copying"
- and "show warranty" for details.
- This GDB was configured as "mingw32".
- For bug reporting instructions, please see:
- <http://www.gnu.org/software/gdb/bugs/>...
- Reading symbols from c:program files (x86)itunesiTunes.exe...(no debugging symbols found)...done.
- (gdb) b write
- No symbol table is loaded. Use the "file" command.
- Make breakpoint pending on future shared library load? (y or [n]) y
- Breakpoint 1 (write) pending.
- (gdb) r
- Starting program: c:program files (x86)itunesiTunes.exe
- [New Thread 4588.0xa20]
- [New Thread 4588.0x1214]
- [New Thread 4588.0x12f4]
- [New Thread 4588.0x274]
- [New Thread 4588.0x1070]
- [New Thread 4588.0xf40]
- [New Thread 4588.0xfb0]
- [New Thread 4588.0x12b0]
- [New Thread 4588.0xb48]
- [New Thread 4588.0x58c]
- [New Thread 4588.0xc7c]
- [New Thread 4588.0x1048]
- [New Thread 4588.0x8ac]
- [New Thread 4588.0x10dc]
- [New Thread 4588.0x190]
- [New Thread 4588.0x128]
- [New Thread 4588.0xfbc]
- [New Thread 4588.0xc2c]
- [New Thread 4588.0x1154]
- [New Thread 4588.0x234]
- [New Thread 4588.0xa70]
- [New Thread 4588.0x1144]
- [New Thread 4588.0xa48]
- [New Thread 4588.0xbe8]
- warning: ASL checking for logging parameters in environment variable "iTunes.exe.log"
- warning: ASL checking for logging parameters in environment variable "asl.log"
- BFD: C:WindowsSysWOW64WMVCORE.DLL: Warning: Ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in section .reloc
- Program received signal SIGSEGV, Segmentation fault.
- 0x1e0650bc in python27!PyObject_Call () from C:WindowsSysWOW64python27.dll
- (gdb)
- (gdb) bt all
- No symbol "all" in current context.
- (gdb) bt
- #0 0x1e0650bc in python27!PyObject_Call () from C:WindowsSysWOW64python27.dll
- #1 0x02eb12ae in iTunesPluginMain (__pyx_v_message=1768843636, __pyx_v_messageInfo=0x16e6b0, __pyx_v_refCon=0x0)
- at pytunes.c:465
- #2 0x68a4d627 in iTunes!getPhaseStreamLibraryVersion () from c:program files (x86)itunesiTunes.dll
- #3 0x696e6974 in iTunesMainEntryPoint@24 () from c:program files (x86)itunesiTunes.dll
- #4 0x00000000 in ?? ()
- (gdb)
- Unhandled exception at 0x1e0650bc in iTunes.exe: 0xC0000005
- Segmentation fault when reading at 0x00000004.
- (gdb) thread apply all bt
- Thread 24 (thread 4340.0x4e0):
- #0 0x76e564f4 in ntdll!LdrFindResourceEx_U () from C:Windowssystem32ntdll.dll
- #1 0x76e55e6c in ntdll!ZwWriteVirtualMemory () from C:Windowssystem32ntdll.dll
- #2 0x7504179c in WaitForSingleObjectEx () from C:Windowssystem32KernelBase.dll
- #3 0x0000067c in ?? ()
- #4 0x00000000 in ?? ()
- Thread 23 (thread 4340.0x17a0):
- #0 0x76e564f4 in ntdll!LdrFindResourceEx_U () from C:Windowssystem32ntdll.dll
- #1 0x76178f8f in UnregisterPowerSettingNotification () from C:Windowssystem32user32.dll
- #2 0x59bd3485 in iTunesMobileDevice!AFCConnectionGetStatus ()
- from C:Program FilesCommon FilesAppleMobile Device SupportiTunesMobileDevice.dll
- #3 0x06fef87c in ?? ()
- #4 0x00000000 in ?? ()
- Thread 22 (thread 4340.0x10c4):
- #0 0x76e564f4 in ntdll!LdrFindResourceEx_U () from C:Windowssystem32ntdll.dll
- #1 0x76e55e7c in ntdll!ZwYieldExecution () from C:Windowssystem32ntdll.dll
- #2 0x76e4067b in ntdll!RtlLargeIntegerShiftLeft () from C:Windowssystem32ntdll.dll
- #3 0x76511174 in KERNEL32!AcquireSRWLockExclusive () from C:Windowssystem32kernel32.dll
- #4 0x76e6b3f5 in ntdll!RtlInsertElementGenericTableAvl () from C:Windowssystem32ntdll.dll
- #5 0x76e6b3c8 in ntdll!RtlInsertElementGenericTableAvl () from C:Windowssystem32ntdll.dll
- #6 0x00000000 in ?? ()
- Thread 21 (thread 4340.0x14ec):
- #0 0x76e564f4 in ntdll!LdrFindResourceEx_U () from C:Windowssystem32ntdll.dll
- #1 0x76e55e6c in ntdll!ZwWriteVirtualMemory () from C:Windowssystem32ntdll.dll
- #2 0x7504179c in WaitForSingleObjectEx () from C:Windowssystem32KernelBase.dll
- #3 0x0000063c in ?? ()
- #4 0x00000001 in ?? ()
- #5 0x06edf8c0 in ?? ()
- #6 0x73ae556e in CreatePropertySheetPageA ()
- from C:WindowsWinSxSx86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7600.16385_none_421189da2b7fabfcco
- mctl32.dll
- #7 0x7650f003 in WaitForSingleObjectEx () from C:Windowssystem32kernel32.dll
- #8 0x765d6172 in ole32!CoRevokeClassObject () from C:Windowssystem32ole32.dll
- #9 0x765dc80b in ole32!CoIsOle1Class () from C:Windowssystem32ole32.dll
- #10 0x76511174 in KERNEL32!AcquireSRWLockExclusive () from C:Windowssystem32kernel32.dll
- #11 0x76e6b3f5 in ntdll!RtlInsertElementGenericTableAvl () from C:Windowssystem32ntdll.dll
- #12 0x76e6b3c8 in ntdll!RtlInsertElementGenericTableAvl () from C:Windowssystem32ntdll.dll
- #13 0x00000000 in ?? ()
- Thread 20 (thread 4340.0x1628):
- #0 0x76e564f4 in ntdll!LdrFindResourceEx_U () from C:Windowssystem32ntdll.dll
- #1 0x76e55e6c in ntdll!ZwWriteVirtualMemory () from C:Windowssystem32ntdll.dll
- #2 0x7504179c in WaitForSingleObjectEx () from C:Windowssystem32KernelBase.dll
- #3 0x00000650 in ?? ()
- #4 0x00000001 in ?? ()
- #5 0x00000000 in ?? ()
- Thread 19 (thread 4340.0xf04):
- #0 0x76e564f4 in ntdll!LdrFindResourceEx_U () from C:Windowssystem32ntdll.dll
- #1 0x76e55e6c in ntdll!ZwWriteVirtualMemory () from C:Windowssystem32ntdll.dll
- #2 0x7504179c in WaitForSingleObjectEx () from C:Windowssystem32KernelBase.dll
- #3 0x000005c0 in ?? ()
- #4 0x00000001 in ?? ()
- #5 0x00000000 in ?? ()
- Thread 18 (thread 4340.0x3c4):
- #0 0x76e564f4 in ntdll!LdrFindResourceEx_U () from C:Windowssystem32ntdll.dll
- #1 0x76e55e4c in ntdll!ZwWriteRequestData () from C:Windowssystem32ntdll.dll
- #2 0x75046872 in KERNELBASE!GetProcessId () from C:Windowssystem32KernelBase.dll
- #3 0x00000001 in ?? ()
- #4 0x068af914 in ?? ()
- #5 0x00000001 in ?? ()
- #6 0x00000000 in ?? ()
- Thread 17 (thread 4340.0x880):
- #0 0x76e564f4 in ntdll!LdrFindResourceEx_U () from C:Windowssystem32ntdll.dll
- #1 0x76e55e4c in ntdll!ZwWriteRequestData () from C:Windowssystem32ntdll.dll
- #2 0x75046872 in KERNELBASE!GetProcessId () from C:Windowssystem32KernelBase.dll
- #3 0x00000001 in ?? ()
- #4 0x0665f758 in ?? ()
- #5 0x00000001 in ?? ()
- #6 0x00000001 in ?? ()
- #7 0x00000000 in ?? ()
- Thread 16 (thread 4340.0x165c):
- #0 0x76e564f4 in ntdll!LdrFindResourceEx_U () from C:Windowssystem32ntdll.dll
- #1 0x76e55e4c in ntdll!ZwWriteRequestData () from C:Windowssystem32ntdll.dll
- #2 0x75046872 in KERNELBASE!GetProcessId () from C:Windowssystem32KernelBase.dll
- #3 0x00000001 in ?? ()
- #4 0x05e2f5a8 in ?? ()
- #5 0x00000001 in ?? ()
- #6 0x00000000 in ?? ()
- Thread 14 (thread 4340.0xb6c):
- #0 0x76e564f4 in ntdll!LdrFindResourceEx_U () from C:Windowssystem32ntdll.dll
- #1 0x76e55e6c in ntdll!ZwWriteVirtualMemory () from C:Windowssystem32ntdll.dll
- #2 0x7504179c in WaitForSingleObjectEx () from C:Windowssystem32KernelBase.dll
- #3 0x00000580 in ?? ()
- #4 0x00000001 in ?? ()
- #5 0x063cfe08 in ?? ()
- #6 0x737f53a6 in ?? ()
- #7 0x5cea92e4 in ?? ()
- #8 0x00000580 in ?? ()
- #9 0x0000001e in ?? ()
- #10 0x00000024 in ?? ()
- #11 0x00000001 in ?? ()
- #12 0x00000000 in ?? ()
- Thread 13 (thread 4340.0xc74):
- #0 0x76e564f4 in ntdll!LdrFindResourceEx_U () from C:Windowssystem32ntdll.dll
- #1 0x76e55e6c in ntdll!ZwWriteVirtualMemory () from C:Windowssystem32ntdll.dll
- #2 0x7504179c in WaitForSingleObjectEx () from C:Windowssystem32KernelBase.dll
- #3 0x00000548 in ?? ()
- #4 0x00000001 in ?? ()
- #5 0x00000000 in ?? ()
- Thread 12 (thread 4340.0x778):
- #0 0x76e564f4 in ntdll!LdrFindResourceEx_U () from C:Windowssystem32ntdll.dll
- #1 0x76e55e7c in ntdll!ZwYieldExecution () from C:Windowssystem32ntdll.dll
- #2 0x76e4067b in ntdll!RtlLargeIntegerShiftLeft () from C:Windowssystem32ntdll.dll
- #3 0x76511174 in KERNEL32!AcquireSRWLockExclusive () from C:Windowssystem32kernel32.dll
- #4 0x76e6b3f5 in ntdll!RtlInsertElementGenericTableAvl () from C:Windowssystem32ntdll.dll
- #5 0x76e6b3c8 in ntdll!RtlInsertElementGenericTableAvl () from C:Windowssystem32ntdll.dll
- #6 0x00000000 in ?? ()
- Thread 10 (thread 4340.0x1620):
- #0 0x76e564f4 in ntdll!LdrFindResourceEx_U () from C:Windowssystem32ntdll.dll
- #1 0x76e54c1c in ntdll!ZwDeleteValueKey () from C:Windowssystem32ntdll.dll
- #2 0x75041876 in SleepEx () from C:Windowssystem32KernelBase.dll
- #3 0x00000000 in ?? ()
- Thread 9 (thread 4340.0x10cc):
- #0 0x76e564f4 in ntdll!LdrFindResourceEx_U () from C:Windowssystem32ntdll.dll
- #1 0x76e55e7c in ntdll!ZwYieldExecution () from C:Windowssystem32ntdll.dll
- #2 0x76e4067b in ntdll!RtlLargeIntegerShiftLeft () from C:Windowssystem32ntdll.dll
- #3 0x76511174 in KERNEL32!AcquireSRWLockExclusive () from C:Windowssystem32kernel32.dll
- #4 0x76e6b3f5 in ntdll!RtlInsertElementGenericTableAvl () from C:Windowssystem32ntdll.dll
- #5 0x76e6b3c8 in ntdll!RtlInsertElementGenericTableAvl () from C:Windowssystem32ntdll.dll
- #6 0x00000000 in ?? ()
- Thread 8 (thread 4340.0xac4):
- #0 0x76e564f4 in ntdll!LdrFindResourceEx_U () from C:Windowssystem32ntdll.dll
- #1 0x76e55e7c in ntdll!ZwYieldExecution () from C:Windowssystem32ntdll.dll
- #2 0x76e4067b in ntdll!RtlLargeIntegerShiftLeft () from C:Windowssystem32ntdll.dll
- #3 0x76511174 in KERNEL32!AcquireSRWLockExclusive () from C:Windowssystem32kernel32.dll
- #4 0x76e6b3f5 in ntdll!RtlInsertElementGenericTableAvl () from C:Windowssystem32ntdll.dll
- #5 0x76e6b3c8 in ntdll!RtlInsertElementGenericTableAvl () from C:Windowssystem32ntdll.dll
- #6 0x00000000 in ?? ()
- Thread 7 (thread 4340.0xe08):
- #0 0x76e564f4 in ntdll!LdrFindResourceEx_U () from C:Windowssystem32ntdll.dll
- #1 0x76e55e4c in ntdll!ZwWriteRequestData () from C:Windowssystem32ntdll.dll
- #2 0x75046872 in KERNELBASE!GetProcessId () from C:Windowssystem32KernelBase.dll
- #3 0x00000001 in ?? ()
- #4 0x057df9f0 in ?? ()
- #5 0x00000001 in ?? ()
- #6 0x00000000 in ?? ()
- Thread 6 (thread 4340.0x7fc):
- #0 0x76e564f4 in ntdll!LdrFindResourceEx_U () from C:Windowssystem32ntdll.dll
- #1 0x76e55e7c in ntdll!ZwYieldExecution () from C:Windowssystem32ntdll.dll
- #2 0x76e4067b in ntdll!RtlLargeIntegerShiftLeft () from C:Windowssystem32ntdll.dll
- #3 0x76511174 in KERNEL32!AcquireSRWLockExclusive () from C:Windowssystem32kernel32.dll
- #4 0x76e6b3f5 in ntdll!RtlInsertElementGenericTableAvl () from C:Windowssystem32ntdll.dll
- #5 0x76e6b3c8 in ntdll!RtlInsertElementGenericTableAvl () from C:Windowssystem32ntdll.dll
- #6 0x00000000 in ?? ()
- Thread 5 (thread 4340.0x61c):
- #0 0x76e564f4 in ntdll!LdrFindResourceEx_U () from C:Windowssystem32ntdll.dll
- #1 0x76e55e4c in ntdll!ZwWriteRequestData () from C:Windowssystem32ntdll.dll
- #2 0x76e3ef27 in ntdll!RtlIsValidIndexHandle () from C:Windowssystem32ntdll.dll
- #3 0x76511174 in KERNEL32!AcquireSRWLockExclusive () from C:Windowssystem32kernel32.dll
- #4 0x76e6b3f5 in ntdll!RtlInsertElementGenericTableAvl () from C:Windowssystem32ntdll.dll
- #5 0x76e6b3c8 in ntdll!RtlInsertElementGenericTableAvl () from C:Windowssystem32ntdll.dll
- #6 0x00000000 in ?? ()
- Thread 4 (thread 4340.0x1794):
- #0 0x76e564f4 in ntdll!LdrFindResourceEx_U () from C:Windowssystem32ntdll.dll
- #1 0x76e55e4c in ntdll!ZwWriteRequestData () from C:Windowssystem32ntdll.dll
- #2 0x75046872 in KERNELBASE!GetProcessId () from C:Windowssystem32KernelBase.dll
- #3 0x00000002 in ?? ()
- #4 0x04e8f9e8 in ?? ()
- #5 0x00000001 in ?? ()
- #6 0x00000000 in ?? ()
- Thread 2 (thread 4340.0x51c):
- #0 0x76e564f4 in ntdll!LdrFindResourceEx_U () from C:Windowssystem32ntdll.dll
- #1 0x76e55e6c in ntdll!ZwWriteVirtualMemory () from C:Windowssystem32ntdll.dll
- #2 0x7504179c in WaitForSingleObjectEx () from C:Windowssystem32KernelBase.dll
- #3 0x00000218 in ?? ()
- #4 0x00000000 in ?? ()
- Thread 1 (thread 4340.0x17b4):
- #0 0x1e0650bc in python27!PyObject_Call () from C:Windowssystem32python27.dll
- #1 0x69781232 in iTunesPluginMain (__pyx_v_message=1768843636, __pyx_v_msgInfo=0x13e680, __pyx_v_refCon=0x0)
- at pytunes.c:467
- #2 0x5bc1d217 in iTunes!getPhaseStreamLibraryVersion () from C:Program FilesiTunesiTunes.dll
- #3 0x696e6974 in ?? ()
- #4 0x0013e680 in ?? ()
- #5 0x00000000 in ?? ()
- (gdb)
- #include "iTunesAPI/iTunesAPI.h"
- #include <Python.h>
- __declspec(dllexport) OSStatus iTunesPluginMain(OSType message,
- PluginMessageInfo* msgInfo,
- void* refCon) {
- Py_Initialize();
- PyObject* op = Py_BuildValue("i", 123);
- Py_Finalize();
- return unimpErr;
- }
- #include <Python.h>
- #include "../iTunesAPI/iTunesAPI.h"
- #include "pytunes.c"
- __declspec(dllexport) OSStatus iTunesPluginMain( OSType message,
- PluginMessageInfo* msgInfo,
- void* refCon ) {
- Py_Initialize();
- PyEval_InitThreads();
- initpytunes();
- return PyTunes_main(message, msgInfo, refCon);
- }
- cdef extern from "../iTunesAPI/iTunesAPI.h":
- ctypedef int OSType
- ctypedef int OSStatus
- ctypedef struct PluginMessageInfo:
- pass
- int unimpErr
- cdef public int PyTunes_main( OSType message,
- PluginMessageInfo* msgInfo,
- void* refCon ):
- object()
- return 0