eric6/Debugger/DebugViewer.py

changeset 7915
e68f5c568aee
parent 7903
827d89937c30
child 7920
322d1ee01510
equal deleted inserted replaced
7914:999f07b00a49 7915:e68f5c568aee
129 self.glvWidgetVLayout.addLayout(self.glvWidgetHLayout) 129 self.glvWidgetVLayout.addLayout(self.glvWidgetHLayout)
130 130
131 index = self.__tabWidget.addTab( 131 index = self.__tabWidget.addTab(
132 self.glvWidget, 132 self.glvWidget,
133 UI.PixmapCache.getIcon("globalVariables"), '') 133 UI.PixmapCache.getIcon("globalVariables"), '')
134 self.__tabWidget.setTabToolTip(index, self.globalsViewer.windowTitle()) 134 self.__tabWidget.setTabToolTip(
135 index,
136 self.tr("Shows the list of global variables and their values."))
135 137
136 self.setGlobalsFilterButton.clicked.connect( 138 self.setGlobalsFilterButton.clicked.connect(
137 self.setGlobalsFilter) 139 self.setGlobalsFilter)
138 self.globalsFilterEdit.returnPressed.connect(self.setGlobalsFilter) 140 self.globalsFilterEdit.returnPressed.connect(self.setGlobalsFilter)
139 141
183 self.lvWidgetVLayout.addLayout(self.lvWidgetHLayout2) 185 self.lvWidgetVLayout.addLayout(self.lvWidgetHLayout2)
184 186
185 index = self.__tabWidget.addTab( 187 index = self.__tabWidget.addTab(
186 self.lvWidget, 188 self.lvWidget,
187 UI.PixmapCache.getIcon("localVariables"), '') 189 UI.PixmapCache.getIcon("localVariables"), '')
188 self.__tabWidget.setTabToolTip(index, self.localsViewer.windowTitle()) 190 self.__tabWidget.setTabToolTip(
191 index,
192 self.tr("Shows the list of local variables and their values."))
189 193
190 self.sourceButton.clicked.connect(self.__showSource) 194 self.sourceButton.clicked.connect(self.__showSource)
191 self.stackComboBox.currentIndexChanged[int].connect( 195 self.stackComboBox.currentIndexChanged[int].connect(
192 self.__frameSelected) 196 self.__frameSelected)
193 self.setLocalsFilterButton.clicked.connect(self.setLocalsFilter) 197 self.setLocalsFilterButton.clicked.connect(self.setLocalsFilter)
202 self.callStackViewer = CallStackViewer(self.debugServer) 206 self.callStackViewer = CallStackViewer(self.debugServer)
203 index = self.__tabWidget.addTab( 207 index = self.__tabWidget.addTab(
204 self.callStackViewer, 208 self.callStackViewer,
205 UI.PixmapCache.getIcon("callStack"), "") 209 UI.PixmapCache.getIcon("callStack"), "")
206 self.__tabWidget.setTabToolTip( 210 self.__tabWidget.setTabToolTip(
207 index, self.callStackViewer.windowTitle()) 211 index,
212 self.tr("Shows the current call stack."))
208 self.callStackViewer.sourceFile.connect(self.sourceFile) 213 self.callStackViewer.sourceFile.connect(self.sourceFile)
209 self.callStackViewer.frameSelected.connect( 214 self.callStackViewer.frameSelected.connect(
210 self.__callStackFrameSelected) 215 self.__callStackFrameSelected)
211 216
212 from .CallTraceViewer import CallTraceViewer 217 from .CallTraceViewer import CallTraceViewer
214 self.callTraceViewer = CallTraceViewer(self.debugServer, self) 219 self.callTraceViewer = CallTraceViewer(self.debugServer, self)
215 index = self.__tabWidget.addTab( 220 index = self.__tabWidget.addTab(
216 self.callTraceViewer, 221 self.callTraceViewer,
217 UI.PixmapCache.getIcon("callTrace"), "") 222 UI.PixmapCache.getIcon("callTrace"), "")
218 self.__tabWidget.setTabToolTip( 223 self.__tabWidget.setTabToolTip(
219 index, self.callTraceViewer.windowTitle()) 224 index,
225 self.tr("Shows a trace of the program flow."))
220 self.callTraceViewer.sourceFile.connect(self.sourceFile) 226 self.callTraceViewer.sourceFile.connect(self.sourceFile)
221 227
222 from .BreakPointViewer import BreakPointViewer 228 from .BreakPointViewer import BreakPointViewer
223 # add the breakpoint viewer 229 # add the breakpoint viewer
224 self.breakpointViewer = BreakPointViewer() 230 self.breakpointViewer = BreakPointViewer()
225 self.breakpointViewer.setModel(self.debugServer.getBreakPointModel()) 231 self.breakpointViewer.setModel(self.debugServer.getBreakPointModel())
226 index = self.__tabWidget.addTab( 232 index = self.__tabWidget.addTab(
227 self.breakpointViewer, 233 self.breakpointViewer,
228 UI.PixmapCache.getIcon("breakpoints"), '') 234 UI.PixmapCache.getIcon("breakpoints"), '')
229 self.__tabWidget.setTabToolTip( 235 self.__tabWidget.setTabToolTip(
230 index, self.breakpointViewer.windowTitle()) 236 index,
237 self.tr("Shows a list of defined breakpoints."))
231 self.breakpointViewer.sourceFile.connect(self.sourceFile) 238 self.breakpointViewer.sourceFile.connect(self.sourceFile)
232 239
233 from .WatchPointViewer import WatchPointViewer 240 from .WatchPointViewer import WatchPointViewer
234 # add the watch expression viewer 241 # add the watch expression viewer
235 self.watchpointViewer = WatchPointViewer() 242 self.watchpointViewer = WatchPointViewer()
236 self.watchpointViewer.setModel(self.debugServer.getWatchPointModel()) 243 self.watchpointViewer.setModel(self.debugServer.getWatchPointModel())
237 index = self.__tabWidget.addTab( 244 index = self.__tabWidget.addTab(
238 self.watchpointViewer, 245 self.watchpointViewer,
239 UI.PixmapCache.getIcon("watchpoints"), '') 246 UI.PixmapCache.getIcon("watchpoints"), '')
240 self.__tabWidget.setTabToolTip( 247 self.__tabWidget.setTabToolTip(
241 index, self.watchpointViewer.windowTitle()) 248 index,
249 self.tr("Shows a list of defined watchpoints."))
242 250
243 from .ExceptionLogger import ExceptionLogger 251 from .ExceptionLogger import ExceptionLogger
244 # add the exception logger 252 # add the exception logger
245 self.exceptionLogger = ExceptionLogger() 253 self.exceptionLogger = ExceptionLogger()
246 index = self.__tabWidget.addTab( 254 index = self.__tabWidget.addTab(
247 self.exceptionLogger, 255 self.exceptionLogger,
248 UI.PixmapCache.getIcon("exceptions"), '') 256 UI.PixmapCache.getIcon("exceptions"), '')
249 self.__tabWidget.setTabToolTip( 257 self.__tabWidget.setTabToolTip(
250 index, self.exceptionLogger.windowTitle()) 258 index,
259 self.tr("Shows a list of raised exceptions."))
251 260
252 from UI.PythonDisViewer import PythonDisViewer, PythonDisViewerModes 261 from UI.PythonDisViewer import PythonDisViewer, PythonDisViewerModes
253 # add the Python disassembly viewer 262 # add the Python disassembly viewer
254 self.disassemblyViewer = PythonDisViewer( 263 self.disassemblyViewer = PythonDisViewer(
255 None, mode=PythonDisViewerModes.TracebackMode) 264 None, mode=PythonDisViewerModes.TracebackMode)
256 index = self.__tabWidget.addTab( 265 index = self.__tabWidget.addTab(
257 self.disassemblyViewer, 266 self.disassemblyViewer,
258 UI.PixmapCache.getIcon("disassembly"), '') 267 UI.PixmapCache.getIcon("disassembly"), '')
259 self.__tabWidget.setTabToolTip( 268 self.__tabWidget.setTabToolTip(
260 index, self.disassemblyViewer.windowTitle()) 269 index,
270 self.tr("Shows a code disassembly in case of an exception."))
261 271
262 self.__tabWidget.setCurrentWidget(self.glvWidget) 272 self.__tabWidget.setCurrentWidget(self.glvWidget)
263 273
264 # add the threads viewer 274 # add the threads viewer
265 self.__threadWidget = QWidget() 275 self.__threadWidget = QWidget()
482 @param quiet flag indicating to suppress exit info display 492 @param quiet flag indicating to suppress exit info display
483 @type bool 493 @type bool
484 @param debuggerId ID of the debugger backend 494 @param debuggerId ID of the debugger backend
485 @type str 495 @type str
486 """ 496 """
487 if debuggerId == self.getSelectedDebuggerId(): 497 if not self.isOnlyDebugger():
488 # the current client has exited 498 if debuggerId == self.getSelectedDebuggerId():
489 self.globalsViewer.handleResetUI() 499 # the current client has exited
490 self.localsViewer.handleResetUI() 500 self.globalsViewer.handleResetUI()
491 self.setGlobalsFilter() 501 self.localsViewer.handleResetUI()
492 self.setLocalsFilter() 502 self.setGlobalsFilter()
493 self.sourceButton.setEnabled(False) 503 self.setLocalsFilter()
494 self.currentStack = None 504 self.sourceButton.setEnabled(False)
495 self.stackComboBox.clear() 505 self.currentStack = None
496 self.__threadList.clear() 506 self.stackComboBox.clear()
497 self.__removeDebugger(debuggerId) 507 self.__threadList.clear()
508
509 self.__removeDebugger(debuggerId)
498 510
499 def __clientSyntaxError(self, message, filename, lineNo, characterNo, 511 def __clientSyntaxError(self, message, filename, lineNo, characterNo,
500 debuggerId): 512 debuggerId):
501 """ 513 """
502 Private method to handle a syntax error in the debugged program. 514 Private method to handle a syntax error in the debugged program.
770 foundItems = self.__debuggersList.findItems(debuggerId, 782 foundItems = self.__debuggersList.findItems(debuggerId,
771 Qt.MatchExactly) 783 Qt.MatchExactly)
772 if foundItems: 784 if foundItems:
773 self.__debuggersList.setCurrentItem(foundItems[0]) 785 self.__debuggersList.setCurrentItem(foundItems[0])
774 786
787 def isOnlyDebugger(self):
788 """
789 Public method to test, if only one debugger is connected.
790
791 @return flag indicating that only one debugger is connected
792 @rtype bool
793 """
794 return self.__debuggersList.topLevelItemCount() == 1
795
775 def getSelectedDebuggerId(self): 796 def getSelectedDebuggerId(self):
776 """ 797 """
777 Public method to get the currently selected debugger ID. 798 Public method to get the currently selected debugger ID.
778 799
779 @return selected debugger ID 800 @return selected debugger ID

eric ide

mercurial