簡體   English   中英

DebugDiag調用堆棧不顯示調用堆棧中函數的行數

[英]DebugDiag call stack does not display line number of functions in call stack

我試圖隔離Windows本機代碼中的內存泄漏。

我運行了一個測試用例的多次迭代,並將DebugDiag附加到該過程中,以收集有關可疑泄漏(通過PerfMon中的多次運行確認的內存泄漏)的信息。

DebugDiag指出了可疑的調用堆棧,例如

 Call stack sample 1

 Address   0x0f09e2c0

 Allocation Time   00:22:38 since tracking started 

 Allocation Size   8.54 KBytes 

    Function                                       Source destination
    ntdll!RtlpReAllocateHeap+19c                  ntdll!RtlAllocateHeap 
    ntdll!_except_handler4       
    ntdll!RtlReAllocateHeap+22f                   ntdll!RtlReAllocateHeap 
    sqlncli11!MpReallocZeroMemory+66     
    sqlncli11!SQLReAllocateMemoryEx+22            sqlncli11!MpReallocZeroMemory 
    sqlncli11!AllocPlex+1a4                       sqlncli11!SQLReAllocateMemoryEx 
    sqlncli11!SetADRec+2a4                        sqlncli11!AllocPlex 
    sqlncli11!SQLBindCol+217                      sqlncli11!SetADRec 
    odbc32!SQLBindCol+3c0       
    sscfdm!CSSLockSqlCursor::DoExecuteStmt+11a       
    sscfdm!CSSSqlCursor::Execute+129              sscfdm!CSSLockSqlCursor::DoExecuteStmt 
    sscfdm!CSSSqlObj::Execute+d86                 sscfdm!CSSSqlCursor::Execute 
    sscfom!CSSBusComp::SqlExecute+3a              sscfdm!CSSSqlObj::Execute 
    <<many multiple lines below>>

我已經正確配置了符號,現在我想知道如何從調用堆棧中提取更多信息。

  1. UMDH日志的差異日志中也具有行號(帶有文件名)。 但是,在DebugDiag報告中,我找不到這些函數的任何行號。 如果函數真的很長,那么僅通過查看調用堆棧而沒有行號就很難描述上下文。 有什么方法可以從DebugDiag日志中提取函數(文件)的行號?

  2. 我想知道的另一件事是調用堆棧中每個module!function條目的十六進制偏移的重要性。

  3. 調用堆棧中的分配大小是多少? 每次執行此調用棧時分配的內存是否尚未釋放(因此發生泄漏)?

  4. 是否有指向DebugDiag功能的綜合文檔的指針?

UMDH日志的差異日志中也具有行號(帶有文件名)。 但是,在調試診斷報告中,我找不到這些功能的任何行號。

好吧,然后處理UMDH日志。

調用堆棧中每個module!function條目的十六進制偏移的重要性。

十六進制偏移量指向已編譯方法中的特定匯編程序指令。 它與源代碼中的行號偏移量大致相關,但可能會受到編譯器優化的嚴重影響。

調用堆棧中的分配大小是多少? 是分配的尚未釋放的內存...

...每次執行此調用堆棧?

否。再次運行相同的方法可能會分配不同的大小。 考慮一個類似AllocateSomeMemory(int bytes)的函數,該函數取決於分配多少內存的參數。

有關DebugDiag功能的全面文檔的任何指針

抱歉,我不能提一個好的站點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM