2016-10-25 10 views
0

Я использую UMDH (x64) для проверки утечки памяти. Мой код не оптимизирован ни FPO, ни использование специализированных распределителей. Он использует только «новый» оператор.UMDH, не предоставляющий стек вызовов

«Создание базы данных трассировки стека пользователя» включено в Gflags (x64) для тестируемого изображения.

Я отследил свое приложение с использованием UMDH как в негерметичном корпусе, так и в герметичном корпусе и получил журналы в обоих случаях.

И сравнили журналы с UMDH. Он выбрал правильный pdb, как видно из его строк комментариев в верхней части.

Проблема:

стек Вызов не показывает стек моего кода. Он просто отслеживает общие имена функций окон. Я пробовал обе версии отладки и выпуска в x64. Я что-то упустил?

код и дифф след получается ниже:

// code: 
#include <iostream> 
using namespace std; 

void myFunc() 
{ 
    int k; 
    cin >> k; 
    int* ii = new int[1998]; 

    if (k == 0) delete[] ii; 
} 

int main() 
{ 
    myFunc(); 
    return 0; 
} 


// stack trace obtained: 
+  390 ( 390 -  0)  1 allocs BackTraceAC905E8D 
+  1 ( 1 -  0) BackTraceAC905E8D allocations 

ntdll!RtlpCallInterceptRoutine+0000003F 
ntdll!RtlpAllocateHeapInternal+0000069F 
ntdll!TppWorkerThread+00000ADB 
KERNEL32!BaseThreadInitThunk+00000022 
ntdll!RtlUserThreadStart+00000034 
..... 
..... 
... 
+1

Качество символ не очень хорошо, он может видеть только экспортируемые функции, убедитесь, что настройки сервера символов с [переменной окружения _NT_SYMBOL_PATH] (HTTPS : //msdn.microsoft.com/en-us/library/windows/hardware/ff553431 (v = vs.85) .aspx). TppWorkerThread - это точка входа для потока threadpool, а не вашего кода, [обратите внимание на Windows 10] (http://stackoverflow.com/a/34826385/17034). –

+0

спасибо, что сработало. – object

ответ

1

Как описано в Using UMDH to Find a User-Mode Memory Leak (MSDN), необходимо определить переменную окружения _NT_SYMBOL_PATH перед использованием UMDH.

Если запустить его из командной строки, используйте

set _NT_SYMBOL_PATH=c:\mysymbols;srv*c:\mycache*https://msdl.microsoft.com/download/symbols 

 Смежные вопросы

  • Нет связанных вопросов^_^