我的命令行應用程序的用戶之一已經報告似乎是一個無限循環。當它處於這種狀態並且將它發送給我的時候,他們幫忙把這個過程轉儲(通過任務管理器)。我可以從Windows上的ghc Haskell進程轉儲中收集哪些信息?
我不知道如何從這個轉儲中獲得有用的信息。我的正常技術windbg -z the-dump-file.dmp -y releases\v5.0.0 -i releases\v5.0.0
並沒有給我提供很多我知道如何解釋的信息。我可以使用ghc專用工具嗎?
向前邁進,是我應該添加的構建選項還是其他我應該對我的發佈過程做的事情,以使這種驗屍調試更有成果?
下面是我看到的堆棧示例。沒有太多有用的信息,尤其是對於曾經在WinDbg中調試C/C++代碼的人。 :-)
0 Id: 112dc.cc18 Suspend: 1 Teb: 00000000`00341000 Unfrozen
*** ERROR: Module load completed but symbols could not be loaded for gbc.exe
# Child-SP RetAddr Call Site
00 00000000`01b7d8d0 00000000`01049f71 gbc+0xc5676e
01 00000000`01b7d930 00000000`0104b5b4 gbc+0xc49f71
02 00000000`01b7d9a0 00000000`0104c644 gbc+0xc4b5b4
03 00000000`01b7da60 00000000`0104c1fa gbc+0xc4c644
04 00000000`01b7dab0 00000000`0042545b gbc+0xc4c1fa
05 00000000`01b7db30 00000000`011c40a0 gbc+0x2545b
06 00000000`01b7db38 00000000`0535bee1 gbc+0xdc40a0
07 00000000`01b7db40 00000000`010ffd80 0x535bee1
08 00000000`01b7db48 00000000`0535bee1 gbc+0xcffd80
09 00000000`01b7db50 00007ffb`3581fb01 0x535bee1
0a 00000000`01b7db58 00007ffb`3581b850 imm32!?MSCTF_NULL_THUNK_DATA_DLB+0x2e9
0b 00000000`01b7db60 00000000`00000010 imm32!CtfImmGetCompatibleKeyboardLayout
0c 00000000`01b7db68 00000000`00000000 0x10
1 Id: 112dc.d324 Suspend: 1 Teb: 00000000`00349000 Unfrozen
# Child-SP RetAddr Call Site
00 00000000`05c2fc48 00007ffb`36441563 ntdll!ZwWaitForWorkViaWorkerFactory+0x14
01 00000000`05c2fc50 00007ffb`34172774 ntdll!TppWorkerThread+0x293
02 00000000`05c2ff60 00007ffb`36470d61 kernel32!BaseThreadInitThunk+0x14
03 00000000`05c2ff90 00000000`00000000 ntdll!RtlUserThreadStart+0x21
2 Id: 112dc.11b48 Suspend: 1 Teb: 00000000`0034b000 Unfrozen
# Child-SP RetAddr Call Site
00 00000000`0642dd38 00007ffb`32f2988f ntdll!ZwWaitForSingleObject+0x14
01 00000000`0642dd40 00000000`00ffca15 KERNELBASE!WaitForSingleObjectEx+0x9f
02 00000000`0642dde0 00000000`00000000 gbc+0xbfca15
在行之間讀取,從我擁有的.dmp文件中可以獲得的很少。你會同意嗎? – chwarr
我真的希望別人能告訴我更有用的東西。既然你有原始程序的源代碼,也許你可以在你的調試器內重現錯誤? – Davislor
有道理。這一次,我很幸運地獲得更多細節,讓我能夠重現。下次,誰知道... :-) – chwarr