Пример #1
0
static
void exit_event2(void)
{
    dr_fprintf(STDERR, "exit event 2\n");
    dr_flush_file(STDOUT);

    if (!dr_unregister_exit_event(exit_event2))
        dr_fprintf(STDERR, "unregister failed!\n");
}
Пример #2
0
static
void exit_event1(void)
{
    dr_fprintf(STDERR, "exit event 1\n");
    dr_flush_file(STDOUT);

    if (!dr_unregister_exit_event(exit_event1))
        dr_fprintf(STDERR, "unregister failed!\n");
    check_result();
    dr_mutex_destroy(mutex);
}
Пример #3
0
void dr_exit() {
  dr_fprintf(STDERR, "info: stopping dtrace..\n");

  tb_delete(trace_buffer);
  dr_mutex_destroy(trace_buffer_lock);

  dr_close_file(trace_file);
  dr_mutex_destroy(trace_file_lock);

  hashtable_delete(&tags);
  dr_mutex_destroy(tags_lock);

  dr_unregister_exit_event(&dr_exit);
  dr_unregister_thread_init_event(&handle_thread_init);
  dr_unregister_thread_exit_event(&handle_thread_exit);
  dr_unregister_bb_event(&handle_bb);
  dr_unregister_trace_event(&handle_trace);
  dr_unregister_delete_event(&handle_delete);
  dr_unregister_signal_event(&handle_signal);
  dr_unregister_restore_state_event(&handle_restore_state);
}