static void event_exit(void) { dr_mutex_destroy(syslock); dr_mutex_destroy(threadlock); CHECK(checked_tls_from_cache, "failed to hit clean call"); CHECK(checked_cls_from_cache, "failed to hit clean call"); CHECK(checked_tls_write_from_cache, "failed to hit clean call"); CHECK(checked_cls_write_from_cache, "failed to hit clean call"); CHECK(one_time_exec == 1, "failed to execute one-time event"); if (!drmgr_unregister_bb_instrumentation_event(event_bb_analysis)) CHECK(false, "drmgr unregistration failed"); if (!drmgr_unregister_bb_instrumentation_ex_event(event_bb4_app2app, event_bb4_analysis, event_bb4_insert, event_bb4_instru2instru)) CHECK(false, "drmgr unregistration failed"); if (!drmgr_unregister_cls_field(event_thread_context_init, event_thread_context_exit, cls_idx)) CHECK(false, "drmgr unregistration failed"); drmgr_exit(); dr_fprintf(STDERR, "all done\n"); }
static void event_exit(void) { show_results(); drmgr_unregister_cls_field(event_thread_context_init, event_thread_context_exit, tcls_idx); drmgr_exit(); }
static void event_exit(void) { dr_fprintf(STDERR, "client exiting\n"); drmgr_unregister_cls_field(event_thread_context_init, event_thread_context_exit, cls_idx); drmgr_exit(); }
static void event_exit(void) { show_results(); if (!drmgr_unregister_cls_field(event_thread_context_init, event_thread_context_exit, tcls_idx) || !drmgr_unregister_pre_syscall_event(event_pre_syscall) || !drmgr_unregister_post_syscall_event(event_post_syscall)) DR_ASSERT(false && "failed to unregister"); drmgr_exit(); }
static void event_exit(void) { CHECK(checked_tls_from_cache, "failed to hit clean call"); CHECK(checked_cls_from_cache, "failed to hit clean call"); CHECK(checked_tls_write_from_cache, "failed to hit clean call"); CHECK(checked_cls_write_from_cache, "failed to hit clean call"); drmgr_unregister_cls_field(event_thread_context_init, event_thread_context_exit, cls_idx); drmgr_exit(); dr_fprintf(STDERR, "all done\n"); }