Umdhtools.exe: Использование Umdh.exe для поиска памяти утечек

Переводы статьи Переводы статьи
Код статьи: 268343 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Аннотация

Программа пользовательского режима дампа кучи (UMDH) работает с операционная система Windows выделений в куче для определенного процесса анализа. Эту программу и другие средства, связанные с ним, в первую очередь предназначены для для Windows 2000 и Windows XP. Нажмите кнопку Воспроизведение кнопку, чтобы просмотреть демонстрационный ролик.

Примечание Видео закодированные с помощью кодека ACELP ®, необходимо установить свободного кодек ACELP ®, обращайтесь на http://www.acelp.NET/acelp_eval.PHP



Примечание Так как с помощью функции malloc функция в модуль времени выполнения C (CRT) использует подавление указателей фрейма (FPO) в исходной версии Windows Server 2003, может не отображаться полный стек сведения с помощью функции malloc функции с помощью средства UMDH. Эта проблема исправлена в модуле CRT Windows Server 2003 с пакетом обновления 1 (SP1). Таким образом можно просмотреть информацию полный стек функции malloc в Windows Server 2003 с пакетом обновления 1.

Дополнительная информация

Прежде чем использовать UMDH

Если вы считаете, что возникают утечки памяти, имейте в виду память утечки может быть они отображаются. Вы обнаруживаете, Утечка памяти не является утечка памяти в значение true, но является улучшение производительности. Для пример, ядро базы данных Microsoft Jet может использовать большие объемы памяти (до 128 Мбайт на компьютере 256 МБ), так как он извлекает данные и записывает кэширование. Позволяет приложениям ядра Jet получить быстрый опережающего чтения и записи с опережением буферизация.

Испытывает ли процесс память утечки, с помощью монитора производительности (Perfmon.exe) и наблюдения за закрытый Байт в категории процессов приложения. Это байтов исключительного пользования общий объем памяти, занятый процессом, но не совместно с другими процессы. Обратите внимание, что это отличается от байт виртуальной памяти, который также является интересным для мониторинга. Байт виртуальной памяти-это текущий объем в байтах виртуальное адресное пространство, использующий этот процесс. К утечке виртуального приложения память, но не может заметить разницу в байтов исключительного пользования, которые выдаются. Если память увеличить при наблюдении за байтов исключительного пользования, но вы не видите подозреваю, что по-прежнему выполняется из памяти, монитор байт виртуальной памяти для просмотра При использовании виртуальной памяти. За дополнительной информацией об обнаружении утечек памяти и общие сведения о системном мониторе Windows (Perfmon.exe) посетите следующий веб-узел корпорации Майкрософт:
http://MSDN.Microsoft.com/en-us/library/ms404355.aspx
Убедитесь, что приложение является утечка памяти, размещение подозреваю, что код в цикле с много итераций и наблюдения за закрытый и байт виртуальной памяти для любого увеличения памяти. Просмотр, чтобы убедиться, что номер байт виртуальной памяти и частных байтов не остается в итоге же и число прекращается увеличение. Если точка, с которой прекращается памяти Увеличение, (например, он не выполняет чтобы бесконечно) можно сделать не увидеть утечки памяти, но более вероятно, просмотреть кэш-памяти, растущих на его Максимальный размер.

Если определить, имеется утечка памяти, прежде чем Используйте UMDH, выполните следующие действия:
  1. Установите программу UMDH.
  2. Значение переменной среды PATH системы для включения папки для установки UMDH.
  3. Значение переменной среды _NT_SYMBOL_PATH Корпорация Майкрософт символ путь к серверу, таким образом, чтобы UMDH можно найти символ debug файлы.
Состав средств отладки для программы UMDH Продукты Windows на веб-узле корпорации Майкрософт:
http://www.Microsoft.com/whdc/DEVTOOLS/DDK/Default.mspx
Загрузить и установить программу и установите системный путь Переменная среды path, где были установлены средства отладки.

Прежде чем использовать UMDH, необходимо установить правильный отладочные символы для компоненты приложения и операционной системы. С помощью Microsoft Сервер символов для получения символов отладки для компонентов Microsoft. Для получения дополнительных сведений о сервера символов Майкрософт щелкните следующий номер статьи базы знаний Майкрософт:
311503Получение файлов символов отладки с помощью сервера символов Майкрософт
UMDH пытается найти файлы символов с помощью Переменная среды _NT_SYMBOL_PATH. Команда задать путь из Командная строка будет выглядеть примерно следующим:
значение _NT_SYMBOL_PATH = SRV * c:\LocalSymbolCache
Для получения дополнительных сведений о настройке символьной отладки сведения, обратитесь к разделу «Отладочные символы» далее в этой статье.

