virtual void OnStackFrame(const wxStackFrame& frame) { m_stackTrace << wxString::Format(_T("[%02d] "), frame.GetLevel()); wxString name = frame.GetName(); if ( !name.empty() ) { m_stackTrace << wxString::Format(_T("%-40s"), name.c_str()); } else { m_stackTrace << wxString::Format ( _T("0x%08lx"), (unsigned long)frame.GetAddress() ); } if ( frame.HasSourceLocation() ) { m_stackTrace << _T('\t') << frame.GetFileName() << _T(':') << frame.GetLine(); } m_stackTrace << _T('\n'); }
virtual void OnStackFrame(const wxStackFrame& frame) { printf("[%2d] ", (int) frame.GetLevel()); wxString name = frame.GetName(); if ( !name.empty() ) { printf("%-20.40s", (const char*)name.mb_str()); } else { printf("0x%08lx", (unsigned long)frame.GetAddress()); } if ( frame.HasSourceLocation() ) { printf("\t%s:%d", (const char*)frame.GetFileName().mb_str(), (int)frame.GetLine()); } puts(""); wxString type, val; for ( size_t n = 0; frame.GetParam(n, &type, &name, &val); n++ ) { printf("\t%s %s = %s\n", (const char*)type.mb_str(), (const char*)name.mb_str(), (const char*)val.mb_str()); } }
void StackWalker::OnStackFrame(const wxStackFrame &frame) { wxString dst = wxString::Format(_T("%03i - 0x%08X: "),frame.GetLevel(),frame.GetAddress()) + frame.GetName() + _T(" on ") + frame.GetFileName() + wxString::Format(_T(":%i"),frame.GetLine()); char temp[2048]; if (file.is_open()) { strcpy(temp,dst.mb_str()); file << temp << std::endl; } else wxLogMessage(dst); }
void OnStackFrame(const wxStackFrame& frame) { string location = "[unknown location] "; if (frame.HasSourceLocation()) location = S_FMT("(%s:%d) ", frame.GetFileName(), frame.GetLine()); wxUIntPtr address = wxPtrToUInt(frame.GetAddress()); string func_name = frame.GetName(); if (func_name.IsEmpty()) func_name = S_FMT("[unknown:%d]", address); stack_trace.Append(S_FMT("%d: %s%s\n", frame.GetLevel(), location, func_name)); }