if (!memberName || !*memberName) {
// Anonymous structure
- Struct *memberStruct = dynamic_cast<Struct *>(memberValue);
+ Struct *memberStruct = memberValue->toStruct();
assert(memberStruct);
if (memberStruct) {
sep = visitMembers(memberStruct, sep);
}
void visit(StackFrame *frame) {
- if (frame->module != NULL) {
- os << frame->module << " ";
- }
- if (frame->function != NULL) {
- os << "at " << frame->function << "() ";
- }
- if (frame->filename != NULL) {
- os << "at " << frame->filename;
- if (frame->linenumber >= 0) {
- os << ":" << frame->linenumber << " ";
- }
- }
- else {
- if (frame->offset >= 0) {
- os << "[" << "0x" << std::hex << frame->offset << std::dec << "]";
- }
- }
+ frame->dump(os);
}
void visit(Backtrace & backtrace) {
for (int i = 0; i < backtrace.size(); i ++) {
- visit(&backtrace[i]);
+ visit(backtrace[i]);
os << "\n";
}
}