Beispiel #1
0
 def run(self, args):
     if not self.proc.curframe:
         self.errmsg("No frame selected.")
         return False
     names = list(self.proc.curframe.f_globals.keys())
     if len(args) > 0 and args[0] == '*' :
         self.section("globals")
         self.msg(self.columnize_commands(names))
     elif len(args) == 0:
         names.sort()
         for name in sorted(names):
             val = self.proc.getval(name)
             Mpp.pp(val, self.settings['width'], self.msg_nocr, self.msg,
                    prefix='%s =' % name)
             pass
     else:
         for name in args:
             if name in names:
                 val = self.proc.getval(name)
                 Mpp.pp(val, self.settings['width'], self.msg_nocr,
                        self.msg, prefix='%s =' % name)
                 pass
             else:
                 self.errmsg("%s is not a global variable" % name)
                 pass
             pass
     return False
Beispiel #2
0
 def run(self, args):
     if not self.proc.curframe:
         self.errmsg("No frame selected.")
         return False
     names = list(self.proc.curframe.f_globals.keys())
     if len(args) > 0 and args[0] == '*':
         self.section("globals")
         self.msg(self.columnize_commands(names))
     elif len(args) == 0:
         names.sort()
         for name in sorted(names):
             val = self.proc.getval(name)
             Mpp.pp(val,
                    self.settings['width'],
                    self.msg_nocr,
                    self.msg,
                    prefix='%s =' % name)
             pass
     else:
         for name in args:
             if name in names:
                 val = self.proc.getval(name)
                 Mpp.pp(val,
                        self.settings['width'],
                        self.msg_nocr,
                        self.msg,
                        prefix='%s =' % name)
                 pass
             else:
                 self.errmsg("%s is not a global variable" % name)
                 pass
             pass
     return False
Beispiel #3
0
def print_stack_entry(proc_obj, i_stack, color="plain", opts={}):
    frame_lineno = proc_obj.stack[len(proc_obj.stack) - i_stack - 1]
    frame, lineno = frame_lineno
    intf = proc_obj.intf[-1]
    if frame is proc_obj.curframe:
        intf.msg_nocr(format_token(Mformat.Arrow, "->", highlight=color))
    else:
        intf.msg_nocr("##")
    intf.msg(
        "%d %s" %
        (i_stack,
         format_stack_entry(proc_obj.debugger, frame_lineno, color=color)))
    if opts.get("source", False):
        filename = frame2file(proc_obj.core, frame)
        line = linecache.getline(filename, lineno, frame.f_globals)
        intf.msg(line)
        pass

    if opts.get("deparse", False):
        name = frame.f_code.co_name
        if frame.f_lasti == -1:
            last_i = 0
        else:
            last_i = frame.f_lasti
        deparsed, nodeInfo = deparse_offset(frame.f_code, name, last_i, None)
        if name == "<module>":
            name == "module"
        if nodeInfo:
            extractInfo = deparsed.extract_node_info(nodeInfo)
            intf.msg(extractInfo.selectedLine)
            intf.msg(extractInfo.markerLine)
        pass
    if opts.get("full", False):
        names = list(frame.f_locals.keys())
        for name in sorted(names):
            if _with_local_varname.match(name):
                val = frame.f_locals[name]
            else:
                val = proc_obj.getval(name, frame.f_locals)
                pass
            width = opts.get("width", 80)
            Mpp.pp(val, width, intf.msg_nocr, intf.msg, prefix="%s =" % name)
            pass

        deparsed, nodeInfo = deparse_offset(frame.f_code, name, frame.f_lasti,
                                            None)
        if name == "<module>":
            name == "module"
        if nodeInfo:
            extractInfo = deparsed.extract_node_info(nodeInfo)
            intf.msg(extractInfo.selectedLine)
            intf.msg(extractInfo.markerLine)
        pass
 def run(self, args):
     if not self.proc.curframe:
         self.errmsg("No frame selected.")
         return False
     var_names = list(self.proc.curframe.f_globals.keys())
     var_names.sort()
     for var_name in var_names:
         val = self.proc.getval(var_name)
         Mpp.pp(val, self.settings['width'], self.msg_nocr, self.msg,
                prefix='%s =' % var_name)
         pass
     return False
Beispiel #5
0
 def run(self, args):
     # Not sure if this __return__ stuff works.
     # if '__return__' in self.proc.curframe.f_locals:
     #     val = self.proc.curframe.f_locals['__return__']
     #     Mpp.pp(val, self.settings['width'], self.msg_nocr, self.msg)
     # elif self.proc.event == 'return':
     if self.proc.event in ['return', 'exception']:
         val = self.proc.event_arg
         Mpp.pp(val, self.settings['width'], self.msg_nocr, self.msg)
     else:
         self.errmsg("Must be in a 'return' or 'exception' event "
                     "rather than a %s event." % self.proc.event)
         pass
     return
Beispiel #6
0
 def run(self, args):
     # Not sure if this __return__ stuff works.
     # if '__return__' in self.proc.curframe.f_locals:
     #     val = self.proc.curframe.f_locals['__return__']
     #     Mpp.pp(val, self.settings['width'], self.msg_nocr, self.msg)
     # elif self.proc.event == 'return':
     if self.proc.event in ['return', 'exception']:
         val = self.proc.event_arg
         Mpp.pp(val, self.settings['width'], self.msg_nocr, self.msg)
     else:
         self.errmsg("Must be in a 'return' or 'exception' event "
                     "rather than a %s event." % self.proc.event)
         pass
     return
Beispiel #7
0
 def run(self, args):
     if not self.proc.curframe:
         self.errmsg("No frame selected.")
         return False
     var_names = list(self.proc.curframe.f_globals.keys())
     var_names.sort()
     for var_name in var_names:
         val = self.proc.getval(var_name)
         Mpp.pp(val,
                self.settings['width'],
                self.msg_nocr,
                self.msg,
                prefix='%s =' % var_name)
         pass
     return False
