]> git.cworth.org Git - apitrace/blobdiff - common/trace_dump.cpp
cli: use $LIB to handle multilib automagically on glibc
[apitrace] / common / trace_dump.cpp
index c757cb8d6508a5c1502a926fbaaa42b700dcf3e6..8732d1e56aeeb580a046f0b64b99d7ac8bb0de15 100644 (file)
@@ -178,7 +178,7 @@ public:
 
             if (!memberName || !*memberName) {
                 // Anonymous structure
-                Struct *memberStruct = dynamic_cast<Struct *>(memberValue);
+                Struct *memberStruct = memberValue->toStruct();
                 assert(memberStruct);
                 if (memberStruct) {
                     sep = visitMembers(memberStruct, sep);
@@ -229,28 +229,12 @@ public:
     }
 
     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";
         }
     }