static void event_exit() { #ifdef SHOW_RESULTS char msg[512]; int len; len = dr_snprintf(msg, sizeof(msg)/sizeof(msg[0]), "Instrumentation results:\n" " saw %llu memory references\n", num_refs); DR_ASSERT(len > 0); NULL_TERMINATE_BUFFER(msg); DISPLAY_STRING(msg); #endif /* SHOW_RESULTS */ code_cache_exit(); if (!drmgr_unregister_tls_field(tls_index) || !drmgr_unregister_thread_init_event(event_thread_init) || !drmgr_unregister_thread_exit_event(event_thread_exit) || !drmgr_unregister_bb_insertion_event(event_bb_insert) || drreg_exit() != DRREG_SUCCESS) DR_ASSERT(false); dr_mutex_destroy(mutex); drutil_exit(); drmgr_exit(); }
void instrace_exit_event() { int i; DEBUG_PRINT("%s - total amount of instructions - %d\n",ins_pass_name, num_refs); if (client_arg->instrace_mode == OPCODE_TRACE){ dr_printf("opcodes that were covered in this part of the code - \n"); for (i = OP_FIRST; i <= OP_LAST; i++){ if (opcodes_visited[i]){ dr_printf(logfile,"%s - ", decode_opcode_name(i)); } } dr_printf("\n"); } md_delete_list(head, false); md_delete_list(instrace_head, false); dr_global_free(client_arg,sizeof(client_arg_t)); code_cache_exit(); drmgr_unregister_tls_field(tls_index); dr_mutex_destroy(mutex); if (log_mode){ dr_close_file(logfile); } drutil_exit(); drmgr_exit(); }
static void exit_event(void) { if (outfile != INVALID_FILE) { dr_fprintf(outfile, "exit while recording enabled\n"); dr_close_file(outfile); outfile = INVALID_FILE; } drsym_exit(); drreg_exit(); drwrap_exit(); drutil_exit(); drmgr_exit(); }
void memtrace_exit_event() { md_delete_list(head,false); code_cache_exit(); drmgr_unregister_tls_field(tls_index); if (log_mode){ dr_close_file(logfile); } dr_mutex_destroy(mutex); dr_global_free(client_arg, sizeof(client_arg_t)); drutil_exit(); drmgr_exit(); }
static void event_exit(void) { if (!drmgr_unregister_tls_field(tls_idx) || !drmgr_unregister_thread_init_event(event_thread_init) || !drmgr_unregister_thread_exit_event(event_thread_exit) || !drmgr_unregister_bb_app2app_event(event_bb_app2app) || !drmgr_unregister_bb_insertion_event(event_app_instruction)) DR_ASSERT(false); drx_buf_free(write_buffer); drx_buf_free(trace_buffer); drutil_exit(); drreg_exit(); drmgr_exit(); drx_exit(); }
static void event_exit(void) { dr_log(NULL, DR_LOG_ALL, 1, "Client 'memtrace' num refs seen: " SZFMT "\n", num_refs); if (!dr_raw_tls_cfree(tls_offs, MEMTRACE_TLS_COUNT)) DR_ASSERT(false); if (!drmgr_unregister_tls_field(tls_idx) || !drmgr_unregister_thread_init_event(event_thread_init) || !drmgr_unregister_thread_exit_event(event_thread_exit) || !drmgr_unregister_bb_app2app_event(event_bb_app2app) || !drmgr_unregister_bb_insertion_event(event_app_instruction) || drreg_exit() != DRREG_SUCCESS) DR_ASSERT(false); dr_mutex_destroy(mutex); drutil_exit(); drmgr_exit(); }
void memdump_exit_event(void) { int i = 0; md_delete_list(filter_head, false); md_delete_list(done_head, false); md_delete_list(app_pc_head, false); dr_global_free(client_arg, sizeof(client_arg_t)); drmgr_unregister_tls_field(tls_index); if (log_mode){ dr_close_file(logfile); } for (i = 0; i < instr_clone_amount; i++){ instr_destroy(dr_get_current_drcontext(), instr_clones[i]); } dr_mutex_destroy(mutex); drutil_exit(); drmgr_exit(); drwrap_exit(); }