Commit Graph

323 Commits

Author SHA1 Message Date
Vicki Pfau bfc52cd2f0 All: Fix whitespace errors 2024-09-30 17:24:04 -07:00
Vicki Pfau e4e455dd5e ARM: Add framework for coprocessor support 2024-06-02 17:30:17 -07:00
Vicki Pfau 0e441527c8 CMake: Rename USE_DEBUGGERS and USE_GDB_STUB to ENABLE_DEBUGGERS and ENABLE_GDB_STUB
ENABLE flags are for optional features, USE flags are for optional dependencies
2024-04-08 03:08:10 -07:00
Vicki Pfau 131b983894 Debugger: Move platform-specific flag lookup to mDebuggerPlatform 2023-09-15 23:36:03 -07:00
Vicki Pfau d55a13c9ba Debugger: Initial memory access logger support 2023-09-15 23:36:03 -07:00
Vicki Pfau 9c673f527d ARM, SM83: Check for events both before and after single stepping 2023-09-15 23:36:03 -07:00
Vicki Pfau 7015a104be Debugger: Clean up layering violation 2023-09-15 22:08:12 -07:00
Vicki Pfau f96ba8c1aa ARM: Fix warning 2023-08-10 11:58:05 -07:00
Vicki Pfau 00e62f231a ARM: Fake bpkt instruction should take no cycles (fixes #2551) 2023-07-05 22:10:33 -07:00
Vicki Pfau 491879da95 ARM: Remove obsolete force-alignment in `bx pc` (fixes #2964) 2023-06-26 16:14:25 -07:00
Vicki Pfau c1421afccb Debugger: Support calling into multiple debuggers per watchpoint 2023-05-29 00:53:53 -07:00
Vicki Pfau 7d6a8a86a8 ARM Debugger: Fix unitialized stack variable 2023-05-09 22:13:09 -07:00
Vicki Pfau 8efb3fb5df Debugger: Make created debug items, e.g. breakpoints, owned by modules 2023-05-09 21:17:46 -07:00
Vicki Pfau b21a6158f4 Debugger: Break out debugger functionality into modules 2023-05-09 21:17:46 -07:00
bigfarts 42f7876731 Add range watchpoints.
These are accessible via the following new CLI debugger commands:

 - rw: watchr minAddr maxAddr [cond]
 - r: watchr/r minAddr maxAddr [cond]
 - w: watchr/w minAddr maxAddr [cond]
 - c: watchr/c minAddr maxAddr [cond]

This also makes all watchpoints range watchpoints under the hood.

Preliminary benchmark results:

Time taken to run 10000 frames of Megaman Battle Network 1 (U) with a write watchpoint set at 0x02000000 in milliseconds, 10 runs each:

control (no watchpoint):
[4184, 4185, 4197, 4207, 4220, 4178, 4304, 4226, 4234, 4292]
mean = 4223, stdev = 43.95

old (single address watchpoint):
[4743, 4685, 4679, 4670, 4782, 4704, 4698, 4875, 4746, 4718]
mean = 4730, stdev = 61.67

new (range watchpoint):
[4683, 4691, 4693, 4706, 4782, 4674, 4746, 4768, 4770, 4776]
mean = 4728, stdev = 43.36
2022-10-16 02:10:38 -07:00
Vicki Pfau 368ad24516 Debugger: Fix multiple conditional watchpoints at the same address 2022-08-13 03:41:55 -07:00
Vicki Pfau 5db7d95aa2 ARM: Fix some disassembly 2022-07-17 15:56:56 -07:00
Vicki Pfau 84e60e99f4 All: More warning burndown 2022-06-30 05:55:56 -07:00
Vicki Pfau 0979380c74 Debugger: Shaving recursive yaks takes a lot of work 2022-06-28 18:43:15 -07:00
Vicki Pfau 11837ffc15 ARM: Disassemble Thumb mov pseudo-instruction properly 2022-06-05 20:59:30 -07:00
Vicki Pfau a7710ed8d5 ARM: Fix warning spew 2022-05-27 00:42:11 -07:00
Vicki Pfau 87738ba8f3 Core: Migrate register access API from debugger into core 2022-05-16 15:58:50 -07:00
Vicki Pfau 53c7f6f50a ARM Decoder: Fix decoding of lsl r0 (fixes #2349) 2021-11-09 15:15:18 -08:00
Vicki Pfau 86fe869087 ARM7: Fix unsigned multiply timing 2021-09-20 15:59:28 -07:00
Vicki Pfau e17357a50a ARM Debugger: Fix disassembly alignment (fixes #2204) 2021-06-04 21:01:07 -07:00
Vicki Pfau 144a05a66e ARM: Fix LDM^ with empty rlist (fixes #2127) 2021-04-15 19:17:15 -07:00
Vicki Pfau 74fd2c3c0b ARM: Use mask lookup table for condition codes 2021-03-05 23:38:44 -08:00
Vicki Pfau 49ec1ed702 ARM: Fix long and accumulate multiply timing 2021-02-15 23:40:49 -08:00
Vicki Pfau 70f581162f ARM Debugger: Only break on exceptions when stack call tracing is on 2020-12-13 00:06:06 -08:00
Vicki Pfau fbba3efb34 ARM: Fix long multiply-and-accumulate register write order (fixes #1956) 2020-11-28 21:29:00 -08:00
Vicki Pfau b169e6b0df ARM: Fix non-debugger build 2020-11-25 20:40:20 -08:00
Vicki Pfau 1a694b0b56 Debugger: Fix change watchpoints (fixes #1947) 2020-11-24 01:41:41 -08:00
Vicki Pfau e9b5190369 ARM: Move shifter call to avoid stack usage 2020-11-01 19:00:49 -08:00
Vicki Pfau a53b01be00 ARM: Fix Addressing mode 1 shifter on rs == pc (fixes #1926) 2020-11-01 02:29:58 -08:00
Vicki Pfau a2cd8f6cce ARM Decoder: Fix decoding pre-indexed writeback instructions (fixes #1915) 2020-10-24 15:46:11 -07:00
Vicki Pfau c134c6cae1 ARM: Don't force passed opcodes to be truncated 2020-10-18 01:51:54 -07:00
Vicki Pfau c7a1475981 ARM Decoder: Only print PC-relative register contents in loads (fixes #1908) 2020-10-12 18:08:13 -07:00
Vicki Pfau 67d3eed8fb ARM Decoder: Revamp load/store interface, readability cleanup 2020-10-12 18:07:11 -07:00
Vicki Pfau 87ec3f3d4a ARM Debugger: Disassembler now resolves addresses to symbol names 2020-09-07 15:55:51 -07:00
Adam Higerd daf2193894 Debugger: parse memory operations correctly 2020-08-10 22:19:54 -07:00
Adam Higerd 07667955f6 ARM: Expose ARMSelectBank API 2020-08-10 22:19:54 -07:00
Adam Higerd e68d3ed00f Stack traces: fix tracing of indirect jumps and interrupt handlers 2020-08-10 22:19:54 -07:00
Vicki Pfau 8cba417141 ARM: Fix warnings 2020-08-03 20:31:15 -07:00
Adam Higerd 8ee4b3c046 Stack traces: add detection for other calling conventions and stack manipulation 2020-07-30 20:20:51 -07:00
Vicki Pfau c3259da78d ARM: Fix decoder detection of branches with ALU and LDR instrctions 2020-07-29 17:28:57 -07:00
Adam Higerd fb267a32ff Stack trace: coding style cleanup 2020-07-27 22:30:43 -05:00
Adam Higerd 1a9ead1e25 Stack trace: use popcount function instead of inline loop 2020-07-27 22:06:44 -05:00
Adam Higerd fec10dac32 Stack trace: remove debugging code 2020-07-27 21:42:53 -05:00
Adam Higerd 80f78f1682 Stack trace: finish implementation and debug 2020-07-27 21:26:55 -05:00
Adam Higerd 238c68f080 Stack trace: WIP backtrace implementation 2020-07-27 21:23:34 -05:00