+// BUFSIZE will be 2250 for 32 bit machines
+#define BUFSIZE (50 + MAX_FRAMES*CHARS_PER_FRAME)
+
+// static data
+void *wxStackWalker::ms_addresses[MAX_FRAMES];
+char **wxStackWalker::ms_symbols = NULL;
+int wxStackWalker::m_depth = 0;
+wxString wxStackWalker::ms_exepath;
+static char g_buf[BUFSIZE];
+
+
+void wxStackWalker::SaveStack(size_t maxDepth)
+{
+ // read all frames required
+ maxDepth = wxMin(WXSIZEOF(ms_addresses)/sizeof(void*), maxDepth);
+ m_depth = backtrace(ms_addresses, maxDepth*sizeof(void*));
+ if ( !m_depth )
+ return;
+
+ ms_symbols = backtrace_symbols(ms_addresses, m_depth);