X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=common%2Ftrace_dump.cpp;h=8732d1e56aeeb580a046f0b64b99d7ac8bb0de15;hb=refs%2Fheads%2Fglx-copy-sub-buffer;hp=5d545353e692178132ad235d2a743a3aa047aa23;hpb=aa1b2136cc72893e519ff73c47e2ecd29cafe1da;p=apitrace diff --git a/common/trace_dump.cpp b/common/trace_dump.cpp index 5d54535..8732d1e 100644 --- a/common/trace_dump.cpp +++ b/common/trace_dump.cpp @@ -178,7 +178,7 @@ public: if (!memberName || !*memberName) { // Anonymous structure - Struct *memberStruct = dynamic_cast(memberValue); + Struct *memberStruct = memberValue->toStruct(); assert(memberStruct); if (memberStruct) { sep = visitMembers(memberStruct, sep); @@ -229,34 +229,12 @@ public: } void visit(StackFrame *frame) { - String* tmp; - tmp = frame->module; - if (tmp != NULL) { - os << tmp->toString() << " "; - } - tmp = frame->function; - if (tmp != NULL) { - os << "at " << tmp->toString() << "() "; - } - tmp = frame->filename; - if (tmp != NULL) { - os << "at " << tmp->toString(); - tmp = frame->linenumber; - if (tmp != NULL) { - os << ":" << tmp->toString() << " "; - } - } - else { - tmp = frame->offset; - if (tmp != NULL) { - os << "[" << tmp->toString() << "]"; - } - } + frame->dump(os); } - void visit(Backtrace* backtrace) { - for (int i = 0; i < backtrace->frames.size(); i ++) { - visit(backtrace->frames[i]); + void visit(Backtrace & backtrace) { + for (int i = 0; i < backtrace.size(); i ++) { + visit(backtrace[i]); os << "\n"; } } @@ -306,7 +284,7 @@ public: if (call->backtrace != NULL) { os << bold << red << "Backtrace:\n" << normal; - visit(call->backtrace); + visit(*call->backtrace); } if (callFlags & CALL_FLAG_END_FRAME) { os << "\n";