GDBStub: Cleanly shut down on stop

This commit is contained in:
aldelaro5 2021-10-01 01:57:40 -04:00
parent b8395280d3
commit 657bb00c01
2 changed files with 17 additions and 1 deletions

View File

@ -393,6 +393,15 @@ static void CpuThread(const std::optional<std::string>& savestate_path, bool del
if (_CoreParameter.bFastmem)
EMM::UninstallExceptionHandler();
#ifdef USE_GDBSTUB
if (gdb_active())
{
gdb_deinit();
INFO_LOG_FMT(GDB_STUB, "Killed by CPU shutdown");
return;
}
#endif
}
static void FifoPlayerThread(const std::optional<std::string>& savestate_path,

View File

@ -689,6 +689,13 @@ void gdb_handle_exception(bool loop_until_continue)
{
while (gdb_active())
{
if (CPU::GetState() == CPU::State::PowerDown)
{
gdb_deinit();
INFO_LOG_FMT(GDB_STUB, "killed by power down");
return;
}
if (!gdb_data_available())
{
if (loop_until_continue)
@ -822,7 +829,7 @@ static void gdb_init_generic(int domain, const sockaddr* server_addr, socklen_t
INFO_LOG_FMT(GDB_STUB, "Client connected.");
#ifdef _WIN32
closesocket(tmpsock);
closesocket(s_tmpsock);
#else
close(tmpsock);
#endif