Python 2.7 pykd:setBp和callback给出typeerror

Python 2.7 pykd:setBp和callback给出typeerror,python-2.7,callback,windbg,breakpoints,pykd,Python 2.7,Callback,Windbg,Breakpoints,Pykd,我试图使用windbg和pykd编写一个堆跟踪器,但在尝试设置回调时遇到一个类型错误 以下是代码的一部分: def输入\回拨(bp): 打印“调用的RTLALLOCATHEAP” 返回错误 def返回呼叫(bp): 打印“返回的RTLALLOCATHEAP” 返回错误 add=获取地址(“ntdll!RtlAllocateHeap”) bp_init=pykd.setBp(int(add,16),输入回调) bp_end=无 当我尝试运行它时,会出现以下错误: 0:000> !py C

我试图使用windbg和pykd编写一个堆跟踪器,但在尝试设置回调时遇到一个类型错误

以下是代码的一部分:


def输入\回拨(bp):
打印“调用的RTLALLOCATHEAP”
返回错误
def返回呼叫(bp):
打印“返回的RTLALLOCATHEAP”
返回错误
add=获取地址(“ntdll!RtlAllocateHeap”)
bp_init=pykd.setBp(int(add,16),输入回调)
bp_end=无
当我尝试运行它时,会出现以下错误:

0:000> !py C:\Users\tobbe\Documents\Projects\HeapTrace\heap_trace.py
hej


TypeError: enter_call_back() takes exactly 1 argument (0 given)
我使用的是python 2.7版

0:000> !py
Python 2.7.14 (v2.7.14:84471935ed, Sep 16 2017, 20:19:30) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
和pykd版本2.0.0.22

0:000> !pykd.info

pykd bootstrapper version: 2.0.0.22

Installed python:

Version:        Status:     Image:
------------------------------------------------------------------------------
* 2.7 x86-32    Unloaded    C:\WINDOWS\SYSTEM32\python27.dll
  3.7 x86-32    Unloaded    C:\Users\Tobias.Lorek\AppData\Local\Programs\Python\Python37-32\python37.dll
我最初试图遵循以下教程,但遇到了类似的错误

任何帮助都将不胜感激


在这方面,

输入\u回拨\u不应该没有参数

请参见pykd测试中的示例:


谢谢谢谢你的提示,下次我再看考试!另一个有用的链接
 def stopOnBreak():
     return pykd.eventResult.Break

 def testBreakCallback(self):
      breakCount = callCounter(stopOnBreak)
      bp = pykd.setBp( self.targetModule.CdeclFunc, breakCount )
      self.assertEqual( pykd.executionStatus.Break, pykd.go() )
      self.assertEqual( 1, breakCount.count )