解释UMDH日志以查找本机C ++应用程序中可能的内存泄漏

时间:2014-09-15 10:16:20

标签: c++ memory-leaks native callstack umdh

为了研究我的应用程序中的内存构建(Windows平台上的本机代码)  我做了以下

1)迭代中的测试用例

2)每次迭代后转储UMDH然后在某些迭代之间进行差异 看看调用堆栈中内存的模式。 我需要一些关于以下数据的帮助,我需要解释

a)在差异日志的最后,我找到了类似的东西     总增加== 86928要求+ 38080开销= 125008     究竟是什么开销在这里?     如果我将所有分配相加并扣除deallocations,我会得到一个接近#requested数量的数字。我不能说明开销数。

b)需要的另一个帮助是调用堆栈   下面是调用堆栈的一部分的快照

sqlncli11!PrepOrPrepExecQuery+159
sqlncli11!SQLExecute+32D
ODBC32!SQLExecute+342
sscdms80!CSSODBCSqlCursor::DoExecuteStmt+B4C (m:\some filename, 2903)
sscfdm!CSSLockSqlCursor::DoExecuteStmt+11A (m:\Another filename, 5237)
sscfdm!CSSSqlCursor::Execute+129 (m:\yet Anotherfilename, 5685)
sscfdm!CSSSqlObj::Execute+D86 (m:\Filename.cpp, 27500)
sscfom!CSSBusComp::SqlExecute+3A (m:\someotherfile.cpp, 28872)

With each function name there is an offset attached (a HEX number) example  sscfom!CSSBusComp::SqlExecute+3A  (here 3A is the offset).

该偏移的意义是什么?我没有找到任何解释这个的文件。

c)在该间隔期间,perfmon捕获的私有字节中的delta如何与调用堆栈中的delta相关联?

0 个答案:

没有答案