Skip to content

Instantly share code, notes, and snippets.

@tobytripp
Created August 25, 2010 19:29
Show Gist options
  • Save tobytripp/550120 to your computer and use it in GitHub Desktop.
Save tobytripp/550120 to your computer and use it in GitHub Desktop.
Sample of a running PeepOpen process that is stuck reloading the project directory
Sampling process 67060 for 3 seconds with 1 millisecond of run time between samples
Sampling completed, processing symbols...
Analysis of sampling PeepOpen (pid 67060) every 1 millisecond
Call graph:
2652 Thread_1397568 DispatchQueue_1: com.apple.main-thread (serial)
2652 start
2652 macruby_main
2652 ruby_run_node
2652 rb_vm_run
2652 0x1014009f4
2652 rb_vm_dispatch
2652 0x101406ea0
2652 NSApplicationMain
2652 -[NSApplication run]
2652 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:]
2652 _DPSNextEvent
2652 BlockUntilNextEventMatchingListInMode
2652 ReceiveNextEventCommon
2652 RunCurrentEventLoopInMode
2652 CFRunLoopRunSpecific
2652 __CFRunLoopRun
2652 mach_msg
2652 mach_msg_trap
2652 Thread_1397575 DispatchQueue_2: com.apple.libdispatch-manager (serial)
2652 start_wqthread
2652 _pthread_wqthread
2652 _dispatch_worker_thread2
2652 _dispatch_queue_invoke
2652 _dispatch_mgr_invoke
2652 kevent
2652 Thread_1397614 DispatchQueue_32: com.topfunky.PeepOpen.FuzzyWindowController (serial)
2652 thread_start
2652 _pthread_start
2652 __NSThread__main__
2652 0x101405415
2652 MREP_62B8DEE4BBA1452182F70FC643AC5EE0_ruby_scope7
2652 rb_vm_dispatch
2652 rb_queue_dispatch_sync
2652 dispatch_barrier_sync_f
2652 rb_rescue2
2652 rb_vm_block_eval
2652 MREP_62B8DEE4BBA1452182F70FC643AC5EE0_ruby_scope8
2652 rb_vm_dispatch
2652 MREP_DB91DE365E964335854A0EA4D8A50572_ruby_scope3
2652 rb_vm_dispatch
2652 MREP_FADDFB00841B4838BF1F700CE3B8FAB0_ruby_scope6
2652 rb_vm_dispatch
2652 MREP_FADDFB00841B4838BF1F700CE3B8FAB0_ruby_scope13
2652 rb_vm_dispatch
2652 rb_f_backquote
2652 rb_io_read_all
2613 rb_io_read_internal
2612 read
1 fstat64
33 rb_bstr_resize
32 str_resize_bytes
31 ruby_xrealloc
30 malloc_zone_realloc
29 auto_realloc(_malloc_zone_t*, void*, unsigned long)
14 Auto::Zone::block_allocate(Auto::Thread&, unsigned long, unsigned int, bool, bool)
9 auto_collect
6 pthread_mutex_unlock
6 semaphore_signal_trap
2 _dispatch_queue_push_list_slow
2 _dispatch_wakeup
2 _dispatch_queue_push_list_slow
2 _dispatch_wakeup
2 _dispatch_queue_wakeup_global
2 pthread_workqueue_additem_np
2 pick_nextworkqueue_droplock
2 __workq_kernreturn
1 _dispatch_async_f_slow
5 Auto::Zone::allocate_large(Auto::Thread&, unsigned long&, unsigned int, bool, bool)
5 __bzero
12 auto_zone_write_barrier_memmove
6 Auto::Thread::track_local_memcopy(Auto::Zone*, void const*, void*, unsigned long)
6 __memcpy
2 Auto::Zone::block_refcount_and_layout(void*, int*, int*)
1 Auto::Zone::block_refcount_and_layout(void*, int*, int*)
1 _spin_lock
1 auto_round_page
1 malloc_zone_realloc
1 ruby_xrealloc
1 auto_zone_set_write_barrier
1 rb_bstr_resize
6 rb_io_read_all
2652 Thread_1612519
2652 start_wqthread
2652 _pthread_wqthread
2652 __workq_kernreturn
2652 Thread_1703235
2652 thread_start
2652 _pthread_start
2652 __NSThread__main__
2652 0x101405415
2652 MREP_62B8DEE4BBA1452182F70FC643AC5EE0_ruby_scope7
2652 rb_vm_dispatch
2652 rb_queue_dispatch_sync
2652 _dispatch_barrier_sync_f_slow
2652 _dispatch_semaphore_wait_slow
2652 semaphore_wait_trap
2652 Thread_1757536
2652 thread_start
2652 _pthread_start
2652 __NSThread__main__
2652 0x101405415
2652 MREP_62B8DEE4BBA1452182F70FC643AC5EE0_ruby_scope7
2652 rb_vm_dispatch
2652 rb_queue_dispatch_sync
2652 _dispatch_barrier_sync_f_slow
2652 _dispatch_semaphore_wait_slow
2652 semaphore_wait_trap
2652 Thread_1773574
2652 thread_start
2652 _pthread_start
2652 __NSThread__main__
2652 0x101405415
2652 MREP_62B8DEE4BBA1452182F70FC643AC5EE0_ruby_scope7
2652 rb_vm_dispatch
2652 rb_queue_dispatch_sync
2652 _dispatch_barrier_sync_f_slow
2652 _dispatch_semaphore_wait_slow
2652 semaphore_wait_trap
2652 Thread_1773610
2652 thread_start
2652 _pthread_start
2652 startIOThread(void*)
2652 CVDisplayLink::runIOThread()
2652 _pthread_cond_wait
2652 __semwait_signal
2511 Thread_1877673
2511 start_wqthread
2510 _pthread_wqthread
2509 __workq_kernreturn
1 _dispatch_worker_thread2
1 start_wqthread
137 Thread_1877673 DispatchQueue_10: Garbage Collection Work Queue (serial)
137 start_wqthread
137 _pthread_wqthread
137 _dispatch_worker_thread2
137 _dispatch_queue_invoke
137 _dispatch_queue_drain
137 _dispatch_call_block_and_release
137 auto_collection_work(Auto::Zone*)
137 auto_collect_internal(Auto::Zone*, unsigned int)
126 Auto::Zone::collect(bool, void*, unsigned long long*)
93 Auto::MemoryScanner::scan()
52 Auto::Collector::check_roots()
48 Auto::MemoryScanner::scan_retained_and_old_blocks()
48 bool Auto::visitAllocatedBlocks<Auto::scan_retained_and_old_blocks_visitor>(Auto::Zone*, Auto::scan_retained_and_old_blocks_visitor&)
36 bool Auto::visitAllocatedBlocks<Auto::scan_retained_and_old_blocks_visitor>(Auto::Zone*, Auto::scan_retained_and_old_blocks_visitor&)
12 Auto::WriteBarrier::range_has_marked_cards(void*, unsigned long)
4 Auto::MemoryScanner::scan_retained_blocks()
4 bool Auto::visitAllocatedBlocks<Auto::scan_retained_blocks_visitor>(Auto::Zone*, Auto::scan_retained_blocks_visitor&)
24 Auto::MemoryScanner::scan_pending_until_done()
20 Auto::MemoryScanner::scan_for_unmarked_blocks(Auto::Subzone*, unsigned long, void*)
14 Auto::MemoryScanner::scan_object_range(Auto::Range&, Auto::WriteBarrier*)
7 Auto::MemoryScanner::scan_range(Auto::Range const&, Auto::WriteBarrier*)
4 Auto::MemoryScanner::scan_range(Auto::Range const&, Auto::WriteBarrier*)
3 Auto::MemoryScanner::set_pending(void*)
3 Auto::MemoryScanner::scan_object_range(Auto::Range&, Auto::WriteBarrier*)
3 objc_layout_for_address
1 class_getIvarLayout
3 Auto::MemoryScanner::scan_for_unmarked_blocks(Auto::Subzone*, unsigned long, void*)
3 Auto::MemoryScanner::scan_range(Auto::Range const&, Auto::WriteBarrier*)
2 Auto::MemoryScanner::scan_pending_until_done()
1 Auto::MemoryScanner::scan_range(Auto::Range const&, Auto::WriteBarrier*)
1 Auto::WriteBarrier::scan_marked_ranges(void*, unsigned long, Auto::MemoryScanner&)
1 Auto::MemoryScanner::scan_range(Auto::Range const&, Auto::WriteBarrier*)
15 Auto::MemoryScanner::scan_thread_ranges(bool, bool)
15 Auto::Zone::scan_registered_threads(void ( block_pointer)(Auto::Thread*))
15 Auto::Thread::scan_other_thread(Auto::MemoryScanner&, bool)
7 Auto::MemoryScanner::scan_pending_until_done()
6 Auto::MemoryScanner::scan_range(Auto::Range const&, Auto::WriteBarrier*)
1 Auto::MemoryScanner::scan_pending_until_done()
3 Auto::Thread::get_register_state(Auto::ThreadState&, unsigned int&)
3 thread_get_state
3 mach_msg
3 mach_msg_trap
3 Auto::Thread::resume()
3 thread_resume
3 mach_msg
3 mach_msg_trap
1 Auto::MemoryScanner::scan_range(Auto::Range const&, Auto::WriteBarrier*)
1 Auto::Thread::suspend()
1 thread_suspend
1 mach_msg
1 mach_msg_trap
1 Auto::Collector::scan_barrier()
1 Auto::Zone::enlivening_barrier(Auto::MemoryScanner&)
1 Auto::MemoryScanner::scan_root_ranges()
1 Auto::MemoryScanner::scan_range(Auto::Range const&, Auto::WriteBarrier*)
24 bool Auto::visitAllocatedBlocks<Auto::scavenge_blocks_visitor>(Auto::Zone*, Auto::scavenge_blocks_visitor&)
5 Auto::Zone::scan_associations(Auto::MemoryScanner&)
4 Auto::Zone::scan_associations(Auto::MemoryScanner&)
1 Auto::MemoryScanner::set_pending(void*)
2 Auto::WriteBarrier::clear_untouched_cards()
2 Auto::WriteBarrier::mark_cards_untouched()
10 Auto::Zone::free_garbage(unsigned int, unsigned long, unsigned long*, unsigned long&, unsigned long&)
10 Auto::Zone::deallocate_large(void*)
10 Auto::Zone::arena_deallocate(void*, unsigned long)
10 posix_madvise
1 auto_collect_internal(Auto::Zone*, unsigned int)
4 Thread_1877673 DispatchQueue_9: com.apple.root.high-overcommit-priority (serial)
4 start_wqthread
4 _pthread_wqthread
4 _dispatch_worker_thread2
4 _dispatch_queue_invoke
Total number in stack (recursive counted multiple, when >=5):
9 rb_vm_dispatch
7 Auto::MemoryScanner::scan_range(Auto::Range const&, Auto::WriteBarrier*)
5 _pthread_start
5 _pthread_wqthread
5 start_wqthread
5 thread_start
Sort by top of stack, same collapsed (when >= 5):
semaphore_wait_trap 7956
__workq_kernreturn 5163
mach_msg_trap 2659
__semwait_signal 2652
kevent 2652
read 2612
bool Auto::visitAllocatedBlocks<Auto::scan_retained_and_old_blocks_visitor>(Auto::Zone*, Auto::scan_retained_and_old_blocks_visitor&) 36
bool Auto::visitAllocatedBlocks<Auto::scavenge_blocks_visitor>(Auto::Zone*, Auto::scavenge_blocks_visitor&) 24
Auto::MemoryScanner::scan_range(Auto::Range const&, Auto::WriteBarrier*) 17
Auto::WriteBarrier::range_has_marked_cards(void*, unsigned long) 12
posix_madvise 10
Auto::Thread::track_local_memcopy(Auto::Zone*, void const*, void*, unsigned long) 6
__memcpy 6
rb_io_read_all 6
semaphore_signal_trap 6
__bzero 5
Sample analysis of process 67060 written to file /dev/stdout
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment