コード例 #1
0
    def __init__(self):
        self.depth = 0
        self._minimal = True
        self._sourceinfo = False
        self.results_written = False
        self.blacklisted = {}
        self.no_rec_funs = []
        self.stage_logs = {}
        bp_hooks = {'StageEndBreak': self.stop_end}

        parser_options = [
            gdb_tools.GDBPluginParser("stage_log", ["stage", "log"]),
            gdb_tools.GDBPluginParser("blacklist",
                                      ["stage",
                                       gdb_tools.GDBPluginPargerArg("fns", nargs="*")]),
            gdb_tools.GDBPluginParser("no_recursion",
                                      [gdb_tools.GDBPluginPargerArg("recfns",
                                                                    nargs="*", default=[])]),
            gdb_tools.GDBPluginParser("sourceinfo",
                                      [gdb_tools.GDBPluginPargerArg("enabled",
                                                                    nargs="?", default=True)]),
            gdb_tools.GDBPluginParser("minimal",
                                      [gdb_tools.GDBPluginPargerArg("disabled", nargs="?",
                                                                    default=False)]),

            ]
        gdb_tools.GDBPlugin.__init__(self, "calltrace",
                                     bp_hooks=bp_hooks,
                                     stage_hook=self.setup_breakpoints,
                                     exit_hook=self._gdb_exit,
                                     disabled_breakpoints=["WriteBreak",
                                                           "LongwriteBreak",
                                                           "EndLongwriteBreak",
                                                           "SubstageEntryBreak"],
                                     parser_args=parser_options)
コード例 #2
0
 def __init__(self):
     bp_hooks = {'WriteBreak': self.write_stophook,
                 'LongwriteBreak': self.longwrite_stophook,
                 'StageEndBreak': self.endstop_hook}
     parser_options = [
         gdb_tools.GDBPluginParser("flushall"),
         gdb_tools.GDBPluginParser("stage", ["stagename"])
     ]
     gdb_tools.GDBPlugin.__init__(self, "hookwrite", bp_hooks,
                                  f_hook=self.f_hook,
                                  calculate_write_dst=True,
                                  exit_hook=self._exit_hook,
                                  parser_args=parser_options)
コード例 #3
0
    def __init__(self):
        bp_hooks = {
            'WriteBreak': self.write_stophook,
            'LongWriteBreak': self.longwrite_stophook,
            'SubstageEntryBreak': self.substage_stophook
        }
        parser_options = [
            gdb_tools.GDBPluginParser("do_halt"),
            gdb_tools.GDBPluginParser("check_inline")
        ]

        gdb_tools.GDBPlugin.__init__(self,
                                     "enforce",
                                     f_hook=self.finalize_hook,
                                     bp_hooks=bp_hooks,
                                     calculate_write_dst=True,
                                     parser_args=parser_options)
コード例 #4
0
 def __init__(self):
     bp_hooks = {'StageEndBreak': self.endstop_hook}
     parser_options = [gdb_tools.GDBPluginParser("stage", ["stagename"])]
     disabled = ["LongwriteBreak", "WriteBreak"]
     gdb_tools.GDBPlugin.__init__(self,
                                  "watchpoints",
                                  bp_hooks,
                                  f_hook=self.f_hook,
                                  calculate_write_dst=False,
                                  exit_hook=self._exit_hook,
                                  disabled_breakpoints=disabled,
                                  parser_args=parser_options)