После выполнения этих действий можно приступать к используйте служебную программу UMDH.

Захват кучи дампы с UMDH

UMDH — это программа, которая выводит информацию о куче выделения памяти процесса. Эта информация включает стек вызовов для каждого распределение, количество выделений, сделанные через этот стек вызовов и число байтов, которые потребляются через этот стек вызовов. Например:
00005320 bytes in 0x14 allocations (@ 0x00000428) by: BackTrace00053
           ntdll!RtlDebugAllocateHeap+0x000000FD
           ntdll!RtlAllocateHeapSlowly+0x0000005A
           ntdll!RtlAllocateHeap+0x00000808
           MyApp!_heap_alloc_base+0x00000069
           MyApp!_heap_alloc_dbg+0x000001A2
           MyApp!_nh_malloc_dbg+0x00000023
           MyApp!_nh_malloc+0x00000016
           MyApp!operator new+0x0000000E
           MyApp!LeakyFunc+0x0000001E
           MyApp!main+0x0000002C
           MyApp!mainCRTStartup+0x000000FC
           KERNEL32!BaseProcessStart+0x0000003D
				
Это UMDH показывает, что существуют 21280 (0x5320) количество выделенных байтов Общее число из стека вызовов. 21280 Байт, выделенных из 20 (0x14) для разделения распределения 1064 байтов (0x428). Учитывая стека вызовов Идентификатор BackTrace00053.

Для создания файла дампа кучи распределения, необходимо использовать Gflags.exe программы, в которой также входящие в состав продукты средства отладки для Windows, чтобы проинформировать операционную систему требуется, чтобы ядро отслеживание выделений памяти.

Предположим, что Чтобы вывести содержимое heap(s) для Notepad.exe. Во-первых, необходимо включить трассировку стека Приобретение для приложения, которое требуется проверить. По умолчанию эта функция не включен. Команда для включения этой функции выглядит следующим образом:
Gflags -i notepad.exe + создателем
Команда не выполняет трассировку стека для процессов, использующих уже выполняется, но он включает трассировку стека для всех будущих выполнений Notepad.exe. Кроме того, можно установить флаг через GFLAGS пользователя интерфейс (запустить Gflags.exe без аргументов для получения пользовательского интерфейса). Использование очередь -создателем параметр для gflags отключить трассировку стека при завершения отладки.

Во время установки флагов изображения через Gflags.exe, и настроить символы отладки, все готово для запуска программы «Блокнот» ( приложения, использующие UMDH). После запуска программы необходимо Определите идентификатор процесса (PID) процесса Блокнота, который только что был запущен. Для этой команды выглядит следующим образом:
Список задач
Здесь вы найдете из выходных данных приложения TLIST PID. Можно получить информацию о PID из диспетчера задач. Предположим, что код продукта для только что запущен процесс «Блокнот» — 124. UMDH можно использовать для получения дампа кучи с помощью следующей команды:
Umdh - p: 124 - f:notepad124.log
Результаты: Имеется дампа кучи завершения процесса блокнота в Файл Notepad124.log. Этот файл показывает все распределения, которые были сделаны и callstacks, где были сделаны распределения.

С помощью Umdh.exe сравнения UMDH журналы

Хотя файл журнала UMDH содержит полезные сведения о Текущее состояние кучи для процесса, если существует опасение, поиск Утечка памяти может быть более ценным для сравнения выходы два журнала и Узнайте, какие стек вызовов поделился наибольший рост между двумя дамп файлы. Umdh.exe это средство предназначено для сравнения двух UMDH журналов для обеспечения анализа Разница между ними. Создав два журнала на другой интервалы, которые затем можно использовать следующую команду:
UMDH dh1.log dh2.log > cmp12.txt
-ИЛИ-
-D dh1.log dh2.log UMDH > cmp12.txt
В -d параметр командной строки сообщает UMDH для отображения в десятичном формате вместо шестнадцатеричное. Выходные данные команды сравнивает различия Распределение между двумя входит и предоставляет сведения об ошибке следующее:
+ 5320 (f110 - 9df0) выделено 3a (SP3a) BackTrace00053 Общее увеличение == 5320
Для каждого BackTrace в файлы журнала UMDH является сравнение соглашение между файлами два журнала. Этот случай показывает, что последний файл журнала в UMDH 0xF110 байтов, выделенных при первом имел командной строки журнал в командной строке UMDH было 0x9DF0 байтов, выделенных для одного BackTrace (стек вызовов). «5320» Является различие в число байтов. В данном случае было выделено несколько байт между временем 0x5320, два журнала были собраны. Байт получено из стека вызовов, определяемого «BackTrace00053».

