[Project64] Add Logging on un handled exception
This commit is contained in:
parent
1c61eb68db
commit
267d19a93b
|
@ -60,6 +60,9 @@ class AndroidLogger : public CTraceModule
|
|||
default: __android_log_print(ANDROID_LOG_UNKNOWN, TraceModule(module), "%05d: %s: %s",CThread::GetCurrentThreadId(),function,Message); break;
|
||||
}
|
||||
}
|
||||
void FlushTrace(void)
|
||||
{
|
||||
}
|
||||
};
|
||||
AndroidLogger * g_Logger = NULL;
|
||||
static pthread_key_t g_ThreadKey;
|
||||
|
|
|
@ -32,6 +32,9 @@ class AndroidLogger : public CTraceModule
|
|||
default: __android_log_print(ANDROID_LOG_UNKNOWN, TraceModule(module), "%s: %s", function, Message); break;
|
||||
}
|
||||
}
|
||||
void FlushTrace(void)
|
||||
{
|
||||
}
|
||||
};
|
||||
static AndroidLogger * g_AndroidLogger = NULL;
|
||||
#endif
|
||||
|
|
|
@ -27,7 +27,8 @@ public:
|
|||
|
||||
CTraceModule * AddTraceModule(CTraceModule * TraceModule);
|
||||
CTraceModule * RemoveTraceModule(CTraceModule * TraceModule);
|
||||
void CloseTrace(void);
|
||||
void CloseTrace(void);
|
||||
void FlushTrace(void);
|
||||
};
|
||||
|
||||
CTraceLog & GetTraceObjet(void)
|
||||
|
@ -56,6 +57,11 @@ void WriteTraceFull(uint32_t module, uint8_t severity, const char * file, int li
|
|||
va_end(args);
|
||||
}
|
||||
|
||||
void TraceFlushLog(void)
|
||||
{
|
||||
GetTraceObjet().FlushTrace();
|
||||
}
|
||||
|
||||
void CloseTrace(void)
|
||||
{
|
||||
g_TraceClosed = true;
|
||||
|
@ -118,6 +124,16 @@ void CTraceLog::CloseTrace(void)
|
|||
m_Modules.clear();
|
||||
}
|
||||
|
||||
void CTraceLog::FlushTrace(void)
|
||||
{
|
||||
CGuard Guard(m_CS);
|
||||
for (uint32_t i = 0, n = m_Modules.size(); i < n; i++)
|
||||
{
|
||||
m_Modules[i]->FlushTrace();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void CTraceLog::TraceMessage(uint32_t module, uint8_t severity, const char * file, int line, const char * function, const char * Message)
|
||||
{
|
||||
CGuard Guard(m_CS);
|
||||
|
@ -230,7 +246,13 @@ void CTraceFileLog::Write(uint32_t module, uint8_t severity, const char * /*file
|
|||
}
|
||||
}
|
||||
|
||||
void CTraceFileLog::FlushTrace(void)
|
||||
{
|
||||
m_hLogFile.Flush();
|
||||
}
|
||||
|
||||
void CTraceFileLog::SetFlushFile(bool bFlushFile)
|
||||
{
|
||||
m_FlushFile = bFlushFile;
|
||||
FlushTrace();
|
||||
}
|
|
@ -20,6 +20,7 @@ enum TraceSeverity
|
|||
__interface CTraceModule
|
||||
{
|
||||
virtual void Write(uint32_t module, uint8_t severity, const char * file, int line, const char * function, const char * Message) = 0;
|
||||
virtual void FlushTrace() = 0;
|
||||
};
|
||||
|
||||
class CTraceFileLog : public CTraceModule
|
||||
|
@ -30,6 +31,7 @@ public:
|
|||
|
||||
void SetFlushFile(bool bFlushFile);
|
||||
void Write(uint32_t module, uint8_t severity, const char * file, int line, const char * function, const char * Message);
|
||||
void FlushTrace (void);
|
||||
|
||||
private:
|
||||
CLog m_hLogFile;
|
||||
|
@ -50,6 +52,7 @@ void TraceSetModuleName(uint8_t module, const char * Name);
|
|||
void CloseTrace(void);
|
||||
|
||||
void WriteTraceFull(uint32_t module, uint8_t severity, const char * file, int line, const char * function, const char *format, ...);
|
||||
void TraceFlushLog(void);
|
||||
void TraceSetMaxModule(uint32_t MaxModule, uint8_t DefaultSeverity);
|
||||
|
||||
extern uint32_t * g_ModuleLogLevel;
|
||||
|
|
|
@ -25,6 +25,10 @@ class AndroidLogger : public CTraceModule
|
|||
default: __android_log_print(ANDROID_LOG_UNKNOWN, TraceModule(module), "%s: %s", function, Message); break;
|
||||
}
|
||||
}
|
||||
|
||||
void FlushTrace(void)
|
||||
{
|
||||
}
|
||||
};
|
||||
static AndroidLogger * g_AndroidLogger = NULL;
|
||||
#endif
|
||||
|
|
|
@ -427,6 +427,7 @@ bool CMipsMemoryVM::FilterArmException(uint32_t MemAddress, mcontext_t & context
|
|||
WriteTrace(TraceExceptionHandler, TraceError, "OpCode32->uint32.rt: %X",OpCode32->uint32.rt);
|
||||
WriteTrace(TraceExceptionHandler, TraceError, "OpCode32->uint32.opcode2: %X",OpCode32->uint32.opcode2);
|
||||
WriteTrace(TraceExceptionHandler, TraceError, "OpCode32->uint32.rm: %X",OpCode32->uint32.rm);
|
||||
TraceFlushLog();
|
||||
g_Notify->BreakPoint(__FILE__, __LINE__);
|
||||
return false;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue