Возникла исключительная ситуация в 0x00007FFA69075553 (ntdll.dll) в python.exe: 0xC0000005: место записи нарушения прав доступа 0x0000000000000024 - PullRequest
0 голосов
/ 15 января 2019

Я скомпилировал модуль python, который написан на C ++ и зависит от: VTK, ITK, VMTK, CGAL (также CGAL зависит от boost) и libtirpc или XDR для записи файлов в формате XDR в Windows 10. Я использовал MinGW -W64 POSIX для сборки VTK, ITK, VMTK, CGAL, boost и libtirpc из исходного кода. Кроме того, мой питон взят из официального предустановленного двоичного файла Anaconda2 (python 2.7) X64. Кстати, я должен сказать, что этот модуль python отлично работает на машинах UNIX в течение многих лет, но я впервые пытаюсь перенести его на машины Windows. Все скомпилировано нормально (конечно, с большим количеством головных болей!), Но оно показывает эту ошибку во время выполнения:

Exception thrown at 0x00007FFA69075553 (ntdll.dll) in python.exe: 0xC0000005: Access violation writing location 0x0000000000000024.

Я использовал стек трассировки Visual Studio, чтобы выяснить, какая часть моего модуля вызывает это исключение, и, похоже, у него есть некоторые проблемы с: ntdll.dll!RtlpWaitOnCriticalSection()

Что более важно, полная трассировка стека выглядит следующим образом:

>   ntdll.dll!RtlpWaitOnCriticalSection()   Unknown
    ntdll.dll!RtlpEnterCriticalSectionContended()   Unknown
    ntdll.dll!RtlEnterCriticalSection() Unknown
    msvcrt.dll!fwrite() Unknown
    mgwxdr-0.dll!000000000b324bd3() Unknown
    mgwxdr-0.dll!000000000b321635() Unknown
    _Generation.pyd!000000006ebcb035()  Unknown
    _Generation.pyd!000000006ebc316d()  Unknown
    _Generation.pyd!000000006ebc2bc5()  Unknown
    _Generation.pyd!000000006ebd48a2()  Unknown
    python27.dll!PyCFunction_Call(_object * func, _object * arg, _object * kw) Line 81  C
    python27.dll!call_function(_object * * * pp_stack, int oparg) Line 4372 C
    python27.dll!PyEval_EvalFrameEx(_frame * f, int throwflag) Line 3013    C
    python27.dll!fast_function(_object * func, _object * * * pp_stack, int n, int na, int nk) Line 4458 C
    python27.dll!call_function(_object * * * pp_stack, int oparg) Line 4392 C
    python27.dll!PyEval_EvalFrameEx(_frame * f, int throwflag) Line 3013    C
    python27.dll!fast_function(_object * func, _object * * * pp_stack, int n, int na, int nk) Line 4458 C
    python27.dll!call_function(_object * * * pp_stack, int oparg) Line 4392 C
    python27.dll!PyEval_EvalFrameEx(_frame * f, int throwflag) Line 3013    C
    python27.dll!fast_function(_object * func, _object * * * pp_stack, int n, int na, int nk) Line 4458 C
    python27.dll!call_function(_object * * * pp_stack, int oparg) Line 4392 C
    python27.dll!PyEval_EvalFrameEx(_frame * f, int throwflag) Line 3013    C
    python27.dll!PyEval_EvalCodeEx(PyCodeObject * co, _object * globals, _object * locals, _object * * args, int argcount, _object * * kws, int kwcount, _object * * defs, int defcount, _object * closure) Line 3604   C
    python27.dll!run_mod(_mod * mod, const char * filename, _object * globals, _object * locals, PyCompilerFlags * flags, _arena * arena) Line 1386 C
    python27.dll!PyRun_FileExFlags(_iobuf * fp, const char * filename, int start, _object * globals, _object * locals, int closeit, PyCompilerFlags * flags) Line 1372  C
    python27.dll!PyRun_SimpleFileExFlags(_iobuf * fp, const char * filename, int closeit, PyCompilerFlags * flags) Line 958 C
    python27.dll!PyRun_AnyFileExFlags(_iobuf * fp, const char * filename, int closeit, PyCompilerFlags * flags) Line 762    C
    python27.dll!Py_Main(int argc, char * * argv) Line 649  C
    python.exe!__tmainCRTStartup() Line 586 C

_Generation.pyd - это мой модуль python, и он просто падает, когда пытается записать файл XDR (ср. mgwxdr-0.dll) на диск, который также отображается в трассировке стека на msvcrt.dll!fwrite(). Честно говоря, я понятия не имею, почему это происходит и как это решить. Любая идея или предложение приветствуется.

...