我有一个Tkinter应用程序,有时在Windows下崩溃。该错误是一个通用的'程序已停止工作,需要关闭'。调试windows上的tcl崩溃
检查事件日志后,我发现tcl85.dll
是导致崩溃的库。
我的猜测是我的程序中有一个错误,它会滥用tcl api并导致tcl进入未定义状态,最终导致崩溃,或者tcl85本身存在错误。
我的问题是,我该如何诊断这个问题的原因?哪些工具可以帮助在程序出错的地方获得回溯?我检查了Windows事件日志中的错误,但那里的信息似乎不足以识别原因。
以下是事件日志错误的XML:
Name="Application Error"></Provider>
<EventID Qualifiers="0">1000</EventID>
<Level>2</Level>
<Task>100</Task>
<Keywords>0x0080000000000000</Keywords>
<TimeCreated SystemTime="2014-08-27 08:54:13"></TimeCreated>
<EventRecordID>6173</EventRecordID>
<Channel>Application</Channel>
<Computer>my.windows.8.tablet.computer</Computer>
<Security UserID=""></Security>
</System>
<EventData><Data><string>my_tkinter_app.exe</string>
<string>0.0.0.0</string>
<string>514e2c2f</string>
<string>tcl85.dll</string>
<string>8.5.2.15</string>
<string>53b1e888</string>
<string>c0000005</string>
<string>0007697f</string>
<string>1378</string>
<string>01cfc1d44828ecb0</string>
<string>C:\Users\ADMINI~1\DOWNLO~1\my_tkinter_app.exe</string>
<string>C:\Users\ADMINI~1\AppData\Local\Temp\_MEI35042\tcl85.dll</string>
<string>b7745a30-2dc7-11e4-9732-88124e8c7600</string>
<string></string>
<string></string>
</Data>
<Binary></Binary>
</EventData>
</Event>
从c0000005
据我了解,有一个访问冲突,但是这仍然是过于笼统,以确定原因。
不幸的是,我无法重现Linux下的崩溃,所以我正在寻找一种跟踪此问题的特定于Windows的方法。
什么应用? – 2014-08-28 08:15:08
我觉得很难说。它是你自己包裹的应用程序吗?也许被包装的库不适合windows;我尝试使用Tclkit来创建一个exe文件,并且有不同的文件用于不同的操作系统;和一个我认为能够在Linux和Win OS上工作的starpack。我只是说它可能有点相似。 – Jerry 2014-08-28 08:32:38
它更可能是API滥用,但不保证。访问冲突是___可能_ NULL空引用___。 – 2014-08-28 09:32:25