Commit Graph

71 Commits

Author SHA1 Message Date
3b364c5c16 HW/CPU: Refactor to class, move to System. 2023-03-08 12:23:37 +01:00
7cecb28bdf DolphinQt: Properly lock CPU before accessing emulated memory
This fixes a problem I was having where using frame advance with the
debugger open would frequently cause panic alerts about invalid addresses
due to the CPU thread changing MSR.DR while the host thread was trying
to access memory.

To aid in tracking down all the places where we weren't properly locking
the CPU, I've created a new type (in Core.h) that you have to pass as a
reference or pointer to functions that require running as the CPU thread.
2023-02-12 11:27:50 +01:00
be2d394b8c GDBStub: Avoid ppcState global. 2023-01-27 15:22:48 +01:00
c13ca271d8 PowerPC: Parametrize CTR macro. 2023-01-27 15:22:43 +01:00
0a343007cb PowerPC: Parametrize LR macro. 2023-01-27 15:22:43 +01:00
0f301829d2 PowerPC: Remove rPS macro. 2023-01-27 15:22:42 +01:00
8fccefa3aa PowerPC: Remove GPR macro. 2023-01-27 15:22:42 +01:00
ba1b624e1b PowerPC: Remove MSR macro. 2023-01-27 15:22:42 +01:00
4b6b8fa1ae PowerPC: Remove FPSCR macro. 2023-01-27 15:22:41 +01:00
be8d0b76ca PowerPC: Remove PC macro. 2023-01-27 15:22:41 +01:00
b207611c33 Merge pull request #11274 from TryTwo/PR_Conditional_BP_Add_Memory
Debugger: Add conditional breakpoints to memory BPs
2022-12-07 19:55:04 +01:00
a17fbe7c65 Expand conditional breakpoints to memory breakpoints 2022-12-04 11:25:33 -07:00
839db591d9 HW/Memmap: Refactor Memory to class, move to Core::System. 2022-12-03 13:27:02 +01:00
c9558ecb4c CoreTiming: Refactor to class. 2022-11-27 03:47:12 +01:00
a36a5c1308 CoreTiming: Pass Core::System to Events. 2022-11-06 17:54:58 +01:00
d2ebbfb91a GDB Stub: Make s_socket_context static 2022-02-13 14:38:59 -08:00
a720596771 GDB Stub: Fix typo mixing ppcState.spr and ppcState.sr
This resulted in an out-of-bounds array access, since sr is only 16 entries long and SPR_IBAT0U evaluates to 528.
2022-02-13 14:38:59 -08:00
1a92699455 Cast to int for enums that are not formattable 2022-01-13 11:11:08 -08:00
04a25818b2 Merge pull request #10330 from aldelaro5/gdb-stub-add-hostinfo
GDB Stub: add support for lldb's qHostInfo
2022-01-03 12:43:57 +01:00
d705a5fe9b GDB Stub: add support for lldb's qHostInfo 2022-01-02 19:58:31 -05:00
4ee20368f8 Merge pull request #10336 from aldelaro5/gdb-stub-fix-first-packet
GDB Stub: do not send a packet when we just connected
2022-01-03 01:40:16 +01:00
cbd1c4969d Merge pull request #10309 from aldelaro5/gdb-stub-fix-watchpoints
Gdb stub: fix watchpoints
2022-01-03 01:33:49 +01:00
27a2df410a Merge pull request #10308 from aldelaro5/gdb-stub-fix-unkown-pointer
GDB Stub: validate the address exists before reading/writting to it
2022-01-03 01:33:21 +01:00
4b131bf1ce GDB Stub: do not send a packet when we just connected 2022-01-02 04:35:55 -05:00
bfa675cb9d GDB Stub: validate the address exists before reading/writting to it 2022-01-01 22:00:13 -05:00
051197b83c GDB Stub: fix thread report requests
We are always reporting thread 1 existing and also fix an issue with a wrong memcmp size
2022-01-01 17:38:25 -05:00
9c784ca8ab GDB Stub: correctly define the breakpoint type values
Read only and Write only were reversed, now they are properly defined.
2022-01-01 17:18:32 -05:00
70b7e16d6c GDB Stub: properly check for wrong breakpoint type
Fix dolphin erroring out on requests to remove access watchpoints.
2022-01-01 17:18:30 -05:00
de91afaff3 Merge pull request #10298 from aldelaro5/gdb-stub-fix-registers
GDB Stub: Fix the id of the registers returned by p and P packets
2021-12-29 21:02:31 -05:00
b369d822b1 GDB Stub: add support for various query packets
These tends to get requested from either pure GDB or Ghidra. They reduce the verbosity of the communications. The QSupported packet is also important to implemnent for future proofing too.
2021-12-28 23:34:33 -05:00
beabd56ff8 GDB Stub: Fix the id of the registers returned by p and P packets
The stub was made with the assumption that the GDB architecture is rs6000:6000, but the closest is actually powerpc:750 which features much more SPR that the gekko supports, but it also has slightly different ID. This commit now assumes the more proper powerpc:750.
2021-12-28 19:27:34 -05:00
2025763420 Treewide: Adjust order of includes 2021-12-10 14:49:57 -08:00
6a4d607e09 GDBStub: Add log when break is sent 2021-10-21 08:26:50 -04:00
7ad586fe2c GDBStub: Make step force pausing even if play was pressed 2021-10-21 08:26:50 -04:00
2f7a3e59e5 GDBStub: upgrade some logs from debug to info 2021-10-21 08:26:50 -04:00
1b92f81379 GDBStub: Refactor the whole code 2021-10-21 08:26:50 -04:00
657bb00c01 GDBStub: Cleanly shut down on stop 2021-10-21 08:26:42 -04:00
b8395280d3 GDBStub: Correctly inform the CPU thread if we are stepping 2021-10-21 08:26:28 -04:00
b9b7c4ac80 GDBStub: Add support for the T command 2021-10-21 08:26:28 -04:00
7d3ea4c3a1 GDBStub: rework the breakpoint and the control logic 2021-10-21 08:26:28 -04:00
e03ddc2116 Let the GDB stub listen for commands while running
This is needed to send ctrl+C signals while the CPU thread is running.
2021-10-21 08:26:16 -04:00
e149ad4f0a treewide: convert GPLv2+ license info to SPDX tags
SPDX standardizes how source code conveys its copyright and licensing
information. See https://spdx.github.io/spdx-spec/1-rationale/ . SPDX
tags are adopted in many large projects, including things like the Linux
kernel.
2021-07-05 04:35:56 +02:00
e4f74bea42 Core: Use RAII winsock object to cleanly create and destroy WSA in gdb-stub 2021-03-04 13:47:32 -06:00
f0a6244768 msbuild: enable USE_GDBSTUB
this does nothing about it actually being usable
2021-01-09 22:26:55 -08:00
ae187818f5 PowerPC: Fix GDBStub build 2020-12-25 01:15:31 +01:00
978e5469af Core: Remove commented out logs
Commented out logs shouldn't be kept around, since it makes performing
renames and migrations harder, as tooling generally doesn't inspect
comments.
2020-11-26 07:49:37 -05:00
ef75e9acd8 Core: Convert logging over to fmt pt.5
Converts the remaining PowerPC code over to fmt-capable logging.

Now, all that's left to convert over are the lingering remnants within
the frontend code.
2020-11-25 13:23:48 -05:00
da87638ea2 Fix GDB stub 2019-07-07 05:17:33 +01:00
e3075f3834 PowerPC: Factor out CR helpers into POD class 2019-03-08 20:42:09 +01:00
26a9ab5b19 Use GDB_SIG* enum instead of the system's macros, as the latter mightn't be included or might have a different value. 2018-08-10 16:09:27 +02:00