Esempio n. 1
0
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);
    drmgr_exit();
}
Esempio n. 2
0
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();
}
Esempio n. 3
0
static void
event_exit(void)
{
    drmgr_unregister_tls_field(tls_idx);
    drwrap_exit();
    drmgr_exit();
    dr_fprintf(STDERR, "all done\n");
}
Esempio n. 4
0
void <client_name>_exit_event(void)
{

	md_delete_list(head, false);
	dr_global_free(client_arg, sizeof(client_arg_t));
	drmgr_unregister_tls_field(tls_index);
	if (log_mode){
		dr_close_file(logfile);
	}
	drmgr_exit();

}
Esempio n. 5
0
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();
}
Esempio n. 6
0
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();
}
Esempio n. 7
0
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();
}
Esempio n. 8
0
drcovlib_status_t
drcovlib_exit(void)
{
    int count = dr_atomic_add32_return_sum(&drcovlib_init_count, -1);
    if (count != 0)
        return DRCOVLIB_SUCCESS;

    if (!drcov_per_thread) {
        dump_drcov_data(NULL, global_data);
        global_data_destroy(global_data);
    }
    /* destroy module table */
    drmodtrack_exit();

    drmgr_unregister_tls_field(tls_idx);

    drx_exit();
    drmgr_exit();

    return DRCOVLIB_SUCCESS;
}
Esempio n. 9
0
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();

}