Следующим шагом будет выяснить, в которых backtrace. Если открыть второй файл журнала и поиск BackTrace00053, может оказаться, что нечто похожее на следующее:
00005320 bytes in 0x14 allocations (@ 0x00000428) by: BackTrace00053
           ntdll!RtlDebugAllocateHeap+0x000000FD
           ntdll!RtlAllocateHeapSlowly+0x0000005A
           ntdll!RtlAllocateHeap+0x00000808
           MyApp!_heap_alloc_base+0x00000069
           MyApp!_heap_alloc_dbg+0x000001A2
           MyApp!_nh_malloc_dbg+0x00000023
           MyApp!_nh_malloc+0x00000016
           MyApp!operator new+0x0000000E
           MyApp!LeakyFunc+0x0000001E
           MyApp!main+0x0000002C
           MyApp!mainCRTStartup+0x000000FC
           KERNEL32!BaseProcessStart+0x0000003D
				
Для просмотра стека вызовов, можно заметить, что LeakyFunc функция выделяет память через библиотеку времени выполнения Visual C++ новые функции оператора. Если выяснится, что количество выделений памяти растет по мере взять дополнительные файлы дампов памяти, могут заключить, что память не была освобождена.

Включение трассировки стека

Трассировки стека — это наиболее важные сведения в журналах UMDH выделений из кучи. Можно выполнить анализ для проверки, если процесс утечки кучи память. По умолчанию трассировка стека не получена. Можно включить это функция-процесс или всей системы. Используйте следующую команду для включения стека Трассировка всей системы:
Gflags - r + создателем
Перезагрузите компьютер после этой команды. Для каждого процесса Включение, команда выглядит следующим образом:
Gflags -i ИМЯ_ПРИЛОЖЕНИЯ + создателем
Где ИМЯ_ПРИЛОЖЕНИЯ — имя исполняемого файла, включая расширение ( Например, программа Services.exe, Lsass.exe). Команда не выполняет трассировку стека для процесса, который уже запущен. Таким образом для процессов, которые вы не можете перезапустить систему (например, службы, lsass, winlogon), необходимо перезагрузить теста компьютер.

Убедитесь, что параметры с помощью следующих команд были установлены всей системы или для определенного процесса: всей системы:
Gflags - r
Определенного процесса:
Gflags -i имя приложения
По умолчанию глубина трассировки стека максимальное равно 16. Если вы хотите увидеть более глубокого callstacks можно увеличить путем запуска GFLAGS. Выберите Системный реестри затем введите новую глубину в Макс. Глубина записи трассировки стека Редактирование элемента управления. Нажмите кнопку Применение, а затем перезагрузите компьютер.
ВАЖНЫЕ: Если вы используете Windows NT 4.0 с пакетом обновления 6, необходимо использовать Umdh_nt4.exe вместо Umdh.exe и необходимо использовать Gflags -r Команда трассировки стека во всей системе. Убедитесь, что вы Перезагрузите компьютер. Трассировка стека Umdh_nt4 не работает на компьютере каждого процесса основа для Windows NT версии 4. Он должен быть установлен для всей системы.

Отладочных символов

Одним из наиболее важных шагов, используя UMDH заключается в наличие файлов хорошо символов (.dbg или PDB-файл) для получения хорошей стека. Как минимум требуются файлы символов Kernel32.dbg и Ntdll.dbg. Вы можете получить дополнительные символы отладки, необходимо как можно больше узнать о том, какие компоненты происходит утечка памяти. Для получения дополнительных сведений о том, как получить файлы отладочных символов для Microsoft компоненты, щелкните следующий номер статьи базы знаний Майкрософт:
311503Получение файлов символов отладки с помощью сервера символов Майкрософт
Для получения дополнительных сведений об использовании Сервер символов Майкрософт и получение пакетов символов Windows, посетите следующий веб-узел корпорации Майкрософт:
http://www.Microsoft.com/whdc/DEVTOOLS/DDK/Default.mspx
Когда создавать компоненты с помощью Visual C++, важно, не имеется база данных программы для редактирования и продолжить выбранный для C++ параметры компилятора. Вместо этого выберите базу данных программы. Чтобы установить путь к символам Инициализация переменной среды _NT_SYMBOL_PATH путь для использования. Вы можно использовать сервер символов Майкрософт для получения символов Майкрософт компоненты.
311503 Получение файлов символов отладки с помощью сервера символов Майкрософт
Чтобы задать _NT_SYMBOL_PATH выполните следующие действия Переменная среды:
  1. На панели управления дважды щелкните значок Система.
  2. Нажмите кнопку Дополнительно вкладки, а затем нажмите кнопку Переменные среды.
