понедельник, 24 августа 2009 г.

Directx symbols в VS team profiler

Для начала оговорим пару деталей :
  • для уменьшения объема текста буду заменять C:\Program Files\Microsoft DirectX SDK (November 2008)\ на SDK_DIR( очевидно что у вас путь к СДК свой и используйте свои пути )
  • я использую visual studio 2008 team edition, windows 2008 server, Directx 2008 november ( возможно что другие комбинации софта не дадут вам ожидаемого результата )

1. Итак проблема:
Все желающие профилировать свои Directx преложения наверно сталкивались с такой темой :
Symbol Engine: Loading symbols for module 'C:\Windows\system32\d3d9.dll'
Symbol Engine: Failed to load pdb for module at 'C:\Windows\system32\d3d9.dll'
Symbol Engine: Loading symbols for module 'C:\Windows\system32\d3d9d.dll'
Symbol Engine: Failed to load pdb for module at 'C:\Windows\system32\d3d9d.dll'
и далее в профайлере :











непонятная функция из библиотеки d3d9d.dll (d на конце d3d9 значит что это дебаг версия).

2. Решаем:

С инсталлом Directx SDK обычно идет пакет symbols (SDK_DIR\Extras\Symbols\ )
Они то нам и нужны. Идем в vs->Tools->Options->Debugging->Symbols , жмем на инконку папки и вставляем туда путь к символам ( SDK_DIR\Extras\Symbols\debug\x86\dll\ ).
Хочу заметить, если вы пользуетесь release версией в VS то стоит использовать retail версию символов ( SDK_DIR\Extras\Symbols\retail\x86\dll\ ) .
Так как я использую Vista то необходимо переместить файл  d3d9d.pdb из папки  SDK_DIR\Extras\Symbols\debug\x86\WinVista\dll\
в  SDK_DIR\Extras\Symbols\retail\x86\dll\ с заменой!!!
Теперь идем в вижуал студию, запускаем профайлер, закрываем приложение ...  и видим:











Вот и всё, with respect Zaibatsu.

Комментариев нет:

Отправить комментарий