Как измерить охват кода API Windows для тестов уровня приложения - PullRequest
0 голосов
/ 07 августа 2010

Моя работа заключается в тестировании производительности на уровне системы с использованием сторонних инструментов, для которых у меня нет источников.Я также тестирую Windows и могу использовать символы отладки, но не исходный код Windows.Я хотел бы количественно описать области хост-ОС, которые охватывают мои тесты.Для этого есть два больших шага: определить, какие DLL и функции я хочу посмотреть, а затем определить, как профилировать вызовы к ним.

Идеи для покрытия:

  • Все функциииз kernel.dll, ntdll.dll, user.dll и т.д ... Основные встроенные модули.Это может привести к значительному перерасходу и, вероятно, выявит множество пробелов, связанных только с устаревшей функциональностью.
  • Только имена модулей для любых библиотек DLL, используемых целевым приложением.Не так подробно, но также с меньшей вероятностью упустить ключевые функции в целевом приложении.
  • Модули, специфичные для приложения, такие как d3d10.dll, для приложений DirectX 10.
  • Основные блоки.Я предполагаю, что это будет объем работы над диссертацией.

Идеи профилирования:

  • Запустите анализ графа вызовов VTune во всех моих тестах.Этот вид работает, но, похоже, предоставляет ограниченное представление о том, какие встроенные функции фактически вызываются.
  • Динамически оснащайте приложение чем-то вроде Pin или DynamoRIO.Возможное con: slow.
  • Поймать звонки с помощью WinDbg.Не уверен, что это будет проще или быстрее, чем Pin.
  • Статический анализ с использованием инструмента разборки, такого как IDA Pro.

Есть ли опубликованные работы в этом направлении в Windows?Вы когда-нибудь использовали один из этих инструментов для подключения или регистрации настолько, чтобы рекомендовать его?

1 Ответ

1 голос
/ 09 августа 2010

Вы можете попробовать:

  1. www.zynamics.com / binnavi.html
  2. www.hbgary.com / products-services / responseder-pro /
  3. code.google.com / p / paimei / source / browse / trunk / tracer_msr_branch.py ​​
...