我有一個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