]> git.saurik.com Git - wxWidgets.git/blobdiff - src/unix/stackwalk.cpp
wxAUI: Made fixed size floating panes work
[wxWidgets.git] / src / unix / stackwalk.cpp
index b8b92ef92470ab822cf3223d2890d54fed4eec63..ae48c30a31cbd3b0a81433e6672901879abd0923 100644 (file)
@@ -129,9 +129,13 @@ void wxStackFrame::OnGetName()
                     m_offset = ofs;
             }
         }
-    }
 
-    m_module.assign(syminfo, posOpen);
+        m_module.assign(syminfo, posOpen);
+    }
+    else // not in "module(funcname+offset)" format
+    {
+        m_module = syminfo;
+    }
 }
 
 void wxStackFrame::OnGetLocation()
@@ -221,12 +225,13 @@ void wxStackWalker::Walk(size_t skip)
 
     char **symbols = backtrace_symbols(addresses, depth);
 
-    if (skip > (size_t) depth)
-        skip = (size_t) depth;
+    // we have 3 more "intermediate" frames which the calling code doesn't know
+    // about., account for them
+    skip += 3;
 
     for ( int n = skip; n < depth; n++ )
     {
-        wxStackFrame frame(n, addresses[n-skip], symbols[n-skip]);
+        wxStackFrame frame(n - skip, addresses[n], symbols[n]);
         OnStackFrame(frame);
     }
 }