我是windbg和內存分析的新窗口。 我嘗試分析內存轉儲(崩潰轉儲)它是x64系統。如果我有一些符號警告,我可以使用windbg分析的結果嗎?
加載所有符號(我和微軟) 後I型!analyze -v
這是輸出的一部分:
......
FAULTING_SOURCE_CODE: <some code here>
SYMBOL_STACK_INDEX: 6
SYMBOL_NAME: rtplogic!CSRTPStack::Finalize+19d
FOLLOWUP_NAME: MachineOwner
MODULE_NAME: RTPLogic
IMAGE_NAME: RTPLogic.dll
DEBUG_FLR_IMAGE_TIMESTAMP: 58542837
STACK_COMMAND: ~544s; .ecxr ; kb
FAILURE_BUCKET_ID: WRONG_SYMBOLS_c0000374_RTPLogic.dll!CSRTPStack::Finalize
BUCKET_ID: X64_APPLICATION_FAULT_WRONG_SYMBOLS_rtplogic!CSRTPStack::Finalize+19d
......
這WRONG_SYMBOLS
擔心我。
我可以肯定代碼FAULTING_SOURCE_CODE
它是與崩潰有關的代碼嗎?
這聽起來很有趣。據我瞭解'gflags'是改變已經運行的進程的一些設置的工具。但在我的情況下內存轉儲不是從我的電腦,我沒有直接訪問遠程PC有問題。是否有可能以其他方式啓用此功能? L例如像編譯期間的調試標誌? –
你必須在應用程序崩潰的PC上激活此設置。 – magicandre1981
@StepanLoginov:請注意,整個頁面堆將爲堆中的每個「int」分配8kB的內存(2頁,1個可訪問的頁面用於觸發調試器,1個不可觸及的頁面用於觸發調試器)。因此,這種方法只能找到> 4kB的泄漏。我發現它很難用於32位程序,因爲它們在發生實際問題之前都會遇到內存不足的問題。它可能適用於你的64位程序。 –