X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=common%2Ftrace_writer.hpp;h=4c9547788c8e28b5833943744b86f18f533280dd;hb=2a5696befce6be00fa655b751af5ce2924ea45ae;hp=e012a9b24a0cf25787f7b95182066ad96ef0cc56;hpb=a9d7f8edfea904f8dc84f2ad472cd542437935f7;p=apitrace diff --git a/common/trace_writer.hpp b/common/trace_writer.hpp index e012a9b..4c95477 100644 --- a/common/trace_writer.hpp +++ b/common/trace_writer.hpp @@ -37,7 +37,6 @@ #include "trace_model.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(); @@ -70,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) {} @@ -79,6 +83,9 @@ namespace trace { void beginStruct(const StructSig *sig); inline void endStruct(void) {} + void beginRepr(void); + inline void endRepr(void) {} + void writeBool(bool value); void writeSInt(signed long long value); void writeUInt(unsigned long long value); @@ -91,7 +98,7 @@ namespace trace { void writeEnum(const EnumSig *sig, signed long long value); void writeBitmask(const BitmaskSig *sig, unsigned long long value); void writeNull(void); - void writeOpaque(const void *ptr); + void writePointer(unsigned long long addr); void writeCall(Call *call);