Или можно задать переменную среды _NT_SYMBOL_PATH в окно командной строки перед выполнением UMDH.

ПРИМЕЧАНИЕ: Также включать путь к PDB-файлы для различных компонентов на приложения. Например задайте путь для _NT_SYMBOL_PATH следующее:
SRV*c:\symbols*http://MSDL.Microsoft.com/download/Symbols;c:\myapplicationssymbols
В первой части этот путь указывает на сервер символов Майкрософт и указано, что будут загружены символы, используемые в c:\symbols папка. Часть после запятой — это путь к PDB-файлы (символ файлы) специально для приложения утечкой памяти.

Вызов UMDH

Это единственный обязательный параметр командной строки для UMDH -p параметр, который определяет PID процесса, из которого кучи будет получен дамп. Код продукта можно получить с помощью диспетчера задач или Программа Tlist.exe. Команду, подобную следующей, журнал будет дамп в стандартный вывод.
Umdh - p: PID
UMDH также отображает различные информационные сообщения в стандартный Ошибка, и таким образом, если он не будет перенаправлять, он смешанного с реальными журнала. Для получения информационных сообщений UMDH в файле, используйте следующую команду:
Umdh - p: PID 2>umdh.msg
Если вы хотите собрать журнал, который выводится по UMDH в файле Используйте одну из следующих команд:
Umdh - p: PID > umdh.log
-ИЛИ-
Umdh - p: PID-f:umdh.log
Эти команды являются эквивалентными.

По умолчанию журнала получить с помощью UMDH содержит перечисление потребителей кучи, отсортированных по Счетчик выделенных. Если в целях отладки требуется файл дампа памяти всех Выделенные блоки с их соответствующими трассировки стека -d параметр может быть использован:
Umdh - p: PID -d
При использовании этой команды можно увидеть в UMDH следующее: файл журнала:
Распределения для трассировки BackTrace00046: 005F69A0 005F6150
Ниже приведены адреса памяти распределений Стек вызовов. Если отладчик присоединен к процессу, можно сделать дамп содержимое памяти на эти адреса, чтобы увидеть, что была выделена.

Если в журнале содержится слишком много информации, он может быть ограничена только большой пользователей, имеющих распределение счетчика выше порогового значения. Использование Следующая команда:
Umdh - p: PID - t: порог
Все параметры командной строки (например, -p, -f -t, -d) одновременно могут быть указаны в любом порядке. В следующем сложнее пример командной строки:
Umdh - p: 123 - t: 1000 - f:umdh.log -d
Эта команда выводит кучи для процесса с Идентификатором 123 в файл Umdh.log. Он выводит только трассировок стека этой учетной записи для более чем 1000 распределения и он также выводит адреса блоков кучи выделенные прохождение каждой трассировки стека.

Другим полезным параметр UMDH очередь -l параметр. В этом случае файлов и номерами строк печати в Стек вызовов, по возможности.

Описывается вывод UMDH

