Ошибка просмотра файла xperf ETL на другом компьютере

У меня есть машина с Windows 8.1 и установленным ADK (xperf 6.3.9600).

У меня есть другая машина с Windows 7 SP1 и установленным ADK 8.1 (xperf 6.3.9600).

Если я использую xperf для создания трассировки на компьютере с 8.1, я не могу загрузить эту трассировку на машине с Win7; выдает ошибку The file or directory is corrupted and unreadable. (0x80070570).

Файл ETL можно успешно загрузить на машину, на которой он был создан, и на другую машину, на которой также работает Windows 8.1.

Можно ли загружать файлы трассировки только в той же или более поздней ОС, чем та, которая их сгенерировала? Почему бы просто не потребовать ту же версию xperf/WPA? Или это работает для других людей, и я что-то упустил из виду?


person Miral    schedule 04.02.2014    source источник
comment
хорошо, я могу воспроизвести это сейчас. Сначала я попробовал файл ETL с 32-битного планшета Windows 8.1, и это работает. сегодня я получил файл ETL из 64-битной Windows 8.1, и я тоже не могу открыть этот файл. Я спросил Microsoft и сообщу вам результат.   -  person magicandre1981    schedule 18.02.2014
comment
Спасибо. Да, все упомянутые выше машины работали под управлением 64-битной Windows. (В настоящее время редко можно увидеть что-либо работающее с 32-разрядной версией.)   -  person Miral    schedule 18.02.2014
comment
хорошо, ошибка означает, что сам файл ETL поврежден и отсутствуют некоторые метаданные. посмотрите работает ли загрузка символов на системе 8.1 или нет.   -  person magicandre1981    schedule 21.02.2014
comment
Я не ожидал, что загрузка символов сработает, поскольку трассировка стека не была включена, а PDB-файлы были недоступны. Раньше это никогда не было проблемой.   -  person Miral    schedule 22.02.2014
comment
загрузка символов не имеет ничего общего со стеком. Загружайте символы Microsoft только с общедоступного сервера символов.   -  person magicandre1981    schedule 22.02.2014
comment
а также? работает ли загрузка символов на ПК 8.1?   -  person magicandre1981    schedule 23.02.2014
comment
Хорошо, у меня другая трассировка, и она работает под Win7: dropbox.com/s/2jar5xrcj5rvvbq /   -  person magicandre1981    schedule 28.02.2014


Ответы (2)


Сообщение об ошибке означает, что трассировка повреждена (ERROR_METADATA_MISSING). Microsoft сообщила мне, что это может произойти, если вы используете 32-битный WPT вместо 64-битного WPT в 64-битной Windows.

Обычная трассировка ETL отлично открывается в Windows 7:

введите здесь описание изображения

person magicandre1981    schedule 18.03.2014
comment
Я запускаю версию из Windows 8.1 ADK; Я не помню, чтобы это было в 32-битных и 64-битных версиях. И я просто запускаю xperf из файла .cmd, который должен запускать 64-битную версию, если она там есть. - person Miral; 20.03.2014
comment
удалите ADK и используйте Windows 8.1 SDK для установки WPT. - person magicandre1981; 20.03.2014
comment
Но у меня есть та же версия ADK на моем ПК с Windows 7, которая не может прочитать трассировку. - person Miral; 20.03.2014
comment
попробуйте обновленный WPT/ADK (для весеннего обновления 8.1): msdn.microsoft. com/en-US/windows/hardware/gg454513 - person magicandre1981; 03.04.2014

Я регулярно загружаю трассировки с других машин и анализирую их. Я использую 64-разрядную версию Windows 7 с пакетом обновления 1 (SP1) и могу анализировать трассировки из Windows 8.1 и любой другой версии Windows после XP.

Вероятно, вы неправильно записываете трассировки — возможно, вы пропустили шаг слияния? Я рекомендую использовать UIforETW, как описано здесь:

https://randomascii.wordpress.com/2015/09/01/xperf-basics-recording-a-trace-the-ultimate-easy-way/

Если это не работает, то это ошибка, но это должно работать.

Я предполагаю, что вы используете 64-битную Windows. Для загрузки некоторых трасс требуется много памяти, поэтому я рекомендую использовать 64-разрядную ОС.

Это также может произойти, если вы сжимаете трассировку при ее записи в Windows 8+, поскольку Windows 7 не поддерживает загрузку сжатых трассировок ETW. Однако это не то, что вы бы сделали случайно — вам нужно добавить параметр -compress при выполнении «xperf -merge». Однако, если вы перейдете на использование UIforETW, вы должны знать об этом. UIforETW по умолчанию сжимает трассировки, и это необходимо отключить, если вы хотите просматривать их в Windows 7.

person Bruce Dawson    schedule 18.03.2014