aboutsummaryrefslogtreecommitdiff
path: root/frida_mode/include/stats.h
diff options
context:
space:
mode:
authorvan Hauser <vh@thc.org>2021-08-20 23:54:59 +0200
committerGitHub <noreply@github.com>2021-08-20 23:54:59 +0200
commit2e15661f184c77ac1fbb6f868c894e946cbb7f17 (patch)
tree665b9368d2c1908cf71dbc4a76517f88c5317d9a /frida_mode/include/stats.h
parent32a0d6ac31554a47dca591f8978982758fb87677 (diff)
parentca9c87dd45d8b9a746a212cbc6ce85b78b637d8c (diff)
downloadafl++-2e15661f184c77ac1fbb6f868c894e946cbb7f17.tar.gz
Merge pull request #1074 from AFLplusplus/dev
push to stable
Diffstat (limited to 'frida_mode/include/stats.h')
-rw-r--r--frida_mode/include/stats.h56
1 files changed, 41 insertions, 15 deletions
diff --git a/frida_mode/include/stats.h b/frida_mode/include/stats.h
index cd2350ea..0ad227c3 100644
--- a/frida_mode/include/stats.h
+++ b/frida_mode/include/stats.h
@@ -5,30 +5,56 @@
typedef struct {
- guint64 num_blocks;
- guint64 num_instructions;
- guint64 stats_last_time;
- guint64 stats_idx;
- guint64 transitions_idx;
+ guint64 stats_time;
+ guint64 total;
+ guint64 call_imm;
+ guint64 call_reg;
+ guint64 call_mem;
+ guint64 excluded_call_reg;
+ guint64 ret_slow_path;
+ guint64 ret;
+ guint64 post_call_invoke;
+ guint64 excluded_call_imm;
+ guint64 jmp_imm;
+ guint64 jmp_reg;
+ guint64 jmp_mem;
+ guint64 jmp_cond_imm;
+ guint64 jmp_cond_mem;
+ guint64 jmp_cond_reg;
+ guint64 jmp_cond_jcxz;
+ guint64 jmp_cond_cc;
+ guint64 jmp_cond_cbz;
+ guint64 jmp_cond_cbnz;
+ guint64 jmp_cond_tbz;
+ guint64 jmp_cond_tbnz;
+ guint64 jmp_continuation;
+
+} stats_t;
-} stats_data_header_t;
+typedef struct {
+
+ /* transitions */
+ stats_t curr;
+ stats_t prev;
+
+} stats_data_t;
-extern stats_data_header_t *stats_data;
+#define GUM_TYPE_AFL_STALKER_STATS (gum_afl_stalker_stats_get_type())
+G_DECLARE_FINAL_TYPE(GumAflStalkerStats, gum_afl_stalker_stats, GUM,
+ AFL_STALKER_STATS, GObject)
-extern char * stats_filename;
-extern guint64 stats_interval;
-extern gboolean stats_transitions;
+extern char * stats_filename;
+extern guint64 stats_interval;
void stats_config(void);
void stats_init(void);
void stats_collect(const cs_insn *instr, gboolean begin);
void stats_print(char *format, ...);
-gboolean stats_is_supported_arch(void);
-size_t stats_data_size_arch(void);
-void stats_collect_arch(const cs_insn *instr);
-void stats_write_arch(void);
-void stats_on_fork(void);
+void starts_arch_init(void);
+void stats_collect_arch(const cs_insn *instr, gboolean begin);
+void stats_write_arch(stats_data_t *data);
+void stats_on_fork(void);
#endif