繁体   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