/////////////////////////////////////////////////////////////////////////////
-// Name: msw/debughlp.cpp
+// Name: src/msw/debughlp.cpp
// Purpose: various Win32 debug helpers
// Author: Vadim Zeitlin
// Modified by:
// Created: 2005-01-08 (extracted from crashrpt.cpp)
-// RCS-ID: $Id$
// Copyright: (c) 2003-2005 Vadim Zeitlin <vadim@wxwindows.org>
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// 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);
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; \
}
void wxDbgHelpDLL::LogError(const wxChar *func)
{
::OutputDebugString(wxString::Format(wxT("dbghelp: %s() failed: %s\r\n"),
- func, wxSysErrorMsg(::GetLastError())).wx_str());
+ func, wxSysErrorMsg(::GetLastError())).t_str());
}
// ----------------------------------------------------------------------------
}
else // opaque 64 bit value
{
- s.Printf("%#" wxLongLongFmtSpec "x", *(PDWORD *)pAddress);
+ s.Printf("%#" wxLongLongFmtSpec "x", *(wxLongLong_t *)pAddress);
}
}
case SYMBOL_TAG_BASE_CLASS:
s = DumpUDT(&sym, pVariable, level);
break;
+
+ default:
+ // Suppress gcc warnings about unhandled enum values.
+ break;
}
}
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() )
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);