使用调用(ntdll.dll)时Python崩溃

时间:2018-09-26 06:13:19

标签: python windows python-3.4

我有一个脚本,可以使用一个外部程序来组合大约1000个文件。为此,将第一个文件复制到combined.sym,然后将此文件与所有其他文件一个接一个地合并。代码如下:

# gets all .sym files
symfiles = []
onlyfiles = [f for f in listdir(myPath) if isfile(join(myPath, f))]
for f in onlyfiles:
    if '.sym' == splitext(f)[1]:
        symfiles.append(f)

# copies one initial combined file (point to start from)
combinedFileName = "combined.sym"
copyfile(myPath + symfiles[0], myPath + combinedFileName)
for sym in symfiles:
    print("processing " + str(sym))
    cmdString = combinedFileName + " "
    cmdString += sym
    cmdString += " -a " + combinedFileName
    finalCmdString = r'cmd.exe /C fuseFiles.bat "' + myPath + '" "' + cmdString + '"'
    call(finalCmdString)
print("done")

我正在调用的批处理文件如下所示,但这不是问题:

@set PATH=\path\to\executable\;%PATH%
@cd %1
@FusingProgram "%2"

现在,当我运行此脚本时,它运行了15分钟,然后才停止并返回到CMD。

processing onefile.sym
processing anotherfile.sym
processing evenmorefiles.sym
processing yougetit.sym

C:\Users\test\>

如您所见,它错过了“完成”打印,并且没有处理所有文件。 combined.sym由其他.sym文件创建和扩展

检查Windows事件时,我看到它记录了python崩溃的情况,并将ntdll.dll列为错误的模块(对不起,德语日志):

Name der fehlerhaften Anwendung: python.exe, Version: 0.0.0.0, Zeitstempel: 0x53787196
Name des fehlerhaften Moduls: ntdll.dll, Version: ****, Zeitstempel: 0x5b6db230
Ausnahmecode: 0xc0000005
Fehleroffset: 0x0002e2eb
ID des fehlerhaften Prozesses: 0x6224
Startzeit der fehlerhaften Anwendung: 0x01d454e0ff20377c
Pfad der fehlerhaften Anwendung: C:\pat\to\python\python.exe
Pfad des fehlerhaften Moduls: C:\WINDOWS\SysWOW64\ntdll.dll
Berichtskennung: 8b4254f0-c0d5-11e8-9a6f-901b0e5a6206

我已经做过一些研究,似乎我需要通过更新ntdll.dll文件来解决此问题,但是我的系统是最新的,所以我无能为力(下载除外)来自某个不可信站点的另一个版本,我不打算这样做

所有这些,您是否遇到过类似的问题,或者这仅仅是我犯的一个愚蠢的错误?

0 个答案:

没有答案