Все правильно :)
Команда !py test2:
1) запустила питон-машину
2), исполнила скрипт ( в том числе бряк поставила )
3) закончила работу питон-машинки, в том числе все созданные объекты удалила ( ну и колбек тож )
Как нужно:
1) Использовать !pycmd - консоль работает в "глобальном" интерпретаторе, его время жизни равно времени жизни плагина в windbg
Примерно так:
!pycmd
>>> import test2
Тут нужно чтобы файл test2.py находился в правильно месте - там где его питон сможет найти
Или 2) Вставить в свой код go():
import sys
from pykd import *
def Callback(Id):
dprintln( "callback: CreateProcessHandler" )
nt = module( "ntdll" )
faddr = nt.offset("NtCreateFile")
if faddr != 0:
bp = setBp(faddr, Callback)
print "callback id: ", bp, "address: ", hex( faddr )
go() # один раз сработает