Interpreting UMDH logs for possible memory leaks in native C++ application

486 Views Asked by At

In order to investigate memory build up in my Application (Native code on windows platform) I did the following

1) Ran test case in iteration

2) after each iteration dumped UMDH and then took diff between certain iterations to see a pattern of memory build up in the call stacks. I need some help here with following data, which I need to interpret

a) At the very end of diff log i find something like this Total increase == 86928 requested + 38080 overhead = 125008 What exactly is overhead here? If I add up all allocation and deduct the deallocations I get a number close to the #requested amount. I cannot account for the overhead number.

b) Another help needed is with call stacks below is a snapshot of a part of call stack

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).

what is the significance of that offset? I did not find any document explaining this.

c) How is the delta in private bytes captured by perfmon correlated to be delta in call stack during that interval?

0

There are 0 best solutions below