Использование Pykd с SOS
Я хотел сделать следующее в PyKd: выполнить команду другого расширения и обработать его вывод.
Прежде всего, кажется, что я должен загрузить SOS в PyKd, а не в WinDbg. Я сделал это с
>>> print(loadExt("C:\Windows\Microsoft.NET\Framework64\v2.0.50727\sos.dll"))
59323328
Затем я хотел выполнить вызов на добавочный номер, как это:
>>> print(callExt(59323328, "!dumpheap -stat", ""))
(Третий параметр не задокументирован в API.)
Тем не менее, это дает мне ошибку
The call to LoadLibrary(C:\Windows\Microsoft.NET\Framework64\2.0.50727\sos.dll) failed
Win32 error 0n126
"The module could not be found."
Please check your debugger configuration and/or network access.
Я делаю все это в течение !pycmd
командная строка
Как я могу вызвать команды SOS из PyKd и обработать вывод?
Версии:
WinDbg 9.2.9200.16384 x64
отладка 64-битного приложения
Pykd 0.2.0.26 64 бит
Python 2.7.3
2 ответа
Решение
Вы можете использовать сахар Python:
loadExt (r "C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ sos.dll")
О выходной длине см. Трекер проблем pykd, я оставил комментарий.
Глупая ошибка, я должен избегать таких путей:
>>> print(loadExt("C:\\Windows\\Microsoft.NET\\Framework64\\v2.0.50727\\sos.dll"))