#include "wx/utils.h"
#endif // WX_PRECOMP
-#if wxUSE_DEBUGREPORT
+#if wxUSE_DEBUGREPORT && wxUSE_XML
#include "wx/debugrpt.h"
+#include "wx/ffile.h"
#include "wx/filename.h"
#include "wx/dir.h"
#include "wx/dynlib.h"
bool m_isOk;
};
-#endif // wxUSE_STACKWALKER
-
// ----------------------------------------------------------------------------
// local functions
// ----------------------------------------------------------------------------
{
wxXmlNode *nodeChild = new wxXmlNode(wxXML_ELEMENT_NODE, name);
node->AddChild(nodeChild);
- nodeChild->AddChild(new wxXmlNode(wxXML_TEXT_NODE, _T(""), value));
+ nodeChild->AddChild(new wxXmlNode(wxXML_TEXT_NODE, wxEmptyString, value));
}
+#if wxUSE_CRASHREPORT && defined(__INTEL__)
+
static inline void
HexElement(wxXmlNode *node, const wxChar *name, unsigned long value)
{
TextElement(node, name, wxString::Format(_T("%08lx"), value));
}
-#if wxUSE_STACKWALKER
+#endif // wxUSE_CRASHREPORT
// ============================================================================
// XmlStackWalker implementation
// of course, this doesn't protect us against malicious users...
wxFileName fn;
fn.AssignTempFileName(appname);
+#if wxUSE_DATETIME
m_dir.Printf(_T("%s%c%s_dbgrpt-%lu-%s"),
fn.GetPath().c_str(), wxFILE_SEP_PATH, appname.c_str(),
wxGetProcessId(),
wxDateTime::Now().Format(_T("%Y%m%dT%H%M%S")).c_str());
+#else
+ m_dir.Printf(_T("%s%c%s_dbgrpt-%lu"),
+ fn.GetPath().c_str(), wxFILE_SEP_PATH, appname.c_str(),
+ wxGetProcessId());
+#endif
// as we are going to save the process state there use restrictive
// permissions
size_t len = 0;
if ( info.GetAddress(&addr, &len) )
{
- HexProperty(nodeModule, _T("address"), (unsigned long)addr);
+ HexProperty(nodeModule, _T("address"), wxPtrToUInt(addr));
HexProperty(nodeModule, _T("size"), len);
}
HexProperty(nodeExc, _T("code"), c.code);
nodeExc->AddProperty(_T("name"), c.GetExceptionString());
- HexProperty(nodeExc, _T("address"), (unsigned long)c.addr);
+ HexProperty(nodeExc, _T("address"), wxPtrToUInt(c.addr));
#ifdef __INTEL__
wxXmlNode *nodeRegs = new wxXmlNode(wxXML_ELEMENT_NODE, _T("registers"));
wxArrayString output, errors;
int rc = wxExecute(wxString::Format
(
- _T("%s -F %s=@%s %s"),
+ _T("%s -F %s=@\"%s\" %s"),
m_curlCmd.c_str(),
m_inputField.c_str(),
GetCompressedFileName().c_str(),
#endif // wxUSE_ZIPSTREAM
#endif // wxUSE_DEBUGREPORT
-