Merge branch 'dev' into systemz
This commit is contained in:
@ -369,6 +369,8 @@ struct uc_struct {
|
||||
int nested_level; // Current nested_level
|
||||
|
||||
struct TranslationBlock *last_tb; // The real last tb we executed.
|
||||
|
||||
FlatView *empty_view; // Static function variable moved from flatviews_init
|
||||
};
|
||||
|
||||
// Metadata stub for the variable-size cpu context used with uc_context_*()
|
||||
@ -397,5 +399,31 @@ static inline int uc_addr_is_exit(uc_engine *uc, uint64_t addr)
|
||||
return g_tree_lookup(uc->exits, (gpointer)(&addr)) == (gpointer)1;
|
||||
}
|
||||
|
||||
#ifdef UNICORN_TRACER
|
||||
#define UC_TRACE_START(loc) trace_start(get_tracer(), loc)
|
||||
#define UC_TRACE_END(loc, fmt, ...) \
|
||||
trace_end(get_tracer(), loc, fmt, __VA_ARGS__)
|
||||
|
||||
typedef enum trace_loc {
|
||||
UC_TRACE_TB_EXEC = 0,
|
||||
UC_TRACE_TB_TRANS,
|
||||
UC_TRACER_MAX
|
||||
} trace_loc;
|
||||
|
||||
typedef struct uc_tracer {
|
||||
int64_t starts[UC_TRACER_MAX];
|
||||
} uc_tracer;
|
||||
|
||||
uc_tracer *get_tracer();
|
||||
|
||||
void trace_start(uc_tracer *tracer, trace_loc loc);
|
||||
|
||||
void trace_end(uc_tracer *tracer, trace_loc loc, const char *fmt, ...);
|
||||
|
||||
#else
|
||||
#define UC_TRACE_START(loc)
|
||||
#define UC_TRACE_END(loc, fmt, ...)
|
||||
#endif
|
||||
|
||||
#endif
|
||||
/* vim: set ts=4 noet: */
|
||||
|
Reference in New Issue
Block a user