From 1bb2af84ce9e0206de4cc86d724c9869f944a7b0 Mon Sep 17 00:00:00 2001 From: GreemDev Date: Tue, 21 Oct 2025 22:15:14 -0500 Subject: [PATCH] gdb: Catch SocketException from TcpListener#Start --- src/Ryujinx.HLE/Debugger/Debugger.MainThread.cs | 15 +++++++++++++-- src/Ryujinx.HLE/Debugger/Debugger.cs | 2 +- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/Ryujinx.HLE/Debugger/Debugger.MainThread.cs b/src/Ryujinx.HLE/Debugger/Debugger.MainThread.cs index 9ad80a58c..485e032fc 100644 --- a/src/Ryujinx.HLE/Debugger/Debugger.MainThread.cs +++ b/src/Ryujinx.HLE/Debugger/Debugger.MainThread.cs @@ -1,5 +1,6 @@ using Ryujinx.Common.Logging; using Ryujinx.HLE.Debugger.Gdb; +using System; using System.IO; using System.Net; using System.Net.Sockets; @@ -9,11 +10,21 @@ namespace Ryujinx.HLE.Debugger { public partial class Debugger { - private void DebuggerThreadMain() + private void MainLoop() { IPEndPoint endpoint = new(IPAddress.Any, GdbStubPort); _listenerSocket = new TcpListener(endpoint); - _listenerSocket.Start(); + + try + { + _listenerSocket.Start(); + } + catch (SocketException se) + { + Logger.Notice.Print(LogClass.GdbStub, $"Failed to create TCP client for GDB client: {Enum.GetName(se.SocketErrorCode)}"); + return; + } + Logger.Notice.Print(LogClass.GdbStub, $"Currently waiting on {endpoint} for GDB client"); while (!_shuttingDown) diff --git a/src/Ryujinx.HLE/Debugger/Debugger.cs b/src/Ryujinx.HLE/Debugger/Debugger.cs index 567e97071..ca6f39ec2 100644 --- a/src/Ryujinx.HLE/Debugger/Debugger.cs +++ b/src/Ryujinx.HLE/Debugger/Debugger.cs @@ -45,7 +45,7 @@ namespace Ryujinx.HLE.Debugger ARMeilleure.Optimizations.EnableDebugging = true; - _debuggerThread = new Thread(DebuggerThreadMain); + _debuggerThread = new Thread(MainLoop); _debuggerThread.Start(); _messageHandlerThread = new Thread(MessageHandlerMain); _messageHandlerThread.Start();