X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=common%2Ftrace_format.hpp;h=4952ee3310a08af827d3f7ffa69506db5eccbe58;hb=52398312caaba3e1bc0613016d5bf3507d1e242a;hp=5aade00361f4c70d6a6ddb814f30debc355cc271;hpb=eb64451efcd8100d02ec89ff2ae6ea2c78c7645b;p=apitrace diff --git a/common/trace_format.hpp b/common/trace_format.hpp index 5aade00..4952ee3 100644 --- a/common/trace_format.hpp +++ b/common/trace_format.hpp @@ -66,8 +66,14 @@ namespace trace { * * - version 3: * - enums signatures are recorded for the a whole set of values (not as individual values) + * + * - version 4: + * - call enter events include thread ID + * + * - version 5: + * - new call detail flag CALL_BACKTRACE */ -#define TRACE_VERSION 3 +#define TRACE_VERSION 5 /* @@ -75,13 +81,15 @@ namespace trace { * * trace = event* EOF * - * event = EVENT_ENTER call_sig call_detail+ + * event = EVENT_ENTER thread_id call_sig call_detail+ * | EVENT_LEAVE call_no call_detail+ * * call_sig = sig_id ( name arg_names )? * * call_detail = ARG index value * | RET value + * | THREAD int + * | BACKTRACE int frame* * | END * * value = NULL @@ -93,11 +101,22 @@ namespace trace { * | DOUBLE double * | STRING string * | BLOB string - * | ENUM enum_sig + * | ENUM enum_sig value * | BITMASK bitmask_sig value * | ARRAY length value+ * | STRUCT struct_sig value+ * | OPAQUE int + * | REPR value value + * + * frame = id frame_detail+ + * | id + * + * frame_detail = MODULE string + * | FUNCTION string + * | FILENAME string + * | LINENUMBER uint + * | OFFSET uint + * | END * * call_sig = id name arg_name* * | id @@ -123,6 +142,7 @@ enum CallDetail { CALL_ARG, CALL_RET, CALL_THREAD, + CALL_BACKTRACE, }; enum Type { @@ -140,6 +160,16 @@ enum Type { TYPE_ARRAY, TYPE_STRUCT, TYPE_OPAQUE, + TYPE_REPR, +}; + +enum BacktraceDetail { + BACKTRACE_END = 0, + BACKTRACE_MODULE, + BACKTRACE_FUNCTION, + BACKTRACE_FILENAME, + BACKTRACE_LINENUMBER, + BACKTRACE_OFFSET, };