X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=retrace%2Fretrace.cpp;h=bbd10b45c2cd58cb12a5cbe2892675b1c0f25ee8;hb=91ccf284bcd074d6039a750e3bca4f4e8cb2ff2f;hp=182d1182eece7f2768ebaf15df8de70f249e14d6;hpb=e7cb2b98575d5ff3801bd3527a648e0dbfdebdad;p=apitrace diff --git a/retrace/retrace.cpp b/retrace/retrace.cpp index 182d118..bbd10b4 100644 --- a/retrace/retrace.cpp +++ b/retrace/retrace.cpp @@ -28,19 +28,22 @@ #include #include "os_time.hpp" -#include "trace_dump.hpp" #include "retrace.hpp" namespace retrace { +trace::DumpFlags dumpFlags = 0; + + static bool call_dumped = false; static void dumpCall(trace::Call &call) { if (verbosity >= 0 && !call_dumped) { - std::cout << call; + std::cout << std::hex << call.thread_id << std::dec << " "; + trace::dump(call, std::cout, dumpFlags); std::cout.flush(); call_dumped = true; } @@ -82,13 +85,6 @@ void Retracer::addCallbacks(const Entry *entries) { void Retracer::retrace(trace::Call &call) { call_dumped = false; - if (verbosity >= 1) { - if (verbosity >= 2 || - !(call.flags & trace::CALL_FLAG_VERBOSE)) { - dumpCall(call); - } - } - Callback callback = 0; trace::Id id = call.sig->id; @@ -112,6 +108,14 @@ void Retracer::retrace(trace::Call &call) { assert(callback); assert(callbacks[id] == callback); + if (verbosity >= 1) { + if (verbosity >= 2 || + (!(call.flags & trace::CALL_FLAG_VERBOSE) && + callback != &ignore)) { + dumpCall(call); + } + } + callback(call); }