Prevent VS catching exceptions when not debugging
This commit is contained in:
parent
ba74b162ad
commit
135699e45d
|
@ -55,9 +55,10 @@ namespace CxbxDebugger
|
||||||
|
|
||||||
bool IsAttached()
|
bool IsAttached()
|
||||||
{
|
{
|
||||||
// TODO: Avoid clashing with VS when child process debugging is enabled for all processes
|
bool IsDebugging;
|
||||||
// TODO: Check the PID of the debugger? Ensure the PID is linked to CxbxDebugger.exe?
|
g_EmuShared->GetDebuggingFlag(&IsDebugging);
|
||||||
return IsDebuggerPresent() == TRUE;
|
|
||||||
|
return IsDebugging && IsDebuggerPresent() == TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
class ReportHelper
|
class ReportHelper
|
||||||
|
@ -124,8 +125,11 @@ namespace CxbxDebugger
|
||||||
{
|
{
|
||||||
switch (ExceptionCode)
|
switch (ExceptionCode)
|
||||||
{
|
{
|
||||||
case Internal::FILE_OPENED:
|
case Internal::HLECACHE_FILE:
|
||||||
case Internal::KERNEL_PATCH:
|
case Internal::KERNEL_PATCH:
|
||||||
|
case Internal::FILE_OPENED:
|
||||||
|
case Internal::FILE_READ:
|
||||||
|
case Internal::FILE_CLOSED:
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -138,6 +138,7 @@ EmuShared::EmuShared()
|
||||||
{
|
{
|
||||||
Load();
|
Load();
|
||||||
m_bMultiXbe = false;
|
m_bMultiXbe = false;
|
||||||
|
m_bDebugging = false;
|
||||||
m_LaunchDataPAddress = NULL;
|
m_LaunchDataPAddress = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1933,6 +1933,8 @@ void WndMain::StartEmulation(HWND hwndParent, bool WithLocalDebugger /*= false*/
|
||||||
char szArgsBuffer[4096];
|
char szArgsBuffer[4096];
|
||||||
snprintf(szArgsBuffer, 4096, "/load \"%s\" %d %d \"%s\"", m_XbeFilename, (int)hwndParent, (int)m_KrnlDebug, m_KrnlDebugFilename);
|
snprintf(szArgsBuffer, 4096, "/load \"%s\" %d %d \"%s\"", m_XbeFilename, (int)hwndParent, (int)m_KrnlDebug, m_KrnlDebugFilename);
|
||||||
|
|
||||||
|
g_EmuShared->SetDebuggingFlag(&WithLocalDebugger);
|
||||||
|
|
||||||
if (WithLocalDebugger)
|
if (WithLocalDebugger)
|
||||||
{
|
{
|
||||||
// TODO: Set a configuration variable for this. For now it will be within the same folder as Cxbx.exe
|
// TODO: Set a configuration variable for this. For now it will be within the same folder as Cxbx.exe
|
||||||
|
|
|
@ -124,6 +124,12 @@ class EmuShared : public Mutex
|
||||||
void GetMultiXbeFlag(bool *value) { Lock(); *value = m_bMultiXbe; Unlock(); }
|
void GetMultiXbeFlag(bool *value) { Lock(); *value = m_bMultiXbe; Unlock(); }
|
||||||
void SetMultiXbeFlag(bool *value) { Lock(); m_bMultiXbe = *value; Unlock(); }
|
void SetMultiXbeFlag(bool *value) { Lock(); m_bMultiXbe = *value; Unlock(); }
|
||||||
|
|
||||||
|
// ******************************************************************
|
||||||
|
// * Debugging flag Accessors
|
||||||
|
// ******************************************************************
|
||||||
|
void GetDebuggingFlag(bool *value) { Lock(); *value = m_bDebugging; Unlock(); }
|
||||||
|
void SetDebuggingFlag(bool *value) { Lock(); m_bDebugging = *value; Unlock(); }
|
||||||
|
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
// * Launch data physical address Accessors
|
// * Launch data physical address Accessors
|
||||||
// ******************************************************************
|
// ******************************************************************
|
||||||
|
@ -150,6 +156,7 @@ class EmuShared : public Mutex
|
||||||
float m_MSpF;
|
float m_MSpF;
|
||||||
float m_FPS;
|
float m_FPS;
|
||||||
bool m_bMultiXbe;
|
bool m_bMultiXbe;
|
||||||
|
bool m_bDebugging;
|
||||||
PAddr m_LaunchDataPAddress;
|
PAddr m_LaunchDataPAddress;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue