Skip to content
This repository was archived by the owner on Aug 28, 2020. It is now read-only.

Commit 2f18d7f

Browse files
committed
Merge pull request #121 from robertbasic/feature/do-not-open-index-file-if-not-needed
Feature/do not open index file if not needed. Resolves #116
2 parents 014924c + 12eb338 commit 2f18d7f

File tree

3 files changed

+51
-49
lines changed

3 files changed

+51
-49
lines changed

pugdebug/debugger.py

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,11 @@ class PugdebugDebugger(QObject):
2929
current_line = 0
3030

3131
debugging_started_signal = pyqtSignal()
32+
debugging_post_start_signal = pyqtSignal()
3233
debugging_stopped_signal = pyqtSignal()
3334
step_command_signal = pyqtSignal()
3435
got_all_variables_signal = pyqtSignal(object)
3536
got_stacktraces_signal = pyqtSignal(object)
36-
init_breakpoints_set = pyqtSignal()
3737
breakpoint_removed_signal = pyqtSignal(int)
3838
breakpoints_listed_signal = pyqtSignal(list)
3939
expression_evaluated_signal = pyqtSignal(int, dict)
@@ -78,6 +78,9 @@ def connect_connection_signals(self, connection):
7878
"""
7979

8080
# Stop/detach signals
81+
connection.post_start_signal.connect(
82+
self.handle_post_start
83+
)
8184
connection.stopped_signal.connect(
8285
self.handle_stopped
8386
)
@@ -101,9 +104,6 @@ def connect_connection_signals(self, connection):
101104
)
102105

103106
# Breakpoints signals
104-
connection.set_init_breakpoints_signal.connect(
105-
self.handle_set_init_breakpoint
106-
)
107107
connection.set_breakpoint_signal.connect(
108108
self.handle_set_breakpoint
109109
)
@@ -194,6 +194,12 @@ def start_new_connection(self):
194194

195195
self.debugging_started_signal.emit()
196196

197+
def post_start_command(self, post_start_data):
198+
self.current_connection.post_start_command(post_start_data)
199+
200+
def handle_post_start(self):
201+
self.debugging_post_start_signal.emit()
202+
197203
def handle_server_stopped(self):
198204
if not self.is_connected():
199205
self.cleanup()
@@ -268,21 +274,13 @@ def handle_got_stacktraces(self, stacktraces):
268274
"""
269275
self.got_stacktraces_signal.emit(stacktraces)
270276

271-
def set_init_breakpoints(self, breakpoints):
272-
self.current_connection.set_init_breakpoints(breakpoints)
273-
274277
def set_breakpoint(self, breakpoint):
275278
self.current_connection.set_breakpoint(breakpoint)
276279

277280
def handle_set_breakpoint(self, successful):
278281
if successful:
279282
self.list_breakpoints()
280283

281-
def handle_set_init_breakpoint(self, successful):
282-
if successful:
283-
self.list_breakpoints()
284-
self.init_breakpoints_set.emit()
285-
286284
def remove_breakpoint(self, breakpoint_id):
287285
self.current_connection.remove_breakpoint(breakpoint_id)
288286

pugdebug/pugdebug.py

Lines changed: 17 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,9 @@ def connect_debugger_signals(self):
169169
self.debugger.debugging_started_signal.connect(
170170
self.handle_debugging_started
171171
)
172+
self.debugger.debugging_post_start_signal.connect(
173+
self.handle_debugging_post_start
174+
)
172175
self.debugger.debugging_stopped_signal.connect(
173176
self.handle_debugging_stopped
174177
)
@@ -187,9 +190,6 @@ def connect_debugger_signals(self):
187190
)
188191

189192
# Breakpoints signals
190-
self.debugger.init_breakpoints_set.connect(
191-
self.handle_init_breakpoints_set
192-
)
193193
self.debugger.breakpoint_removed_signal.connect(
194194
self.handle_breakpoint_removed
195195
)
@@ -454,9 +454,21 @@ def handle_debugging_started(self):
454454

455455
self.main_window.toggle_actions(True)
456456

457-
self.set_init_breakpoints(self.init_breakpoints)
457+
post_start_data = {
458+
'init_breakpoints': self.init_breakpoints
459+
}
460+
self.debugger.post_start_command(post_start_data)
461+
462+
def handle_debugging_post_start(self):
463+
"""Handle post start debugging
458464
459-
self.open_document(self.debugger.get_index_file())
465+
If the code should not break at first line, run the debugger.
466+
"""
467+
break_at_first_line = int(get_setting('debugger/break_at_first_line'))
468+
if break_at_first_line == 0:
469+
self.run_debug()
470+
else:
471+
self.step_into()
460472

