Интерпретация журналов UMDH для возможных утечек памяти в родном приложении C ++

Для того, чтобы исследовать наращивание памяти в моем приложении (нативный код на платформе Windows)
Я сделал следующее

1) Выполнить тестовый случай в итерации

2) после каждой итерации сбрасывал UMDH и затем делал diff между определенными итерациями
чтобы увидеть схему накопления памяти в стеках вызовов.
Мне нужна некоторая помощь здесь со следующими данными, которые мне нужно интерпретировать

а) В самом конце diff log я нахожу что-то вроде этого
Общее увеличение == 86928 запрошено + 38080 накладных расходов = 125008
Что именно здесь над головой?
Если я сложу все распределение и вычту освобождение, я получу число, близкое к # запрашиваемой сумме. Я не могу учесть накладные расходы.

б) Еще одна помощь, необходимая для стека вызовов
ниже приведен снимок части стека вызовов

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, соотносится с дельтой в стеке вызовов в течение этого интервала?

1

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]