summaryrefslogtreecommitdiff
path: root/src/core/gdbstub/gdbstub.cpp
diff options
context:
space:
mode:
authorGravatar MerryMage2020-04-06 21:24:54 +0100
committerGravatar FearlessTobi2020-04-17 05:41:43 +0200
commit1cc9507bc55059ae82d525f245eeb3b3de873223 (patch)
tree8ecacedf1228297f6db9856f02abb65c38e87af7 /src/core/gdbstub/gdbstub.cpp
parentMerge pull request #3671 from lioncash/switch (diff)
downloadyuzu-1cc9507bc55059ae82d525f245eeb3b3de873223.tar.gz
yuzu-1cc9507bc55059ae82d525f245eeb3b3de873223.tar.xz
yuzu-1cc9507bc55059ae82d525f245eeb3b3de873223.zip
gdbstub: Fix some gdbstub jankiness
1. Ensure that register information available to gdbstub is most up-to-date. 2. There's no reason to check for current_thread == thread when emitting a trap. Doing this results in random hangs whenever a step happens upon a thread switch.
Diffstat (limited to 'src/core/gdbstub/gdbstub.cpp')
-rw-r--r--src/core/gdbstub/gdbstub.cpp7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/core/gdbstub/gdbstub.cpp b/src/core/gdbstub/gdbstub.cpp
index 6d15aeed9..6f51895b9 100644
--- a/src/core/gdbstub/gdbstub.cpp
+++ b/src/core/gdbstub/gdbstub.cpp
@@ -1389,10 +1389,9 @@ void SendTrap(Kernel::Thread* thread, int trap) {
1389 return; 1389 return;
1390 } 1390 }
1391 1391
1392 if (!halt_loop || current_thread == thread) { 1392 current_thread = thread;
1393 current_thread = thread; 1393 SendSignal(thread, trap);
1394 SendSignal(thread, trap); 1394
1395 }
1396 halt_loop = true; 1395 halt_loop = true;
1397 send_trap = false; 1396 send_trap = false;
1398} 1397}