X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=common%2Ftrace_writer.hpp;h=4c9547788c8e28b5833943744b86f18f533280dd;hb=cad5d619dcb5e1c6349bfff69176660668402622;hp=6440ab9cec41c19375ffb44bcc52b8e56377c065;hpb=aa1b2136cc72893e519ff73c47e2ecd29cafe1da;p=apitrace diff --git a/common/trace_writer.hpp b/common/trace_writer.hpp index 6440ab9..4c95477 100644 --- a/common/trace_writer.hpp +++ b/common/trace_writer.hpp @@ -36,7 +36,6 @@ #include #include "trace_model.hpp" -#include "trace_backtrace.hpp" namespace trace { class File; @@ -50,6 +49,7 @@ namespace trace { std::vector structs; std::vector enums; std::vector bitmasks; + std::vector frames; public: Writer(); @@ -58,23 +58,7 @@ namespace trace { bool open(const char *filename); void close(void); - void writeBacktrace(std::vector backtrace); - void beginBacktrace(void); - void endBacktrace(void); - void beginStackFrame(void); - inline void endStackFrame(void) {} - void beginStackFrameModule(void); - inline void endStackFrameModule(void) {} - void beginStackFrameFunction(void); - inline void endStackFrameFunction(void) {} - void beginStackFrameFilename(void); - inline void endStackFrameFilename(void) {} - void beginStackFrameLinenumber(void); - inline void endStackFrameLinenumber(void) {} - void beginStackFrameOffset(void); - inline void endStackFrameOffset(void) {} - - unsigned beginEnter(FunctionSig *sig, unsigned thread_id); + unsigned beginEnter(const FunctionSig *sig, unsigned thread_id); void endEnter(void); void beginLeave(unsigned call); @@ -86,6 +70,10 @@ namespace trace { void beginReturn(void); inline void endReturn(void) {} + void beginBacktrace(unsigned num_frames); + void writeStackFrame(const RawStackFrame *frame); + inline void endBacktrace(void) {} + void beginArray(size_t length); inline void endArray(void) {}