eric6/Debugger/DebugServer.py

branch
multi_processing
changeset 7802
eefe954f01e8
parent 7646
39e3db2b4936
parent 7780
41420f82c0ac
child 7863
6725d2549801
diff -r 39e3db2b4936 -r eefe954f01e8 eric6/Debugger/DebugServer.py
--- a/eric6/Debugger/DebugServer.py	Sun Jul 05 11:11:24 2020 +0200
+++ b/eric6/Debugger/DebugServer.py	Sun Oct 18 12:35:30 2020 +0200
@@ -7,7 +7,6 @@
 Module implementing the debug server.
 """
 
-
 import os
 
 from PyQt5.QtCore import pyqtSignal, pyqtSlot, QModelIndex
@@ -58,6 +57,8 @@
     @signal clientStatement(continue, debuggerId) emitted after an interactive
         command has been executed. The parameter is False to indicate that the
         command is complete and True if it needs more input.
+    @signal clientDisassembly(disassembly, debuggerId) emitted after the client
+        has sent a disassembly of the code raising an exception
     @signal clientException(exceptionType, exceptionMessage, stackTrace,
         debuggerId) emitted after an exception occured on the client side
     @signal clientSyntaxError(message, filename, linenumber, characternumber,
@@ -135,6 +136,7 @@
     clientVariables = pyqtSignal(int, list, str)
     clientVariable = pyqtSignal(int, list, str)
     clientStatement = pyqtSignal(bool, str)
+    clientDisassembly = pyqtSignal(dict, str)
     clientException = pyqtSignal(str, str, list, str)
     clientSyntaxError = pyqtSignal(str, str, int, int, str)
     clientSignal = pyqtSignal(str, str, int, str, str, str)
@@ -1435,6 +1437,19 @@
             debuggerId, scope, filterList, var, framenr,
             self.__maxVariableSize)
     
+    def remoteClientDisassembly(self, debuggerId):
+        """
+        Public method to ask the client for the latest traceback disassembly.
+        
+        @param debuggerId ID of the debugger backend
+        @type str
+        """
+        try:
+            self.debuggerInterface.remoteClientDisassembly(debuggerId)
+        except AttributeError:
+            # remote client doesn't support that
+            pass
+    
     def remoteClientSetFilter(self, debuggerId, scope, filterStr):
         """
         Public method to set a variables filter list.
@@ -1717,6 +1732,18 @@
         """
         self.clientStatement.emit(more, debuggerId)
     
+    def signalClientDisassembly(self, disassembly, debuggerId):
+        """
+        Public method to process the disassembly info from the client.
+        
+        @param disassembly dictionary containing the disassembly information
+        @type dict
+        @param debuggerId ID of the debugger backend
+        @type str
+        """
+        if self.running:
+            self.clientDisassembly.emit(disassembly, debuggerId)
+    
     def signalClientException(self, exceptionType, exceptionMessage,
                               stackTrace, debuggerId):
         """

eric ide

mercurial