summaryrefslogtreecommitdiff
path: root/indra/newview/llwindebug.cpp
diff options
context:
space:
mode:
authorVadim Savchuk <vsavchuk@productengine.com>2010-07-13 18:54:16 +0300
committerVadim Savchuk <vsavchuk@productengine.com>2010-07-13 18:54:16 +0300
commitb5ab9c07031ffadb77792c312ca2bb1131d90fb0 (patch)
tree499b01923892a406d306eadd4507e6d7a41b471b /indra/newview/llwindebug.cpp
parenteb6153d2c3cb1e2105804e28f81f894873315545 (diff)
parentc201038aba861b1166d367fcf5986e33644ec018 (diff)
Manual merge from default branch
Resolved conflicts in llpaneloutfitedit.cpp --HG-- branch : product-engine
Diffstat (limited to 'indra/newview/llwindebug.cpp')
-rw-r--r--indra/newview/llwindebug.cpp61
1 files changed, 35 insertions, 26 deletions
diff --git a/indra/newview/llwindebug.cpp b/indra/newview/llwindebug.cpp
index 502fefd4ef..660245b02b 100644
--- a/indra/newview/llwindebug.cpp
+++ b/indra/newview/llwindebug.cpp
@@ -97,6 +97,9 @@ void LLWinDebug::init()
// Load the dbghelp dll now, instead of waiting for the crash.
// Less potential for stack mangling
+ // Don't install vectored exception handler if being debugged.
+ if(IsDebuggerPresent()) return;
+
if (s_first_run)
{
// First, try loading from the directory that the app resides in.
@@ -135,36 +138,42 @@ void LLWinDebug::init()
void LLWinDebug::writeDumpToFile(MINIDUMP_TYPE type, MINIDUMP_EXCEPTION_INFORMATION *ExInfop, const std::string& filename)
{
- if(f_mdwp == NULL || gDirUtilp == NULL)
- {
- return;
- }
- else
+ // Temporary fix to switch out the code that writes the DMP file.
+ // Fix coming that doesn't write a mini dump file for regular C++ exceptions.
+ const bool enable_write_dump_file = false;
+ if ( enable_write_dump_file )
{
- std::string dump_path = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, filename);
-
- HANDLE hFile = CreateFileA(dump_path.c_str(),
- GENERIC_WRITE,
- FILE_SHARE_WRITE,
- NULL,
- CREATE_ALWAYS,
- FILE_ATTRIBUTE_NORMAL,
- NULL);
-
- if (hFile != INVALID_HANDLE_VALUE)
+ if(f_mdwp == NULL || gDirUtilp == NULL)
{
- // Write the dump, ignoring the return value
- f_mdwp(GetCurrentProcess(),
- GetCurrentProcessId(),
- hFile,
- type,
- ExInfop,
- NULL,
- NULL);
-
- CloseHandle(hFile);
+ return;
}
+ else
+ {
+ std::string dump_path = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, filename);
+
+ HANDLE hFile = CreateFileA(dump_path.c_str(),
+ GENERIC_WRITE,
+ FILE_SHARE_WRITE,
+ NULL,
+ CREATE_ALWAYS,
+ FILE_ATTRIBUTE_NORMAL,
+ NULL);
+
+ if (hFile != INVALID_HANDLE_VALUE)
+ {
+ // Write the dump, ignoring the return value
+ f_mdwp(GetCurrentProcess(),
+ GetCurrentProcessId(),
+ hFile,
+ type,
+ ExInfop,
+ NULL,
+ NULL);
+
+ CloseHandle(hFile);
+ }
+ }
}
}