Skip to content

Commit 89af0b9

Browse files
committed
gdbserver: server listening callback changes.
- Only subscribe to listening events for the first gdbserver. This prevents duplicate echo messages from being printed on multicore devices. - Fix server listening callback for deprecated pyocd-gdbserver.
1 parent 0bb30fd commit 89af0b9

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

pyocd/__main__.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -774,7 +774,10 @@ def do_gdbserver(self):
774774
if core_number not in core_list:
775775
continue
776776
gdb = GDBServer(session, core=core_number)
777-
session.subscribe(self._gdbserver_listening_cb, GDBServer.GDBSERVER_START_LISTENING_EVENT, gdb)
777+
# Only subscribe to the server for the first core, so echo messages aren't printed
778+
# multiple times.
779+
if not gdbs:
780+
session.subscribe(self._gdbserver_listening_cb, GDBServer.GDBSERVER_START_LISTENING_EVENT, gdb)
778781
session.gdbservers[core_number] = gdb
779782
gdbs.append(gdb)
780783
gdb.start()

pyocd/tools/gdb_server.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ def process_commands(self, commands):
173173
except IndexError:
174174
pass
175175

176-
def server_listening(self, server):
176+
def server_listening(self, note):
177177
if self.echo_msg is not None:
178178
print(self.echo_msg, file=sys.stderr)
179179
sys.stderr.flush()
@@ -294,9 +294,11 @@ def run(self, args=None):
294294
if isinstance(session.board.target.cores[core_number], GenericMemAPTarget):
295295
continue
296296

297-
gdb = GDBServer(session,
298-
core=core_number,
299-
server_listening_callback=self.server_listening)
297+
gdb = GDBServer(session, core=core_number)
298+
# Only subscribe to the server for the first core, so echo messages aren't printed
299+
# multiple times.
300+
if not gdbs:
301+
session.subscribe(self.server_listening, GDBServer.GDBSERVER_START_LISTENING_EVENT, gdb)
300302
session.gdbservers[core_number] = gdb
301303
gdbs.append(gdb)
302304
gdb.start()

0 commit comments

Comments
 (0)