- const Backtrace::FrameSeq &frames=bt.get_frames();
- for(Backtrace::FrameSeq::const_iterator i=frames.begin(); i!=frames.end(); ++i)
- out<<i->address<<" in "<<i->symbol<<" from "<<i->file<<'\n';
+ const list<Backtrace::StackFrame> &frames = bt.get_frames();
+ for(list<Backtrace::StackFrame>::const_iterator i=frames.begin(); i!=frames.end(); ++i)
+ out<<*i<<'\n';
+
+ return out;
+}
+
+ostream &operator<<(ostream &out, const Backtrace::StackFrame &sf)
+{
+ out<<sf.address;
+ if(!sf.symbol.empty())
+ out<<" in "<<sf.symbol;
+ out<<" from "<<sf.file;