Merge commit 'c07043cb5a8579fd398eecf2d74a686e51cb95cc' into translations

This commit is contained in:
Vicki Pfau 2025-07-14 22:42:53 -07:00
commit 682ae2fb3b
5 changed files with 34 additions and 2 deletions

View File

@ -133,6 +133,7 @@ struct mBreakpoint {
int segment;
enum mBreakpointType type;
struct ParseTree* condition;
bool isTemporary;
};
struct mWatchpoint {

View File

@ -218,6 +218,11 @@ static void ARMDebuggerCheckBreakpoints(struct mDebuggerPlatform* d) {
.target = TableLookup(&d->p->pointOwner, breakpoint->d.id)
};
mDebuggerEnter(d->p, DEBUGGER_ENTER_BREAKPOINT, &info);
if (breakpoint->d.isTemporary) {
_destroyBreakpoint(debugger->d.p, breakpoint);
ARMDebugBreakpointListShift(&debugger->breakpoints, i, 1);
--i;
}
}
}
@ -323,7 +328,10 @@ static void ARMDebuggerEnter(struct mDebuggerPlatform* platform, enum mDebuggerE
ARMRunFake(cpu, breakpoint->sw.opcode);
if (debugger->setSoftwareBreakpoint) {
if (breakpoint->d.isTemporary) {
_destroyBreakpoint(debugger->d.p, breakpoint);
ARMDebugBreakpointListShift(&debugger->swBreakpoints, i, 1);
} else if (debugger->setSoftwareBreakpoint) {
debugger->setSoftwareBreakpoint(debugger, breakpoint->d.address, breakpoint->sw.mode, &breakpoint->sw.opcode);
}
break;

View File

@ -255,7 +255,25 @@ static void _continue(struct GDBStub* stub, const char* message) {
}
static void _step(struct GDBStub* stub, const char* message) {
const struct ARMCore* cpu = stub->d.p->core->cpu;
const int32_t pc = cpu->gprs[ARM_PC];
stub->d.p->core->step(stub->d.p->core);
if (pc >= GBA_SIZE_BIOS && cpu->gprs[ARM_PC] < GBA_SIZE_BIOS) {
// GDB cannot cope with jumps into BIOS
// skip over them by placing a temporary breakpoint at PC (instruction after the jump)
// and then continue without sending a GDB SIGTRAP
const struct mBreakpoint breakpoint = {
.address = pc,
.type = BREAKPOINT_HARDWARE,
.isTemporary = true
};
stub->d.p->platform->setBreakpoint(stub->d.p->platform, &stub->d, &breakpoint);
_continue(stub, message);
return;
}
snprintf(stub->outgoing, GDB_STUB_MAX_LINE - 4, "S%02x", SIGTRAP);
_sendMessage(stub);
// TODO: parse message

View File

@ -5417,7 +5417,7 @@ If it is set to OpenGL and you still see this, your graphics card or drivers may
<message>
<location filename="../SettingsView.ui" line="1851"/>
<source>GBC compatible:</source>
<translation>Compatibile BGC:</translation>
<translation>Compatibile GBC:</translation>
</message>
<message>
<location filename="../SettingsView.ui" line="1861"/>

View File

@ -53,6 +53,11 @@ static void SM83DebuggerCheckBreakpoints(struct mDebuggerPlatform* d) {
.target = TableLookup(&d->p->pointOwner, breakpoint->id)
};
mDebuggerEnter(d->p, DEBUGGER_ENTER_BREAKPOINT, &info);
if (breakpoint->isTemporary) {
_destroyBreakpoint(debugger->d.p, breakpoint);
mBreakpointListShift(&debugger->breakpoints, i, 1);
--i;
}
}
}