Beispiel #8
0
 def run(self, args):
     if not self.proc.curframe:
         self.errmsg("No frame selected")
         return False
     names = list(self.proc.curframe.f_locals.keys())
     if len(args) > 0 and args[0] == '*':
         self.section("locals")
         self.msg(self.columnize_commands(names))
     elif len(args) == 0:
         for name in sorted(names):
             # ALB: a fix for a problem with the new 'with'
             # statement. It seems to work, but I don't know exactly
             # why... (the problem was in self.getval called by
             # info_locals)
             if _with_local_varname.match(name):
                 val = self.proc.curframe.f_locals[name]
             else:
                 val = self.proc.getval(name)
                 pass
             Mpp.pp(val,
                    self.settings['width'],
                    self.msg_nocr,
                    self.msg,
                    prefix='%s =' % name)
             pass
         pass
     else:
         for name in args:
             # ALB: a fix for a problem with the new 'with'
             # statement. It seems to work, but I don't know exactly
             # why... (the problem was in self.getval called by
             # info_locals)
             if name in names:
                 if _with_local_varname.match(name):
                     val = self.proc.curframe.f_locals[name]
                 else:
                     val = self.proc.getval(name)
                     pass
                 Mpp.pp(val,
                        self.settings['width'],
                        self.msg_nocr,
                        self.msg,
                        prefix='%s =' % name)
             else:
                 self.errmsg("%s is not a local variable" % name)
                 pass
     return False
Beispiel #9
0
 def run(self, args):
     if not self.proc.curframe:
         self.errmsg("No frame selected")
         return False
     names = list(self.proc.curframe.f_locals.keys())
     if len(args) > 0 and args[0] == '*' :
         self.section("locals")
         self.msg(self.columnize_commands(names))
     elif len(args) == 0:
         for name in sorted(names):
             # ALB: a fix for a problem with the new 'with'
             # statement. It seems to work, but I don't know exactly
             # why... (the problem was in self.getval called by
             # info_locals)
             if _with_local_varname.match(name):
                 val = self.proc.curframe.f_locals[name]
             else:
                 val = self.proc.getval(name)
                 pass
             Mpp.pp(val, self.settings['width'], self.msg_nocr, self.msg,
                    prefix='%s =' % name)
             pass
         pass
     else:
         for name in args:
             # ALB: a fix for a problem with the new 'with'
             # statement. It seems to work, but I don't know exactly
             # why... (the problem was in self.getval called by
             # info_locals)
             if name in names:
                 if _with_local_varname.match(name):
                     val = self.proc.curframe.f_locals[name]
                 else:
                     val = self.proc.getval(name)
                     pass
                 Mpp.pp(val, self.settings['width'], self.msg_nocr,
                        self.msg,
                        prefix='%s =' % name)
             else:
                 self.errmsg("%s is not a local variable" % name)
                 pass
     return False
Beispiel #10
0
 def run(self, args):
     arg = ' '.join(args[1:])
     val = self.proc.eval(arg)
     Mpp.pp(val, self.settings['width'], self.msg_nocr, self.msg)
     return False
Beispiel #11
0
 def run(self, args):
     arg = " ".join(args[1:])
     val = self.proc.eval(arg)
     pp(val, self.settings["width"], self.msg_nocr, self.msg)
     return False
Beispiel #12
0
    def run(self, args):
        if not self.proc.curframe:
            self.errmsg("No frame selected")
            return False

        try:
            opts, args = getopt(
                args,
                "hl",
                ["help", "list"],
            )
        except GetoptError as err:
            # print help information and exit:
            self.errmsg(
                str(err)
            )  # will print something like "option -a not recognized"
            return

        list_only = False
        for o, a in opts:
            if o in ("-h", "--help"):
                self.proc.commands["help"].run(["help", "info", "locals"])
                return
            elif o in ("-l", "--list"):
                list_only = True
            else:
                self.errmsg("unhandled option '%s'" % o)
            pass
        pass

        names = list(self.proc.curframe.f_locals.keys())

        if list_only:
            for name in names:
                self.msg(name)
            return
        if len(args) > 0 and args[0] == "*":
            self.section("locals")
            self.msg(self.columnize_commands(names))
        elif len(args) == 0:
            for name in sorted(names):
                # ALB: a fix for a problem with the new 'with'
                # statement. It seems to work, but I don't know exactly
                # why... (the problem was in self.getval called by
                # info_locals)
                if _with_local_varname.match(name):
                    val = self.proc.curframe.f_locals[name]
                else:
                    val = self.proc.getval(name)
                    pass
                Mpp.pp(
                    val,
                    self.settings["width"],
                    self.msg_nocr,
                    self.msg,
                    prefix="%s =" % name,
                )
                pass
            pass
        else:
            for name in args:
                # ALB: a fix for a problem with the new 'with'
                # statement. It seems to work, but I don't know exactly
                # why... (the problem was in self.getval called by
                # info_locals)
                if name in names:
                    if _with_local_varname.match(name):
                        val = self.proc.curframe.f_locals[name]
                    else:
                        val = self.proc.getval(name)
                        pass
                    Mpp.pp(
                        val,
                        self.settings["width"],
                        self.msg_nocr,
                        self.msg,
                        prefix="%s =" % name,
                    )
                else:
                    self.errmsg("%s is not a local variable" % name)
                    pass
        return False
Beispiel #13
0
 def run(self, args):
     arg = ' '.join(args[1:])
     val = self.proc.eval(arg)
     Mpp.pp(val, self.settings['width'], self.msg_nocr, self.msg)
     return False