Commit Graph

53 Commits

Author SHA1 Message Date
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 7015a104be Debugger: Clean up layering violation 2023-09-15 22:08:12 -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 0979380c74 Debugger: Shaving recursive yaks takes a lot of work 2022-06-28 18:43:15 -07:00
Vicki Pfau 87738ba8f3 Core: Migrate register access API from debugger into core 2022-05-16 15:58:50 -07:00
Vicki Pfau e17357a50a ARM Debugger: Fix disassembly alignment (fixes #2204) 2021-06-04 21:01:07 -07: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 1a694b0b56 Debugger: Fix change watchpoints (fixes #1947) 2020-11-24 01:41:41 -08: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 e68d3ed00f Stack traces: fix tracing of indirect jumps and interrupt handlers 2020-08-10 22:19:54 -07:00
Adam Higerd 8ee4b3c046 Stack traces: add detection for other calling conventions and stack manipulation 2020-07-30 20:20:51 -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
Adam Higerd d0edc7dc76 Stack trace: add tracing to ARM debugger 2020-07-27 21:23:34 -05:00
Vicki Pfau 7f64f8cf3b Debugger: Keep track of global cycle count 2020-05-30 18:01:15 -07:00
Vicki Pfau ff1033b801 ARM Debugger: Clear low bit on breakpoint addresses (fixes #1764) 2020-05-25 00:58:40 -07:00
Vicki Pfau dab12cf5c6 All: Fix several warnings 2020-01-16 19:54:41 -08:00
Vicki Pfau bb1ce789d2 Debugger: Print break-/watchpoint ID when breaking in CLI 2019-12-21 14:05:22 -08:00
Vicki Pfau a6fc606a2d Debugger: Separate aliases from main commands 2019-12-21 13:52:16 -08:00
Vicki Pfau 1deff07aa1 Debugger: Print breakpoint/watchpoint number when inserting 2019-04-28 13:37:51 -07:00
Vicki Pfau 0c9802e4da Debugger: Revamp breakpoint/watchpoint API, add listing 2019-01-31 22:52:27 -08:00
Vicki Pfau ff2a0f8519 Debugger: Readability improvements (fixes #1238) 2018-11-21 17:30:41 -05:00
Vicki Pfau 4d383b129d ARM: De-macro-ize ARM/Thumb PC write routines 2018-10-12 21:09:49 -07:00
Vicki Pfau ee3969ad02 Debugger: Fix long disassemblies 2018-05-12 09:48:04 -07:00
Vicki Pfau 0131a196d1 Debugger: Conditional watchpoints 2017-12-29 16:38:46 -05:00
Vicki Pfau 0383c82b46 Debugger: Conditional breakpoints 2017-12-29 16:11:40 -05:00
Vicki Pfau f3ea4caf84 All: Support building on PPC Mac 2017-12-23 16:23:51 -08:00
Vicki Pfau d484c98eba Debugger: Add get/set register functions 2017-10-13 00:29:38 -07:00
Vicki Pfau a2447d09e3 Debugger: Redo argument handling 2017-10-13 00:28:35 -07:00
Vicki Pfau 70a6622a5c Debugger: Execution tracing 2017-06-11 09:26:26 -07:00
Vicki Pfau 9c144266ec LR35902: Add watchpoints 2017-06-02 19:15:13 -07:00
Vicki Pfau fcc8b5c805 Debugger: Add segment breakpoints 2017-05-22 22:19:46 -07:00
Vicki Pfau 1e7a62fbb3 Revert "ARM: Overhaul PSR access"
This reverts commit 37f5feb713 and fixup commits.
2017-01-31 11:46:24 -08:00
Vicki Pfau 37f5feb713 ARM: Overhaul PSR access 2017-01-28 11:11:59 -08:00
Jeffrey Pfau fa884d071e All: Migrate includes to separate directory 2016-12-30 21:25:07 -08:00
Jeffrey Pfau 6d898542c7 Merge branch 'feature/python-bindings' 2016-12-29 01:23:31 -08:00
Jeffrey Pfau 2f1cb61d01 All: Add C++ header guards 2016-12-26 21:01:55 -08:00
Jeffrey Pfau 99a85aaf3a Debugger: Fix build 2016-12-25 15:22:40 -08:00
Jeffrey Pfau a0d223eef7 Debugger: Modularize CLI debugger 2016-10-25 21:12:35 -07:00
Jeffrey Pfau 805ef9efdd ARM Debugger: Fix clearing software breakpoints 2016-09-17 12:41:31 -07:00