我正在使用傳統的VB6應用程序。在一定的使用情況下,應用程序失敗的東西,它看起來像一個空指針異常:將彙編代碼映射到VB6代碼
指令在「0x2982e900」 引用內存「0x00000156」。 內存不能被「讀取」。
我試圖做一些源代碼調試,但我找不到引發異常的源代碼行。有沒有辦法找到對應於彙編指令地址的源代碼行,例如0x2982e900? (我試過Reflector,但它似乎只支持.NET)。
更新:
當調試與VB6 IDE調試器的應用程序,我沒有得到在VB6源的任何中斷。相反,上面提到的Windows錯誤消息彈出,給我選擇啓用Visual Studio 2010調試器。如果我這樣做,VS2010調試器顯示的彙編代碼是這樣的:
[...]
2982E8FA推EAX
2982E8FB呼叫29832E9B
2982E900 MOV AX,單詞PTR [EAX + 156H]
該應用程序使用一個名爲Infragistics的公司的一些.ocx文件來實現GUI。根據CrashFinder實用程序,顯示的彙編代碼來自文件IGTOOLBARS40.OCX
。
你有應用程序的原始源代碼? (看起來你必須,因爲你說你在應用程序上「工作」。)如果是這樣,請嘗試從VB 6 IDE運行它,以便連接內置的調試器。這應該在Windows執行之前捕獲錯誤,並且至少報告導致問題的行。用這行更新你的問題應該讓你對如何解決它有一些快速的想法。 – 2011-05-16 13:34:17