X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/80fdcdb90ef779185492dab676d461fc34933312..144a67054a50d9e47ebfc2cc1e3ca4393ecbdd8e:/src/msw/debughlp.cpp diff --git a/src/msw/debughlp.cpp b/src/msw/debughlp.cpp index 1cbdb25f81..40396b7b19 100644 --- a/src/msw/debughlp.cpp +++ b/src/msw/debughlp.cpp @@ -50,7 +50,8 @@ static wxString gs_errMsg; // static members // ---------------------------------------------------------------------------- -#define DEFINE_SYM_FUNCTION(func) wxDbgHelpDLL::func ## _t wxDbgHelpDLL::func = 0 +#define DEFINE_SYM_FUNCTION(func, name) \ + wxDbgHelpDLL::func ## _t wxDbgHelpDLL::func = 0 wxDO_FOR_ALL_SYM_FUNCS(DEFINE_SYM_FUNCTION); @@ -64,12 +65,12 @@ wxDO_FOR_ALL_SYM_FUNCS(DEFINE_SYM_FUNCTION); static bool BindDbgHelpFunctions(const wxDynamicLibrary& dllDbgHelp) { - #define LOAD_SYM_FUNCTION(name) \ - wxDbgHelpDLL::name = (wxDbgHelpDLL::name ## _t) \ - dllDbgHelp.GetSymbol(wxT(#name)); \ - if ( !wxDbgHelpDLL::name ) \ + #define LOAD_SYM_FUNCTION(func, name) \ + wxDbgHelpDLL::func = (wxDbgHelpDLL::func ## _t) \ + dllDbgHelp.GetSymbol(wxT(#name)); \ + if ( !wxDbgHelpDLL::func ) \ { \ - gs_errMsg += wxT("Function ") wxT(#name) wxT("() not found.\n"); \ + gs_errMsg += wxT("Function ") wxT(#name) wxT("() not found.\n"); \ return false; \ } @@ -281,7 +282,7 @@ wxDbgHelpDLL::DumpBaseType(BasicType bt, DWORD64 length, PVOID pAddress) } else // opaque 64 bit value { - s.Printf("%#" wxLongLongFmtSpec "x", *(PDWORD *)pAddress); + s.Printf("%#" wxLongLongFmtSpec "x", *(wxLongLong_t *)pAddress); } } @@ -359,6 +360,10 @@ wxDbgHelpDLL::DumpField(PSYMBOL_INFO pSym, void *pVariable, unsigned level) case SYMBOL_TAG_BASE_CLASS: s = DumpUDT(&sym, pVariable, level); break; + + default: + // Suppress gcc warnings about unhandled enum values. + break; } } @@ -367,6 +372,11 @@ wxDbgHelpDLL::DumpField(PSYMBOL_INFO pSym, void *pVariable, unsigned level) s = GetSymbolName(pSym) + wxT(" = ") + s; } break; + + default: + // Suppress gcc warnings about unhandled enum values, don't assert + // to avoid problems during fatal crash generation. + break; } if ( !s.empty() ) @@ -520,6 +530,11 @@ wxDbgHelpDLL::DumpSymbol(PSYMBOL_INFO pSym, void *pVariable) SYMBOL_INFO symDeref = *pSym; switch ( DereferenceSymbol(&symDeref, &pVariable) ) { + default: + // Suppress gcc warnings about unhandled enum values, don't assert + // to avoid problems during fatal crash generation. + break; + case SYMBOL_TAG_UDT: // show UDT recursively s = DumpUDT(&symDeref, pVariable);