Если перенаправление журнала (файлUmdh - p: PID-f:umdh.log), содержимое похожи на следующей, в которой был получен из запущенного процесса Блокнота.
UMDH: Logtime 2000-06-28 10:54 - Machine=MYMachine - PID=704
   *********** Heap 00270000 Information ********************
       Flags: 58000062
       Number Of Entries: 87
       Number Of Tags: <unknown>
       Bytes Allocated: 00008DF0
       Bytes Committed: 0000A000
       Total FreeSpace: 00001210
       Number of Virtual Address chunks used: 1
       Address Space Used: <unknown>
       Entry Overhead: 8
       Creator:  (Backtrace00007)
           ntdll!RtlDebugCreateHeap+0x00000196
           ntdll!RtlCreateHeap+0x0000023F
           ntdll!LdrpInitializeProcess+0x00000369
           ntdll!LdrpInitialize+0x0000028D
           ntdll!KiUserApcDispatcher+0x00000007
   *********** Heap 00270000 Hogs ********************
   000001A0 bytes in 0x4 allocations (@ 0x00000068) by: BackTrace00031
           ntdll!RtlDebugAllocateHeap+0x000000FB
           ntdll!RtlAllocateHeapSlowly+0x0000005B
           ntdll!RtlAllocateHeap+0x00000D81
           ntdll!LdrpAllocateDataTableEntry+0x00000039
           ntdll!LdrpMapDll+0x000002A4
           ntdll!LdrpLoadImportModule+0x0000010D
           ntdll!LdrpWalkImportDescriptor+0x0000008B
           ntdll!LdrpLoadImportModule+0x0000011D
           ntdll!LdrpWalkImportDescriptor+0x0000008B
           ntdll!LdrpLoadImportModule+0x0000011D
           ntdll!LdrpWalkImportDescriptor+0x0000008B
           ntdll!LdrpInitializeProcess+0x000009DC
           ntdll!LdrpInitialize+0x0000028D
           ntdll!KiUserApcDispatcher+0x00000007

   000001A0 bytes in 0x4 allocations (@ 0x00000068) by: BackTrace00034
           ntdll!RtlDebugAllocateHeap+0x000000FB
           ntdll!RtlAllocateHeapSlowly+0x0000005B
           ntdll!RtlAllocateHeap+0x00000D81
           ntdll!LdrpAllocateDataTableEntry+0x00000039
           ntdll!LdrpMapDll+0x000002A4
           ntdll!LdrpLoadImportModule+0x0000010D
           ntdll!LdrpWalkImportDescriptor+0x0000008B
           ntdll!LdrpLoadImportModule+0x0000011D
           ntdll!LdrpWalkImportDescriptor+0x0000008B
           ntdll!LdrpLoadImportModule+0x0000011D
           ntdll!LdrpWalkImportDescriptor+0x0000008B
           ntdll!LdrpLoadImportModule+0x0000011D
           ntdll!LdrpWalkImportDescriptor+0x0000008B
           ntdll!LdrpInitializeProcess+0x000009DC
           ntdll!LdrpInitialize+0x0000028D
           ntdll!KiUserApcDispatcher+0x00000007
				
Журнал содержит копию каждой кучи в процессе. В этом примере журнал начинается с кучей по адресу 270000. После нескольких глобальных счетчиков для куча журнала содержит дамп в порядке убывания сортировки трассировок стека который несет ответственность за большинство распределений. При сравнении динамики памяти, которые используются в различных секунд можно проследить, что произошло в процесс, и если любое использование кучи похож на утечку.

Проблемы, с которыми можно столкнуться при использовании UMDH

Наиболее распространенные ошибки при использовании UMDH возникать стека трассировка отключена. Кроме того неправильные символы для Ntdll.dll не UMDH из запущена. Символы файлов выполняется UMDH, но файл журнала содержит стек трассировки, которые не имеют имен функций, но вместо этого имеют относительные адреса внутри модуля. Удаленных третья ошибка указан неправильный PID. Ниже сообщение об ошибке появляется при попытке запустить процесс, который не имеет UMDH включенной трассировкой стека:
C:\>Umdh - p: 1140 UMDH: Logtime 2000-06-28 12: 43 - Машины = MyMachine - PID = 1140 подключения....Модуль перечисление завершено. SymGetSymFromName (процесс, ntdll!RtlpStackTraceDataBase, xxx) не удалось, последняя ошибка = 126 UmdhGetAddrFromName не удалось найти DB трассировки стека указатель (ntdll!RtlpStackTraceDataBase). символы Ntdll.dll неверны. Мы должны быть видны не импортировать символы.
Используйте следующую команду, чтобы Тщательно проверьте параметры процесса, изучении:
Gflags -i APPNAME
Используйте следующую команду, когда полагаться на стеке всей системы Трассировка:
Gflags - r
Эти команды Показать список флагов для приложения. Обратите внимание, что из трассировки стека системные функции могут появиться в виде активные, но если вы не перезагрузите компьютер после выполнения Gflags - r + создателем команда, фактически не активирована. Если вы хотите знать каждый приложение с включенной трассировкой стека, можно просмотреть ключ USTEnabled в следующем разделе реестра:
Файл NT\CurrentVersion\Image HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Параметры выполнения
Если UMDH на процесс с включенной трассировкой стека, но приложение не была выполнена, так как набор флагов, может появиться следующее сообщение в журналы:
Трассировка стека был не сохранены для данного размещения (индекс == 0)
Если не задано правильный неправильные символы или путь к символам и запустить UMDH, вы можете сообщение об ошибке в журнале. Однако только появляется неверное или callstacks в заблуждение. Чтобы убедиться в наличии правильных символов, начало NTSD системный отладчик для процесса, например:
Блокнот NTSD
В консоли отладчика, выполнение LD для загрузки сведений о символах для модуля и LM команды для вывода списка модули имеют свои символы загружены. Если Вывод LM команда показывает экспорта символы загружены, символы не являются хорошим. Если был загружен PDB-символы, символы являются хорошим. Может появиться следующее сообщение об ошибке, если указан неправильный номер продукта:
C:\>Umdh - p: 1000 UMDH: Logtime 2000-06-28 09: 45 - компьютере MyMachine-= PID = 1000 подключение... Ошибка при OpenProcess, последняя ошибка = 0x57

