def updateBreakpointStats(self, stats): """Received from debugger. stats is a list of mappings.""" stats_map = {} for item in stats: fn = item['client_filename'] lineno = item['lineno'] stats_map[(fn, lineno)] = item if not bplist.hasBreakpoint(fn, lineno): # A hard breakpoint was hit and a new breakpoint was created. bplist.addBreakpoint(fn, lineno) self.stats_map = stats_map
def updateBreakpointStats(self, stats): """Received from debugger. stats is a list of mappings.""" stats_map = {} for item in stats: fn = item["client_filename"] lineno = item["lineno"] stats_map[(fn, lineno)] = item if not bplist.hasBreakpoint(fn, lineno): # A hard breakpoint was hit and a new breakpoint was created. bplist.addBreakpoint(fn, lineno) self.stats_map = stats_map
def receiveDebuggerStatus(self, info): self.updateErrOutWindow() self.setDebugFile(self.filename) # Determine the current lineno, filename, and # funcname from the stack. # Update call stack stack = info['stack'] # Translate server filenames to client filenames. for frame in stack: frame['client_filename'] = ( self.serverFNToClientFN(frame['filename'])) # Determine the current lineno, filename, and # funcname from the stack. if stack: bottom = stack[-1] filename = bottom['client_filename'] funcname = bottom['funcname'] lineno = bottom['lineno'] base = os.path.basename(filename) else: filename = funcname = lineno = base = '' # Show running status. self.running = info['running'] if self.running: message = "%s:%s" % (base, lineno) if funcname != "?": message = "%s: %s()" % (message, funcname) else: message = _('Finished.') self.sb.updateInstructionPtr(message) # Show exception information. exc_type = info.get('exc_type', None) exc_value = info.get('exc_value', None) if exc_type is not None: m1 = exc_type if exc_value is not None: try: m1 = "%s: %s" % (m1, str(exc_value)) except: m1 = 'internal error' self.sb.updateState(m1) else: self.sb.updateState(_('Ready.'), 'info') # Load the stack view. sv = self.stackView if sv: i = info['frame_stack_len'] sv.load_stack(stack, i) sv.selectCurrentEntry() # Update breakpoints view with stats. breaks = info['breaks'] for item in breaks: item['client_filename'] = self.serverFNToClientFN( item['filename']) self.breakpts.updateBreakpointStats(breaks) self.breakpts.refreshList() # If at a breakpoint, display status. if bplist.hasBreakpoint(filename, lineno): bplist.clearTemporaryBreakpoints(filename, lineno) self.sb.updateState(_('Breakpoint.'), 'break') self.breakpts.selectBreakpoint(filename, lineno) self.selectSourceLine(filename, lineno) # All info in watches, locals, and globals panes is now invalid. self.invalidatePanes() # Update the currently selected pane. self.updateSelectedPane() # Receive stream data even if the user isn't looking. self.updateErrOutWindow() self.restoreDebugger() self.refreshTools()
def receiveDebuggerStatus(self, info): self.updateErrOutWindow() self.setDebugFile(self.filename) # Determine the current lineno, filename, and # funcname from the stack. # Update call stack stack = info['stack'] # Translate server filenames to client filenames. for frame in stack: frame['client_filename'] = (self.serverFNToClientFN( frame['filename'])) # Determine the current lineno, filename, and # funcname from the stack. if stack: bottom = stack[-1] filename = bottom['client_filename'] funcname = bottom['funcname'] lineno = bottom['lineno'] base = os.path.basename(filename) else: filename = funcname = lineno = base = '' # Show running status. self.running = info['running'] if self.running: message = "%s:%s" % (base, lineno) if funcname != "?": message = "%s: %s()" % (message, funcname) else: message = _('Finished.') self.sb.updateInstructionPtr(message) # Show exception information. exc_type = info.get('exc_type', None) exc_value = info.get('exc_value', None) if exc_type is not None: m1 = exc_type if exc_value is not None: try: m1 = "%s: %s" % (m1, str(exc_value)) except: m1 = 'internal error' self.sb.updateState(m1) else: self.sb.updateState(_('Ready.'), 'info') # Load the stack view. sv = self.stackView if sv: i = info['frame_stack_len'] sv.load_stack(stack, i) sv.selectCurrentEntry() # Update breakpoints view with stats. breaks = info['breaks'] for item in breaks: item['client_filename'] = self.serverFNToClientFN(item['filename']) self.breakpts.updateBreakpointStats(breaks) self.breakpts.refreshList() # If at a breakpoint, display status. if bplist.hasBreakpoint(filename, lineno): bplist.clearTemporaryBreakpoints(filename, lineno) self.sb.updateState(_('Breakpoint.'), 'break') self.breakpts.selectBreakpoint(filename, lineno) self.selectSourceLine(filename, lineno) # All info in watches, locals, and globals panes is now invalid. self.invalidatePanes() # Update the currently selected pane. self.updateSelectedPane() # Receive stream data even if the user isn't looking. self.updateErrOutWindow() self.restoreDebugger() self.refreshTools()