DR_EXPORT void dr_init(client_id_t id) { drmgr_init(); write_sysnum = get_write_sysnum(); dr_register_filter_syscall_event(event_filter_syscall); drmgr_register_pre_syscall_event(event_pre_syscall); drmgr_register_post_syscall_event(event_post_syscall); dr_register_exit_event(event_exit); tcls_idx = drmgr_register_cls_field(event_thread_context_init, event_thread_context_exit); DR_ASSERT(tcls_idx != -1); #ifdef SHOW_RESULTS if (dr_is_notify_on()) { # ifdef WINDOWS /* ask for best-effort printing to cmd window. must be called in dr_init(). */ dr_enable_console_printing(); # endif dr_fprintf(STDERR, "Client strace is running\n"); } #endif }
DR_EXPORT void dr_client_main(client_id_t id, int argc, const char *argv[]) { dr_set_client_name("DynamoRIO Sample Client 'syscall'", "http://dynamorio.org/issues"); drmgr_init(); write_sysnum = get_write_sysnum(); dr_register_filter_syscall_event(event_filter_syscall); drmgr_register_pre_syscall_event(event_pre_syscall); drmgr_register_post_syscall_event(event_post_syscall); dr_register_exit_event(event_exit); tcls_idx = drmgr_register_cls_field(event_thread_context_init, event_thread_context_exit); DR_ASSERT(tcls_idx != -1); #ifdef SHOW_RESULTS if (dr_is_notify_on()) { # ifdef WINDOWS /* ask for best-effort printing to cmd window. must be called at init. */ dr_enable_console_printing(); # endif dr_fprintf(STDERR, "Client syscall is running\n"); } #endif }