X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;ds=sidebyside;f=common%2Ftrace_writer_model.cpp;h=4cf82f65242f79f2e76d023dbaee2f0d478a2cf3;hb=4ce88b87e64c56b2638ee2b6b4785b4ed35aabd6;hp=96544d1502f6eb24c74343866764722f05ec70b2;hpb=ee659c84695e9f94b1f6a5f8be203dc0012ca685;p=apitrace diff --git a/common/trace_writer_model.cpp b/common/trace_writer_model.cpp index 96544d1..4cf82f6 100644 --- a/common/trace_writer_model.cpp +++ b/common/trace_writer_model.cpp @@ -97,11 +97,25 @@ public: } void visit(Pointer *node) { - writer.writeOpaque((const void *) (size_t) node->value); + writer.writePointer(node->value); + } + + void visit(Repr *node) { + writer.beginRepr(); + _visit(node->humanValue); + _visit(node->machineValue); + writer.endRepr(); } void visit(Call *call) { unsigned call_no = writer.beginEnter(call->sig, call->thread_id); + if (call->backtrace != NULL) { + writer.beginBacktrace(call->backtrace->size()); + for (unsigned i = 0; i < call->backtrace->size(); ++i) { + writer.writeStackFrame((*call->backtrace)[i]); + } + writer.endBacktrace(); + } for (unsigned i = 0; i < call->args.size(); ++i) { if (call->args[i].value) { writer.beginArg(i);