@@ -119,6 +119,8 @@ class PugdebugServerConnection(QThread):
119119 expression_evaluated_signal = pyqtSignal (int , dict )
120120 expressions_evaluated_signal = pyqtSignal (list )
121121
122+ connection_error_signal = pyqtSignal (str , str )
123+
122124 def __init__ (self , socket ):
123125 super (PugdebugServerConnection , self ).__init__ ()
124126
@@ -179,48 +181,52 @@ def run(self):
179181 data = self .data
180182 action = self .action
181183
182- if action == 'stop' :
183- response = self .__stop ()
184- self .stopped_signal .emit ()
185- elif action == 'detach' :
186- response = self .__detach ()
187- self .detached_signal .emit ()
188- elif action == 'step_run' :
189- response = self .__step_run ()
190- self .stepped_signal .emit (response )
191- elif action == 'step_into' :
192- response = self .__step_into ()
193- self .stepped_signal .emit (response )
194- elif action == 'step_over' :
195- response = self .__step_over ()
196- self .stepped_signal .emit (response )
197- elif action == 'step_out' :
198- response = self .__step_out ()
199- self .stepped_signal .emit (response )
200- elif action == 'post_step' :
201- response = self .__post_step (data )
202-
203- self .got_variables_signal .emit (response ['variables' ])
204- self .got_stacktraces_signal .emit (response ['stacktraces' ])
205- self .expressions_evaluated_signal .emit (
206- response ['expressions' ]
207- )
208- elif action == 'init_breakpoint_set' :
209- response = self .__set_init_breakpoints (data )
210- self .set_init_breakpoints_signal .emit (response )
211- elif action == 'breakpoint_set' :
212- response = self .__set_breakpoint (data )
213- self .set_breakpoint_signal .emit (response )
214- elif action == 'breakpoint_remove' :
215- response = self .__remove_breakpoint (data )
216- self .removed_breakpoint_signal .emit (response )
217- elif action == 'breakpoint_list' :
218- response = self .__list_breakpoints ()
219- self .listed_breakpoints_signal .emit (response )
220- elif action == 'evaluate_expression' :
221- (index , expression ) = data
222- response = self .__evaluate_expression (expression )
223- self .expression_evaluated_signal .emit (index , response )
184+ try :
185+ if action == 'stop' :
186+ response = self .__stop ()
187+ self .stopped_signal .emit ()
188+ elif action == 'detach' :
189+ response = self .__detach ()
190+ self .detached_signal .emit ()
191+ elif action == 'step_run' :
192+ response = self .__step_run ()
193+ self .stepped_signal .emit (response )
194+ elif action == 'step_into' :
195+ response = self .__step_into ()
196+ self .stepped_signal .emit (response )
197+ elif action == 'step_over' :
198+ response = self .__step_over ()
199+ self .stepped_signal .emit (response )
200+ elif action == 'step_out' :
201+ response = self .__step_out ()
202+ self .stepped_signal .emit (response )
203+ elif action == 'post_step' :
204+ response = self .__post_step (data )
205+
206+ self .got_variables_signal .emit (response ['variables' ])
207+ self .got_stacktraces_signal .emit (response ['stacktraces' ])
208+ self .expressions_evaluated_signal .emit (
209+ response ['expressions' ]
210+ )
211+ elif action == 'init_breakpoint_set' :
212+ response = self .__set_init_breakpoints (data )
213+ self .set_init_breakpoints_signal .emit (response )
214+ elif action == 'breakpoint_set' :
215+ response = self .__set_breakpoint (data )
216+ self .set_breakpoint_signal .emit (response )
217+ elif action == 'breakpoint_remove' :
218+ response = self .__remove_breakpoint (data )
219+ self .removed_breakpoint_signal .emit (response )
220+ elif action == 'breakpoint_list' :
221+ response = self .__list_breakpoints ()
222+ self .listed_breakpoints_signal .emit (response )
223+ elif action == 'evaluate_expression' :
224+ (index , expression ) = data
225+ response = self .__evaluate_expression (expression )
226+ self .expression_evaluated_signal .emit (index , response )
227+ except OSError as error :
228+ self .disconnect ()
229+ self .connection_error_signal .emit (action , error .strerror )
224230
225231 self .mutex .unlock ()
226232
0 commit comments