def LoadBreakPoints(self, breakpoint_db, record_db=''): self.BreakPointsDB = breakpoints.DB(breakpoint_db) self.BreakPointsDB.Load() self.RecordsDB = breakpoints.Record(record_db) self.BreakpointsMap = {} for (module, rules) in self.BreakPointsDB.AddressBreakpoints.items(): for (address, dump_targets) in rules.items(): bp = self.SetBp(address, self.HandleBreakpoint) self.logger.debug('Setting breakpoint on %s (%.8x) - %d' % (module, address, bp.getId())) self.BreakpointsMap[address] = { 'Type': 'Address', 'Module': module, 'RVA': 0, 'Symbol': '', 'DumpTargets': dump_targets } for (module_name, module_bps) in self.BreakPointsDB.ModuleBreakpoints.items(): self.AddModuleBP(module_name, module_bps, self.HandleBreakpoint) for (module_name, module_bps) in self.BreakPointsDB.SymbolBreakpoints.items(): for (symbol, dump_targets) in module_bps.items(): self.AddSymbolBP(module_name, symbol, dump_targets, self.HandleBreakpoint) self.ReturnBreakpointsMap = {}
def __init__(self, breakpoint_db): eventHandler.__init__(self) self.logger = logging.getLogger(__name__) breakpoints_db = breakpoints.DB(breakpoint_db) breakpoints_db.Load() self.BreakpointsMap = {} self.SetBP(breakpoints_db.Breakpoints)
def __init__(self, executable_path='', breakpoint_db=None): pykd.startProcess(executable_path) pykd.eventHandler.__init__(self) self.logger = logging.getLogger(__name__) out_hdlr = logging.StreamHandler(sys.stdout) out_hdlr.setFormatter(logging.Formatter('%(asctime)s %(message)s')) out_hdlr.setLevel(logging.INFO) self.logger.addHandler(out_hdlr) self.logger.setLevel(logging.INFO) self.BreakpointsMap = {} if breakpoint_db: breakpoints_db = breakpoints.DB(breakpoint_db) breakpoints_db.load() self.set_bp(breakpoints_db.Breakpoints)