I figured I'd try dtrace for a change, since I have it here. Running it for a few seconds results in this: Code: hyperborea:~ > pfexec dtrace -n 'pid712:::entry { @n[probefunc] = count(); }' dtrace: description 'pid712:::entry ' matched 6880 probes ^C _bufsync 1 _dowrite 1 _flsbuf 1 _morecore 1 periodic_save 1 putc_unlocked 1 set_periodic_save_timer 1 __cerror 2 __fcntl_syscall 2 _brk_unlocked 2 _fflush_u 2 _findbuf 2 _findiop 2 _sbrk_unlocked 2 _setbufend 2 _setorientation 2 _wrtchk 2 abandon_mutexes 2 close_handle 2 debug_exit_thread 2 destroy_thread 2 fchdir 2 fclose 2 fcntl 2 fdopen 2 free_ptid 2 generate_debug_event 2 getpid 2 ioctl 2 isatty 2 isseekable 2 kill_console_processes 2 kill_thread 2 lmutex_lock 2 lmutex_unlock 2 lstat64 2 remove_process_thread 2 rename 2 req_close_handle 2 s_fcntl 2 save_all_subkeys 2 sbrk 2 strcpy 2 strrchr 2 save_branch 3 __open64_syscall 4 _private_open64 4 cleanup_clipboard_thread 4 cleanup_thread 4 close_thread_desktop 4 destroy_thread_windows 4 free_msg_queue 4 fstat64 4 get_process_winstation 4 open64 4 remove_thread_hooks 4 fd_destroy 6 clear_apc_queue 8 getiop 8 ___errno 10 _aio_close 10 _private_close 10 close 10 expose_window 11 get_class_atom 11 rect_in_region 11 req_get_window_info 11 req_set_window_pos 11 union_region 11 xor_region 11 create_region_from_req_data 12 _xflsbuf 14 remove_timeout_user 16 free_async_queue 18 clip_children 22 get_ptid_entry 22 get_thread_from_id 22 req_get_thread_input 22 get_child_update_flags 23 link_timer 27 msg_queue_add_queue 27 msg_queue_remove_queue 27 msg_queue_satisfied 27 reset_event 27 set_event 27 timer_callback 27 find_window_to_repaint 33 get_desktop_window 33 subtract_non_overlapping 33 req_redraw_window 34 release_hook_chain 44 req_finish_hook_chain 44 req_get_hook_info 44 req_start_hook_chain 44 redraw_window 45 validate_whole_window 45 check_fd_events 54 msg_queue_signaled 54 set_next_timer 54 copy_region 56 wake_up 56 get_tick_count 60 subtract_overlapping 66 subtract_region 66 crop_region_to_win_rect 79 next_user_handle 80 make_clean 84 req_get_message 87 inc_queue_paint_count 90 thread_timeout 98 set_update_region 101 set_fd_events 108 req_get_window_children 110 set_reply_data_size 110 req_get_visible_region 111 get_update_flags 112 req_set_caret_info 112 req_select 123 req_get_update_region 124 end_wait 125 send_thread_wakeup 125 wake_thread 125 get_active_hooks 131 get_visible_region 133 add_timeout_user 140 check_wait 150 get_region_data_and_free 156 find_child_to_repaint 176 get_user_full_handle 199 req_get_window_property 200 get_queue_hooks 219 get_global_hooks 223 get_desktop_obj 256 get_thread_desktop 256 __writev 266 writev 266 free_region 301 is_visible 302 t_splay 359 create_empty_region 445 t_delete 457 intersect_overlapping 499 intersect_region 499 sprintf 525 coalesce_region 532 region_op 565 set_region_extents 577 set_region_client_rect 610 is_region_empty 643 req_set_window_info 682 set_region_rect 698 offset_region 889 _smalloc 1097 cleanfree 1345 get_user_object 1350 handle_to_entry 1437 realfree 1563 __write 1634 write 1634 is_hook_active 1683 call_req_handler 1761 read_request 1761 thread_poll_event 1763 mem_alloc 1852 memset 1862 __read 1907 read 1907 _malloc_unlocked 2002 malloc 2002 _free_unlocked 3529 free 3529 mutex_lock 5531 mutex_lock_impl 5531 mutex_unlock 5531 event_signaled 6144 add_queue 6171 remove_queue 6173 get_handle_obj 6431 get_handle 6433 save_subkeys 8488 dump_value 14151 fputc 28086 putc 28086 fprintf 32571 _realbufend 32588 getxfdat 32590 _ndoprnt 33096 dump_path 43652 memcpy 51934 dump_strW 64130 ferror 65667 fwrite 119223 _fwrite_unlocked 119224 __so_recvmsg 516960 _so_recvmsg 516960 kill_process 516960 receive_fd 516960 recvmsg 516960 gettimeofday 516961 process_poll_event 516961 __pollsys 517015 _pollsys 517015 poll 517015 __divdi3 517021 get_fd_user 518723 get_unix_fd 520753 grab_object 529576 release_object 529591