]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/stackwalk.cpp
Minor parts from FM's wxDataViewCtrl patch.
[wxWidgets.git] / src / msw / stackwalk.cpp
index 5a12a002b79ed8ab458c3f0544f7f55111730684..8a27e6cd577a8c85acab8069075b06f97915101b 100644 (file)
@@ -134,9 +134,9 @@ void wxStackFrame::OnParam(PSYMBOL_INFO pSymInfo)
 
     // if symbol information is corrupted and we crash, the exception is going
     // to be ignored when we're called from WalkFromException() because of the
-    // except handler there returning EXCEPTION_CONTINUE_EXECUTION, but we'd be
-    // left in an inconsistent state, so deal with it explicitely here (even if
-    // normally we should never crash, of course...)
+    // exception handler there returning EXCEPTION_CONTINUE_EXECUTION, but we'd
+    // be left in an inconsistent state, so deal with it explicitly here (even
+    // if normally we should never crash, of course...)
 #ifdef _CPPUNWIND
     try
 #else
@@ -218,8 +218,12 @@ void wxStackWalker::WalkFrom(const CONTEXT *pCtx, size_t skip)
 {
     if ( !wxDbgHelpDLL::Init() )
     {
-        wxLogError(_("Failed to get stack backtrace:\n%s"),
+        // don't log a user-visible error message here because the stack trace
+        // is only needed for debugging/diagnostics anyhow and we shouldn't
+        // confuse the user by complaining that we couldn't generate it
+        wxLogDebug(_T("Failed to get stack backtrace: %s"),
                    wxDbgHelpDLL::GetErrorMessage().c_str());
+        return;
     }
 
     // according to MSDN, the first parameter should be just a unique value and
@@ -322,7 +326,7 @@ void wxStackWalker::WalkFromException()
     WalkFrom(wxGlobalSEInformation, 0);
 }
 
-void wxStackWalker::Walk(size_t skip)
+void wxStackWalker::Walk(size_t skip, size_t WXUNUSED(maxDepth))
 {
     // to get a CONTEXT for the current location, simply force an exception and
     // get EXCEPTION_POINTERS from it
@@ -396,7 +400,7 @@ void wxStackWalker::WalkFromException()
 {
 }
 
-void wxStackWalker::Walk(size_t WXUNUSED(skip))
+void wxStackWalker::Walk(size_t WXUNUSED(skip), size_t WXUNUSED(maxDepth))
 {
 }