461473
def stop_debug(self):
462474
"""Stop a debugging session
@@ -572,17 +584,6 @@ def handle_got_stacktraces(self, stacktraces):
572584
"""
573585
self.stacktrace_viewer.set_stacktraces(stacktraces)
574586

575-
def set_init_breakpoints(self, breakpoints):
576-
"""Set initial breakpoints
577-
578-
Initial breakpoints are the breakpoints that are set before a debugging
579-
session has been started.
580-
581-
Set initial breakpoints on the debugger. This should be called only
582-
right after a new debugging session has been started.
583-
"""
584-
self.debugger.set_init_breakpoints(breakpoints)
585-
586587
def set_breakpoint(self, breakpoint):
587588
"""Set a breakpoint
588589
@@ -667,17 +668,6 @@ def remove_stale_breakpoints(self, path):
667668

668669
self.breakpoint_viewer.set_breakpoints(breakpoints)
669670

670-
def handle_init_breakpoints_set(self):
671-
"""Handle when init breakpoints get set
672-
673-
If the code should not break at first line, run the debugger.
674-
"""
675-
break_at_first_line = int(get_setting('debugger/break_at_first_line'))
676-
if break_at_first_line == 0:
677-
self.run_debug()
678-
else:
679-
self.step_into()
680-
681671
def handle_breakpoint_removed(self, breakpoint_id):
682672
"""Handle when a breakpoint gets removed
683673

pugdebug/server.py

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -107,12 +107,12 @@ class PugdebugServerConnection(QThread):
107107

108108
xdebug_encoding = 'iso-8859-1'
109109

110+
post_start_signal = pyqtSignal()
110111
stopped_signal = pyqtSignal()
111112
detached_signal = pyqtSignal()
112113
stepped_signal = pyqtSignal(dict)
113114
got_variables_signal = pyqtSignal(object)
114115
got_stacktraces_signal = pyqtSignal(object)
115-
set_init_breakpoints_signal = pyqtSignal(bool)
116116
set_breakpoint_signal = pyqtSignal(bool)
117117
removed_breakpoint_signal = pyqtSignal(object)
118118
listed_breakpoints_signal = pyqtSignal(list)
@@ -182,7 +182,14 @@ def run(self):
182182
action = self.action
183183

184184
try:
185-
if action == 'stop':
185+
if action == 'post_start':
186+
response = self.__post_start(data)
187+
188+
self.listed_breakpoints_signal.emit(
189+
response['breakpoints']
190+
)
191+
self.post_start_signal.emit()
192+
elif action == 'stop':
186193
response = self.__stop()
187194
self.stopped_signal.emit()
188195
elif action == 'detach':
@@ -208,9 +215,6 @@ def run(self):
208215
self.expressions_evaluated_signal.emit(
209216
response['expressions']
210217
)
211-
elif action == 'init_breakpoint_set':
212-
response = self.__set_init_breakpoints(data)
213-
self.set_init_breakpoints_signal.emit(response)
214218
elif action == 'breakpoint_set':
215219
response = self.__set_breakpoint(data)
216220
self.set_breakpoint_signal.emit(response)
@@ -234,6 +238,11 @@ def disconnect(self):
234238
if self.socket is not None:
235239
self.socket.close()
236240

241+
def post_start_command(self, post_start_data):
242+
self.data = post_start_data
243+
self.action = 'post_start'
244+
self.start()
245+
237246
def stop(self):
238247
self.action = 'stop'
239248
self.start()
@@ -263,11 +272,6 @@ def post_step_command(self, post_step_data):
263272
self.action = 'post_step'
264273
self.start()
265274

266-
def set_init_breakpoints(self, breakpoints):
267-
self.action = 'init_breakpoint_set'
268-
self.data = breakpoints
269-
self.start()
270-
271275
def set_breakpoint(self, breakpoint):
272276
self.action = 'breakpoint_set'
273277
self.data = breakpoint
@@ -287,6 +291,16 @@ def evaluate_expression(self, index, expression):
287291
self.data = (index, expression)
288292
self.start()
289293

294+
def __post_start(self, data):
295+
post_start_response = {
296+
'init_breakpoints': self.__set_init_breakpoints(
297+
data['init_breakpoints']
298+
),
299+
'breakpoints': self.__list_breakpoints()
300+
}
301+
302+
return post_start_response
303+
290304
def __stop(self):
291305
command = 'stop -i %d' % self.__get_transaction_id()
292306
self.__send_command(command)

0 commit comments

Comments
 (0)