Вызов UMDH с помощью Visual Basic

Возможно, иногда полезно дамп со временем число журналов Поскольку утечки может оказаться очень заметно в первую очередь. Например если вы подозреваю, что Active Server Pages (ASP) веб-приложении происходят утечки памяти, может оказаться полезным для написания COM-компонента в Visual Basic, который shells недостаточно для UMDH. Затем можно вызывать этот компонент из страницы ASP.

В Ниже приведен код Visual Basic, вызывает UMDH и создает файл журнала которая основана на текущий момент:
Private Declare Function GetCurrentProcessId Lib "kernel32" () As Long
      Public Function GetProcessID()
      GetProcessID = GetCurrentProcessId()
      End Function  
   .
   .
   .
      Dim strTime As String

      Dim sProcID As String
      sProcID = GetProcessID()
      strTime = "MYLOG_" & Format(Now(), "hhmm")
     
      Shell ("C:\UMDH\umdh -p:" & sProcID & " -f:d:\logs\" & strTime & ".txt")
				

Использовать UMDH с Windows NT 4.0 с пакетом обновления 6a (SP6a)

Служебную программу UMDH, которая входит в состав средств отладки для Продукты Windows не работает в Windows NT 4.0. Самораскрывающийся исполняемый файл Входит в состав этой статьи (Umdhnt4tools.exe), а также содержит следующие средства для работы с NT 4.0.
  • Umdh_nt4.exe и Dbghelp.dll
    Это является Windows NT 4.0 Версия SP6 служебную программу UMDH.
  • Dhcmp.exe
    Данная программа используется для сравнения двух UMDH дампы памяти, чтобы определить, где это возможно памяти утечка истек.
В Следующий файл доступен для загрузки из загрузки Майкрософт Центр:
Свернуть это изображениеРазвернуть это изображение
Загрузить
Загрузить Umdhnt4tools.exe
Дата выпуска: 28 августа 2002 г.

Для получения дополнительных сведений о том, как загрузить файлы поддержки Майкрософт щелкните следующий номер статьи базы знаний Майкрософт:
119591 Как загрузить файлы поддержки Майкрософт из Интернета
Корпорация Майкрософт проверила этот файл на наличие вирусов. Корпорация Майкрософт использует последние версии антивирусного программного обеспечения на дату публикации файла. Файл хранится на защищенных серверах, что предотвращает несанкционированное изменение файла. Поместить Dbghelp.dll и Umdh_nt4.exe в папку, а затем Поместите их сначала в переменной среды PATH. Использование Umdh_nt4.exe вместо UMDH.

На компьютере под управлением Windows NT 4.0 необходимо использовать Gflags.exe трассировки стека во всей системе. Например:
Gflags - r
Убедитесь, что при перезагрузке компьютера. Трассировка стека Umdh_nt4 работает отдельно для каждого процесса в Windows NT версии 4.0. Он имеет значение всей системы.

UMDH_NT4 — в отличие от UMDH, в том, что это не так Сравнение файлов журнала. Например вы не выполните следующее:
UMDH_NT4 dh1.log dh2.log > cmp12.txt
Вместо этого необходимо использовать служебную программу Dhcmp.exe, входящие в состав в этой статье. Команда выглядит примерно следующим:
DHCMP dh1.log dh2.log > cmp12.txt

Свойства

Код статьи: 268343 - Последний отзыв: 5 июня 2011 г. - Revision: 4.0
Информация в данной статье относится к следующим продуктам.
  • операционная система Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows NT Server 4.0 Standard Edition
  • Microsoft Windows NT Workstation 4.0 Developer Edition
Ключевые слова: 
kbdownload kbarttypeshowme kbfile kbgraphxlinkcritical kbhowto kbsample kbmt KB268343 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:268343

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com