aboutsummaryrefslogtreecommitdiff
path: root/src/core/gdbstub/gdbstub.cpp
diff options
context:
space:
mode:
authorMerryMage <MerryMage@users.noreply.github.com>2020-04-06 21:24:54 +0100
committerFearlessTobi <thm.frey@gmail.com>2020-04-17 05:41:43 +0200
commit1cc9507bc55059ae82d525f245eeb3b3de873223 (patch)
tree8ecacedf1228297f6db9856f02abb65c38e87af7 /src/core/gdbstub/gdbstub.cpp
parent86f9c9aa1c38c8fd52963209623ec37e895803d3 (diff)
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 6d15aeed9c..6f51895b96 100644
--- a/src/core/gdbstub/gdbstub.cpp
+++ b/src/core/gdbstub/gdbstub.cpp
@@ -1389,10 +1389,9 @@ void SendTrap(Kernel::Thread* thread, int trap) {
return;
}
- if (!halt_loop || current_thread == thread) {
- current_thread = thread;
- SendSignal(thread, trap);
- }
+ current_thread = thread;
+ SendSignal(thread, trap);
+
halt_loop = true;
send_trap = false;
}