示例#1
0
文件: dbgentry.py 项目: nutsi/voltron
            def __init__(self, debugger, dict):
                super(VoltronCommand, self).__init__()

                # grab the debugger and command interpreter
                self.debugger = debugger
                self.ci = self.debugger.GetCommandInterpreter()

                # install the voltron command handler
                self.debugger.HandleCommand(
                    'command script add -f dbgentry.lldb_invoke voltron')

                # load plugins
                self.pm = voltron.plugin.pm

                # set up an lldb adaptor and set it as the package-wide adaptor
                self.adaptor = self.pm.debugger_plugin_for_host(
                    'lldb').adaptor_class()
                voltron.debugger = self.adaptor

                # register plugins now that we have a debugger
                self.pm.register_plugins()

                # start the server
                self.server = Server()
                self.server.start()

                self.hook_idx = None
示例#2
0
            def __init__(self, vdb, vtrace):
                """
                vdb is the debugger instance
                vtrace is the vtrace module?
                """
                super(VoltronCommand, self).__init__()
                self._vdb = vdb
                self._vtrace = vtrace

                self.pm = PluginManager()

                self.adaptor = self.pm.debugger_plugin_for_host(
                    'vdb').adaptor_class(self._vdb, self._vtrace)
                voltron.debugger = self.adaptor

                self.server = Server()
                self.server.start()
示例#3
0
    if not host:
        raise Exception("No debugger host is present")

    # register any plugins that were loaded
    pm.register_plugins()

    # get the debugger plugin for the host we're in
    plugin = pm.debugger_plugin_for_host(host)

    if not voltron.command:
        # set up command and adaptor instances
        voltron.debugger = plugin.adaptor_class(*args)
        voltron.command = plugin.command_class(*args)

        # create and start the voltron server
        voltron.server = Server()
        if host != "gdb":
            voltron.server.start()

        print(blessed.Terminal().bold_red("Voltron loaded."))
        if host == 'lldb' and not voltron.command.registered:
            print("Run `voltron init` after you load a target.")

except Exception as e:
    import traceback
    msg = "An error occurred while loading Voltron:\n\n{}".format(
        traceback.format_exc())
    if blessed:
        msg = blessed.Terminal().bold_red(msg)
    if log:
        log.exception("Exception raised while loading Voltron")
示例#4
0
 def cont_handler(self, event):
     log.debug('Inferior continued')
     if self.server == None:
         self.server = Server()
         self.server.start()
示例#5
0
文件: dbgentry.py 项目: nutsi/voltron
 def cont_handler(self, event):
     log.debug('Inferior continued')
     if self.server == None or self.server.is_running == False:
         self.server = Server()
         self.server.start()