Debugger: Add some error pop-ups for invalid operations

* Show error window when setting breakpoints on these conditions:
- SPU/RSX are selected. (not supported)
- When using non-interpreters decoders.
- Non-executable memory is specified.
* Do not allow instruction stepping for non-interpreters decoders.
* Clear breakpoints when the game is stopped.
* Fix setting breakpoints on HLE functions.
This commit is contained in:
Eladash 2021-07-30 21:30:29 +03:00 committed by Megamouse
parent a06a93d5ba
commit f39a0a5fbe
6 changed files with 111 additions and 63 deletions

View file

@ -30,8 +30,7 @@
#include <regex>
#include <charconv>
extern void ppu_set_breakpoint(u32 addr);
extern void ppu_remove_breakpoint(u32 addr);
extern bool ppu_breakpoint(u32 addr, bool is_adding);
LOG_CHANNEL(GDB);
@ -776,7 +775,7 @@ bool gdb_thread::cmd_set_breakpoint(gdb_cmd& cmd)
GDB.warning("Can't parse breakpoint request, data: '%s'.", cmd.data);
return send_cmd_ack("E02");
}
ppu_set_breakpoint(addr);
ppu_breakpoint(addr, true);
return send_cmd_ack("OK");
}
//other breakpoint types are not supported
@ -794,7 +793,7 @@ bool gdb_thread::cmd_remove_breakpoint(gdb_cmd& cmd)
GDB.warning("Can't parse breakpoint remove request, data: '%s'.", cmd.data);
return send_cmd_ack("E01");
}
ppu_remove_breakpoint(addr);
ppu_breakpoint(addr, false);
return send_cmd_ack("OK");
}
//other breakpoint types are not supported