summaryrefslogtreecommitdiff
path: root/src/inc
diff options
context:
space:
mode:
authorRuss Keldorph <Russ.Keldorph@microsoft.com>2016-11-07 14:40:14 -0800
committerRuss Keldorph <Russ.Keldorph@microsoft.com>2016-11-09 10:02:32 -0800
commitca5f9f4f76a290379e0246c2da00293739c467f3 (patch)
tree4606ce80a21e14b1bb45b293127c0be741a9bba5 /src/inc
parent44597321141a1364cbebb6c610db26a718e3d209 (diff)
downloadcoreclr-ca5f9f4f76a290379e0246c2da00293739c467f3.tar.gz
coreclr-ca5f9f4f76a290379e0246c2da00293739c467f3.tar.bz2
coreclr-ca5f9f4f76a290379e0246c2da00293739c467f3.zip
Disable GUI dialogs on Windows by default
This change disables creating pop-up dialog boxes by default on Windows when assertions fail. The change consists of two pieces: 1) Make COMPlus_NoGuiOnAssert effective in Release builds (currently only Debug/Checked builds) 2) Make DebuggerAssert::ShowDefaultAssertDialog honor the COMPlus_NoGuiOnAssert variable. 3) Make COMPlus_NoGuiOnAssert=1 by default. Note that COMPlus_NoGuiOnAssert was already honored for assertions originating from native code such as the JIT. If pop-ups are desired, one can still set COMPlus_NoGuiOnAssert=0. Fixes #7678
Diffstat (limited to 'src/inc')
-rw-r--r--src/inc/clrconfigvalues.h4
-rw-r--r--src/inc/utilcode.h5
2 files changed, 7 insertions, 2 deletions
diff --git a/src/inc/clrconfigvalues.h b/src/inc/clrconfigvalues.h
index 3e166da9cb..78a7719600 100644
--- a/src/inc/clrconfigvalues.h
+++ b/src/inc/clrconfigvalues.h
@@ -1128,12 +1128,12 @@ CONFIG_DWORD_INFO_EX(INTERNAL_MscorsnLogging, W("MscorsnLogging"), 0, "Enables s
RETAIL_CONFIG_DWORD_INFO_EX(EXTERNAL_NativeImageRequire, W("NativeImageRequire"), 0, "", CLRConfig::REGUTIL_default)
CONFIG_DWORD_INFO_EX(INTERNAL_NestedEhOom, W("NestedEhOom"), 0, "", CLRConfig::REGUTIL_default)
RETAIL_CONFIG_DWORD_INFO_EX(EXTERNAL_NO_SO_NOT_MAINLINE, W("NO_SO_NOT_MAINLINE"), 0, "", CLRConfig::REGUTIL_default)
-#if defined(CROSSGEN_COMPILE)
+#if defined(CROSSGEN_COMPILE) || defined(FEATURE_CORECLR)
#define INTERNAL_NoGuiOnAssert_Default 1
#else
#define INTERNAL_NoGuiOnAssert_Default 0
#endif
-CONFIG_DWORD_INFO_EX(INTERNAL_NoGuiOnAssert, W("NoGuiOnAssert"), INTERNAL_NoGuiOnAssert_Default, "", CLRConfig::REGUTIL_default)
+RETAIL_CONFIG_DWORD_INFO_EX(INTERNAL_NoGuiOnAssert, W("NoGuiOnAssert"), INTERNAL_NoGuiOnAssert_Default, "", CLRConfig::REGUTIL_default)
RETAIL_CONFIG_DWORD_INFO_EX(EXTERNAL_NoProcedureSplitting, W("NoProcedureSplitting"), 0, "", CLRConfig::REGUTIL_default)
CONFIG_DWORD_INFO_EX(INTERNAL_NoStringInterning, W("NoStringInterning"), 1, "Disallows string interning. I see no value in it anymore.", CLRConfig::REGUTIL_default)
RETAIL_CONFIG_DWORD_INFO_DIRECT_ACCESS(EXTERNAL_NotifyBadAppCfg, W("NotifyBadAppCfg"), "Whether to show a message box for bad application config file.")
diff --git a/src/inc/utilcode.h b/src/inc/utilcode.h
index c519e8b872..a5857e8dde 100644
--- a/src/inc/utilcode.h
+++ b/src/inc/utilcode.h
@@ -5170,6 +5170,11 @@ template<class T> void DeleteExecutable(T *p)
INDEBUG(BOOL DbgIsExecutable(LPVOID lpMem, SIZE_T length);)
+BOOL NoGuiOnAssert();
+#ifdef _DEBUG
+VOID TerminateOnAssert();
+#endif // _DEBUG
+
class HighCharHelper {
public:
static inline BOOL IsHighChar(int c) {