Есть ли способ извлечь фактические адреса стека вызовов из трассировки регистратора производительности Windows (WPR)?

wpr

267 просмотра

2 ответа

33 Репутация автора

Согласно https://randomascii.wordpress.com/2013/11/04/exporting-arbitrary-data-from-xperf-etl-files/ , wpaexporter.exe должен быть правильным инструментом для этого.

Мне удается подготовить профиль с правильными данными, но, к сожалению, wpaexporter продолжает пытаться переводить адреса, даже если «-symbols» не задан в командной строке, генерируя некоторые бесполезные

/<ModuleName.dll>!<Symbols disabled> 

предупреждения.

Это раздражает, потому что часть нашего приложения использует некоторый код Delphi, который не может генерировать символы в формате, совместимом с Microsoft. С помощью адресов мы сможем найти символы Delphi в стеке вызовов, используя файлы карт.

Есть ли способ извлечь адреса стека вызовов из трассировки WPR?

Автор: oco Источник Размещён: 18.07.2016 05:15

Ответы (2)


0 плюса

36 Репутация автора

Решение

Да. Вы также можете использовать xperf.exe. Вы пробовали вариант действий?

Здесь должен помочь стек xperf -a.

Вы можете увидеть подробную информацию с помощью команды обработки xperf -help.

Автор: Jeff Stokes Размещён: 09.08.2016 11:32

2 плюса

33 Репутация автора

Спасибо, я полностью пропустил варианты обработки xperf ...

Тем временем я обнаружил, что LogParser ( https://www.microsoft.com/en-us/download/details.aspx?id=24659 ) также может экспортировать файл etl в csv (также с фактическими значениями):

LogParser.exe "" Выбрать * из файла .etl "-i: ETW -o: CSV -oTsFormat" ЧЧ: мм: ss.ln "> output_file.csv

Из того, что я видел до сих пор, вывод LogParser мог бы быть более подходящим для автоматического синтаксического анализа (только одна строка на событие в файле, без заголовка), тогда как вывод xperf больше подходит для обработки человеком (табличное представление).

Автор: oco Размещён: 30.08.2016 03:47
32x32