svcBreak, Signalling to the debugger should not kill execution
When loading NROs, svcBreak is called to signal to the debugger that a new "module" is loaded. As no debugger is technically attached we shouldn't be killing the programs execution.
This commit is contained in:
parent
fd891ee9c0
commit
c50f66a8eb
|
@ -303,12 +303,19 @@ static ResultCode ArbitrateUnlock(VAddr mutex_addr) {
|
||||||
|
|
||||||
/// Break program execution
|
/// Break program execution
|
||||||
static void Break(u64 reason, u64 info1, u64 info2) {
|
static void Break(u64 reason, u64 info1, u64 info2) {
|
||||||
|
if ((reason & (1 << 31)) == 0) {
|
||||||
LOG_CRITICAL(
|
LOG_CRITICAL(
|
||||||
Debug_Emulated,
|
Debug_Emulated,
|
||||||
"Emulated program broke execution! reason=0x{:016X}, info1=0x{:016X}, info2=0x{:016X}",
|
"Emulated program broke execution! reason=0x{:016X}, info1=0x{:016X}, info2=0x{:016X}",
|
||||||
reason, info1, info2);
|
reason, info1, info2);
|
||||||
|
} else {
|
||||||
|
LOG_ERROR(
|
||||||
|
Debug_Emulated,
|
||||||
|
"Emulated program broke execution! reason=0x{:016X}, info1=0x{:016X}, info2=0x{:016X}",
|
||||||
|
reason, info1, info2);
|
||||||
ASSERT(false);
|
ASSERT(false);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// Used to output a message on a debug hardware unit - does nothing on a retail unit
|
/// Used to output a message on a debug hardware unit - does nothing on a retail unit
|
||||||
static void OutputDebugString(VAddr address, u64 len) {
|
static void OutputDebugString(VAddr address, u64 len) {
|
||||||
|
|
Reference in New Issue