X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=cli%2Fcli_pickle.cpp;h=3a9129f8782d0f4a1dc7b2d81616c37c0654e273;hb=940cdb8b143455fe2fc002ffd50f5e2ffcaf1260;hp=e3222dbbdc37500119a857df908c36a90244ea05;hpb=b16a4a88f021ec70cae2fc6278c2bd25224681a8;p=apitrace diff --git a/cli/cli_pickle.cpp b/cli/cli_pickle.cpp index e3222db..3a9129f 100644 --- a/cli/cli_pickle.cpp +++ b/cli/cli_pickle.cpp @@ -145,13 +145,21 @@ public: } void visit(Blob *node) { - writer.writeString((const char *)node->buf, node->size); + writer.writeByteArray(node->buf, node->size); } void visit(Pointer *node) { writer.writeInt(node->value); } + void visit(Repr *r) { + if (symbolic) { + _visit(r->humanValue); + } else { + _visit(r->machineValue); + } + } + void visit(Call *call) { writer.beginTuple(); @@ -238,6 +246,8 @@ command(int argc, char *argv[]) os::setBinaryMode(stdout); + std::cout.sync_with_stdio(false); + PickleWriter writer(std::cout); PickleVisitor visitor(writer, symbolic); @@ -245,7 +255,6 @@ command(int argc, char *argv[]) trace::Parser parser; if (!parser.open(argv[i])) { - std::cerr << "error: failed to open " << argv[i] << "\n"; return 1; }