Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Ошибка "Missing ImageId event" в WPA при профилировании Delphi-приложений на Windows 10: понимание и решение проблемы

Delphi , ОС и Железо , Windows

Введение

Профилирование приложений с помощью инструментов, таких как Windows Performance Analyzer (WPA), является важной частью процесса разработки программного обеспечения. Это позволяет выявить узкие места в производительности и оптимизировать код. Однако, пользователи иногда сталкиваются с проблемами, такими как ошибка "Missing ImageId event" в WPA, которая может затруднить анализ производительности. В данной статье мы рассмотрим, почему может возникать эта ошибка, и как её можно решить, особенно в контексте профилирования приложений, написанных на Delphi, на операционной системе Windows 10.

Описание проблемы

При профилировании приложений на Delphi с использованием Windows Performance Analyzer на Windows 10, разработчики могут столкнуться с проблемой, когда в стек вызовов не отображаются необходимые функции. Вместо этого, в стеке отображается сообщение "Missing ImageId event", что делает анализ производительности невозможным. Это может быть вызвано использованием устаревших форматов отладочных символов, не поддерживаемых WPA в Windows 10.

Пример стека вызовов в Process Explorer

На компьютере с Windows 7, где установлена Visual Studio, стек вызовов отображается корректно, включая маркерные функции, добавленные для анализа. Однако, при использовании инструментов профилирования на виртуальной машине с Windows 10, где установлены WinDBG (Preview) и Windows Performance Toolkit, эти маркерные функции не отображаются.

Ошибка в WPA и возможные причины

Windows Performance Analyzer в Windows 10 и Windows 8.1 больше не поддерживают устаревшие форматы отладочных символов, включая NB10 PDB, генерируемые, например, VB6. Вместо этого, используется формат "RSDS", который стал стандартом с MSVC 7. Если приложение использует PE-файлы с устаревшими форматами символов, то это может привести к ошибке "Missing ImageId event".

Подтвержденный ответ и решения проблемы

Для решения проблемы "Missing ImageId event" в WPA можно использовать следующие подходы:

  1. Запись и просмотр трассировки в Windows 7 или Windows 8.1, где инструменты профилирования ещё поддерживают устаревшие форматы отладочных символов.
  2. Использование библиотеки TraceEvent для инжекции фиктивных данных RSDS в трассию для изображений, вызывающих ошибку, и изменение PDB-файлов для соответствия формату RSDS.
  3. Разработка дополнения для WPA, подобного Wpa.Demystifier, которое выполняет поиск символов с использованием альтернативных методов.

Альтернативный ответ: Проверка правильности завершения сессии профилирования

Ошибка "Missing ImageId event" может также возникнуть, если сессия не была правильно завершена и не была объединена с "NT Kernel Logger", который предоставляет необходимую информацию для разрешения символов. Правильное завершение сессии профилирования включает в себя использование команды:

xperf.exe -stop my_trace -stop -d merged_trace.etl

Где второй параметр -stop необходим для остановки сессии "NT Kernel Logger", а параметр -d для объединения обеих сессий в файл merged_trace.etl.

Заключение

В данной статье мы рассмотрели проблему "Missing ImageId event" в контексте профилирования Delphi-приложений на Windows 10. Мы обсудили причины возникновения этой ошибки и предложили несколько способов её решения. Разработчикам, сталкивающимся с подобными проблемами, важно понимать, что использование устаревших форматов отладочных символов может быть причиной неполадок, и что существуют инструменты и методы для их устранения.

Создано по материалам из источника по ссылке.

В статье рассматривается проблема 'Missing ImageId event' при профилировании приложений на Delphi с использованием Windows Performance Analyzer на Windows 10, и предлагаются способы её решения.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Windows ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-05-01 11:16:51/0.0037219524383545/0