X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7beafee9423f4cfa2fb08c8c5ff579f884314c79..0973b7df99407013717cc0cbe7fca4b3700cfafd:/src/msw/stackwalk.cpp?ds=sidebyside diff --git a/src/msw/stackwalk.cpp b/src/msw/stackwalk.cpp index 3872361952..8bdf7d4021 100644 --- a/src/msw/stackwalk.cpp +++ b/src/msw/stackwalk.cpp @@ -25,6 +25,10 @@ #if wxUSE_STACKWALKER +#ifndef WX_PRECOMP + #include "wx/string.h" +#endif + #include "wx/stackwalk.h" #include "wx/msw/debughlp.h" @@ -124,15 +128,15 @@ wxStackFrame::GetParam(size_t n, void wxStackFrame::OnParam(PSYMBOL_INFO pSymInfo) { - m_paramTypes.Add(_T("")); + m_paramTypes.Add(wxEmptyString); m_paramNames.Add(wxString::FromAscii(pSymInfo->Name)); // 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 @@ -150,7 +154,7 @@ void wxStackFrame::OnParam(PSYMBOL_INFO pSymInfo) __except ( EXCEPTION_EXECUTE_HANDLER ) #endif { - m_paramValues.Add(_T("")); + m_paramValues.Add(wxEmptyString); } } @@ -164,7 +168,7 @@ EnumSymbolsProc(PSYMBOL_INFO pSymInfo, ULONG WXUNUSED(SymSize), PVOID data) { frame->OnParam(pSymInfo); } - + // return true to continue enumeration, false would have stopped it return TRUE; } @@ -214,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 @@ -340,7 +348,61 @@ void wxStackWalker::Walk(size_t skip) #else // !wxUSE_DBGHELP -// TODO: implement stubs +// ============================================================================ +// stubs +// ============================================================================ + +// ---------------------------------------------------------------------------- +// wxStackFrame +// ---------------------------------------------------------------------------- + +void wxStackFrame::OnGetName() +{ +} + +void wxStackFrame::OnGetLocation() +{ +} + +bool +wxStackFrame::GetParam(size_t WXUNUSED(n), + wxString * WXUNUSED(type), + wxString * WXUNUSED(name), + wxString * WXUNUSED(value)) const +{ + return false; +} + +void wxStackFrame::OnParam(_SYMBOL_INFO * WXUNUSED(pSymInfo)) +{ +} + +void wxStackFrame::OnGetParam() +{ +} + +// ---------------------------------------------------------------------------- +// wxStackWalker +// ---------------------------------------------------------------------------- + +void +wxStackWalker::WalkFrom(const CONTEXT * WXUNUSED(pCtx), size_t WXUNUSED(skip)) +{ +} + +void +wxStackWalker::WalkFrom(const _EXCEPTION_POINTERS * WXUNUSED(ep), + size_t WXUNUSED(skip)) +{ +} + +void wxStackWalker::WalkFromException() +{ +} + +void wxStackWalker::Walk(size_t WXUNUSED(skip)) +{ +} #endif // wxUSE_DBGHELP/!wxUSE_DBGHELP