diff options
| author | 2022-05-30 19:35:01 -0400 | |
|---|---|---|
| committer | 2022-06-01 00:01:25 -0400 | |
| commit | fb4b3c127f7c390358d7f4cadd2f58de116fec48 (patch) | |
| tree | e2588a859d364a32be0cd9e0401a345c6492d1a7 /src/core/core.h | |
| parent | Merge pull request #8368 from german77/seventimes (diff) | |
| download | yuzu-fb4b3c127f7c390358d7f4cadd2f58de116fec48.tar.gz yuzu-fb4b3c127f7c390358d7f4cadd2f58de116fec48.tar.xz yuzu-fb4b3c127f7c390358d7f4cadd2f58de116fec48.zip | |
core/debugger: Implement new GDB stub debugger
Diffstat (limited to 'src/core/core.h')
| -rw-r--r-- | src/core/core.h | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/src/core/core.h b/src/core/core.h index 4a0c7dc84..94477206e 100644 --- a/src/core/core.h +++ b/src/core/core.h | |||
| @@ -97,6 +97,7 @@ namespace Core { | |||
| 97 | 97 | ||
| 98 | class ARM_Interface; | 98 | class ARM_Interface; |
| 99 | class CpuManager; | 99 | class CpuManager; |
| 100 | class Debugger; | ||
| 100 | class DeviceMemory; | 101 | class DeviceMemory; |
| 101 | class ExclusiveMonitor; | 102 | class ExclusiveMonitor; |
| 102 | class SpeedLimiter; | 103 | class SpeedLimiter; |
| @@ -148,12 +149,6 @@ public: | |||
| 148 | [[nodiscard]] SystemResultStatus Pause(); | 149 | [[nodiscard]] SystemResultStatus Pause(); |
| 149 | 150 | ||
| 150 | /** | 151 | /** |
| 151 | * Step the CPU one instruction | ||
| 152 | * @return Result status, indicating whether or not the operation succeeded. | ||
| 153 | */ | ||
| 154 | [[nodiscard]] SystemResultStatus SingleStep(); | ||
| 155 | |||
| 156 | /** | ||
| 157 | * Invalidate the CPU instruction caches | 152 | * Invalidate the CPU instruction caches |
| 158 | * This function should only be used by GDB Stub to support breakpoints, memory updates and | 153 | * This function should only be used by GDB Stub to support breakpoints, memory updates and |
| 159 | * step/continue commands. | 154 | * step/continue commands. |
| @@ -169,6 +164,11 @@ public: | |||
| 169 | void UnstallCPU(); | 164 | void UnstallCPU(); |
| 170 | 165 | ||
| 171 | /** | 166 | /** |
| 167 | * Initialize the debugger. | ||
| 168 | */ | ||
| 169 | void InitializeDebugger(); | ||
| 170 | |||
| 171 | /** | ||
| 172 | * Load an executable application. | 172 | * Load an executable application. |
| 173 | * @param emu_window Reference to the host-system window used for video output and keyboard | 173 | * @param emu_window Reference to the host-system window used for video output and keyboard |
| 174 | * input. | 174 | * input. |
| @@ -354,6 +354,9 @@ public: | |||
| 354 | [[nodiscard]] Service::Time::TimeManager& GetTimeManager(); | 354 | [[nodiscard]] Service::Time::TimeManager& GetTimeManager(); |
| 355 | [[nodiscard]] const Service::Time::TimeManager& GetTimeManager() const; | 355 | [[nodiscard]] const Service::Time::TimeManager& GetTimeManager() const; |
| 356 | 356 | ||
| 357 | [[nodiscard]] Core::Debugger& GetDebugger(); | ||
| 358 | [[nodiscard]] const Core::Debugger& GetDebugger() const; | ||
| 359 | |||
| 357 | void SetExitLock(bool locked); | 360 | void SetExitLock(bool locked); |
| 358 | [[nodiscard]] bool GetExitLock() const; | 361 | [[nodiscard]] bool GetExitLock() const; |
| 359 | 362 | ||
| @@ -375,6 +378,9 @@ public: | |||
| 375 | /// Tells if system is running on multicore. | 378 | /// Tells if system is running on multicore. |
| 376 | [[nodiscard]] bool IsMulticore() const; | 379 | [[nodiscard]] bool IsMulticore() const; |
| 377 | 380 | ||
| 381 | /// Tells if the system debugger is enabled. | ||
| 382 | [[nodiscard]] bool DebuggerEnabled() const; | ||
| 383 | |||
| 378 | /// Type used for the frontend to designate a callback for System to re-launch the application | 384 | /// Type used for the frontend to designate a callback for System to re-launch the application |
| 379 | /// using a specified program index. | 385 | /// using a specified program index. |
| 380 | using ExecuteProgramCallback = std::function<void(std::size_t)>; | 386 | using ExecuteProgramCallback = std::function<void(std::size_t)>; |