English Homepage

PyKd - расширение для Python для доступа к Debug Engine

Назначение

Данный проект служит для автоматизации отладки и анализа аварийных дампов по средством использования скриптов на языке Питон. Pykd.pyd - имеет двойную функциональность. Этот модуль является расширением для питона и может использоваться в любой программе на языке питон. С другой стороны, pykd.pyd может быть запущен в WinDBG как расширение отладчика и предоставляет сервис для управления отладчиком из питоновского скрипта.

А зачем мне это?

Если у вас хоть раз возникало желание автоматизировать свою работу с отладчиком, но останавливал неудобный синтаксис встроенной скриптовой машины, то самое время вернутся к этому вопросу и написать собственные расширения для windbg на одном из самых удобных и мощных языков - на Python Но даже если у вас никогда не возникало желания написать свой скрипт или расширение для windbg, возможно, вас заинтересуют уже готовые скрипты? Подробности тут.

Быстрый старт

  • Устанавливаем pykd. Проще всего скачать со страницы загрузок готовый инсталлятор. Он установит все, что необходимо (включая python нужной версии)
  • Запускаем WinDbg
  • Загружаем плагин:
.load pykd.pyd
  • Создаем файл C:\test.py со следующим содержанием:
from pykd import *
dprintln("Hello")
  • Запускаем скрипт:
>!py C:\test.py
>Hello

Ресурсы

FAQ

1. Указание имени скрипта в команде !py

Q: Указывать путь к скрипту в команде !py - не удобно. Как можно этого избежать?
A: Добавить путь к каталогу, где лежат скрипты в переменную окружения $PYTHONPATH. Теперь достаточно указать только имя скрипта. Если скрипт имеет стандартное расширение .py - его можно опустить.

2. Версия python

Q: Какая версия python должна быть установлена?
A: Версия должна совпадать с той, что указана в дистрибутиве. В настоящее время поддерживается только версия 2.6. Если вы хотит использовать другую версию python - вам следует пересобрать проект.

3. Отладка скрипта в windbg

Q: Я написал небольшой скрипт, но он не работает так, как планировалось. Как мне быстро найти ошибку? Запускать скрипт после каждой правки - не вариант, это ничем не отличается от написания windbg скриптов
A: Можно использовать текстовой отладчик pdb прямо из windbg. Подробности тут.

4. Ошибки при запуске плагина

Q: При попытке загрузить расширение в windbg появляется сообщение об ошибке
A: Проверьте:
  1. Если windbg - 64 битный, то должен быть установлена 64 битная версия python и 64 битная версия pykd
  2. Должен быть установлен vcredist 2005 SP1 версия 2.0.50727.4053 соответствующей разрядности ( скачать можно на странице загрузки )

Спасибо Наде Кондратьевой за прекрасный логотип!

Last edited May 30, 2012 at 11:44 AM by kernelnet, version 3

Comments

No comments yet.