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()
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);
}
}