kernel/svc: Log out uncaught C++ exceptions from svcBreak
Looking into the implementation of the C++ standard facilities that seem to be within all modules, it appears that they use 7 as a break reason to indicate an uncaught C++ exception. This was primarily found via the third last function called within Horizon's equivalent of libcxxabi's demangling_terminate_handler(), which passes the value 0x80000007 to svcBreak.
This commit is contained in:
		
							parent
							
								
									1f4ca1e841
								
							
						
					
					
						commit
						7842536ddb
					
				| @ -597,6 +597,7 @@ enum class BreakType : u32 { | ||||
|     PostNROLoad = 4, | ||||
|     PreNROUnload = 5, | ||||
|     PostNROUnload = 6, | ||||
|     CppException = 7, | ||||
| }; | ||||
| 
 | ||||
| struct BreakReason { | ||||
| @ -669,6 +670,9 @@ static void Break(u32 reason, u64 info1, u64 info2) { | ||||
|                     "Signalling debugger, Unloaded an NRO at 0x{:016X} with size 0x{:016X}", info1, | ||||
|                     info2); | ||||
|         break; | ||||
|     case BreakType::CppException: | ||||
|         LOG_CRITICAL(Debug_Emulated, "Signalling debugger. Uncaught C++ exception encountered."); | ||||
|         break; | ||||
|     default: | ||||
|         LOG_WARNING( | ||||
|             Debug_Emulated, | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Lioncash
						Lioncash