Posts

Post marked as solved
1 Replies
380 Views
Hi, I have kernel panic and core dump file: Panic Report * panic(cpu 2 caller 0xffffff801265c266): "A kext releasing a(n) IOUSBInterface has corrupted the registry."@/SourceCache/xnu/xnu-6153.121.2/libkern/c++/OSObject.cpp:219 Backtrace (CPU 2), Frame : Return Address 0xffffff811e9a3d30 : 0xffffff801212bda1 0xffffff811e9a3db0 : 0xffffff801265c266 0xffffff811e9a3e00 : 0xffffff7f94857b6f 0xffffff811e9a3e20 : 0xffffff7f948579df 0xffffff811e9a3e40 : 0xffffff7f94857255 0xffffff811e9a3e70 : 0xffffff80126b3cad 0xffffff811e9a3eb0 : 0xffffff80126b379f 0xffffff811e9a3f30 : 0xffffff80126ae553 0xffffff811e9a3f70 : 0xffffff80126b4443 0xffffff811e9a3fb0 : 0xffffff80122125b7 I use "lldb -c [core.dump.file]" and "bt" to show the backtrace, but there is no symbols: thread #1: tid = 0x0000, 0xffffff8009abcecb, stop reason = signal SIGSTOP frame #0: 0xffffff8009abcecb frame #1: 0xffffff8009a1d636 frame #2: 0xffffff8009d4e45f frame #3: 0xffffff8009d4cf7d frame #4: 0xffffff8009d9e585 frame #5: 0xffffff8009d59942 frame #6: 0xffffff8009d58ebd frame #7: 0xffffff7f8b28c299 frame #8: 0xffffff8009d48dc1 frame #9: 0xffffff8009afc6ee frame #10: 0xffffff8009b103ee frame #11: 0xffffff8009b02bc9 frame #12: 0xffffff8009b03394 frame #13: 0xffffff8009de97ba Does anyone know how to symbolize it? I need the corresponding KDKs? Thanks!
Posted Last updated
.
Post not yet marked as solved
4 Replies
907 Views
Hi Experts,I created a simple deadlock program with dispatch concurrent queue but no label:dispatch_queue_t queueA = dispatch_queue_create(NULL, DISPATCH_QUEUE_CONCURRENT);dispatch_async(queueA, ^(){ NSLog(@"3:%@", [NSThread currentThread]); dispatch_barrier_sync(queueA, ^(){ NSLog(@"4:%@", [NSThread currentThread]); }); });the output of sample shows the dispatch queue is serial, not concurrent.2733 Thread_<multiple> DispatchQueue_25: (null) (serial) 2733 start_wqthread (in libsystem_pthread.dylib) + 13 [0x1003bce01] 2733 _pthread_wqthread (in libsystem_pthread.dylib) + 583 [0x1003bd0b7] 2733 _dispatch_worker_thread2 (in libdispatch.dylib) + 125 [0x1003572da] 2733 _dispatch_root_queue_drain (in libdispatch.dylib) + 334 [0x100356824] 2733 _dispatch_async_redirect_invoke (in libdispatch.dylib) + 769 [0x1003463b4] 2733 _dispatch_continuation_pop (in libdispatch.dylib) + 563 [0x1003472be] 2733 _dispatch_client_callout (in libdispatch.dylib) + 8 [0x100343f1b] 2733 _dispatch_call_block_and_release (in libdispatch.dylib) + 12 [0x100342e7c] 2733 __main_block_invoke_2.14 (in learn_oc) + 125 [0x10000176d] main.mm:249 2733 _dispatch_sync_f_slow (in libdispatch.dylib) + 223 [0x10035346c] 2733 __DISPATCH_WAIT_FOR_QUEUE__ (in libdispatch.dylib) + 301 [0x100353c90] 2733 _dispatch_thread_event_wait_slow (in libdispatch.dylib) + 33 [0x1003448ec] 2733 _dispatch_ulock_wait (in libdispatch.dylib) + 47 [0x10034480d] 2733 __ulock_wait (in libsystem_kernel.dylib) + 10 [0x7fff7e3e19de]But if I create the same concurrent queue with the label, the result is correct:dispatch_queue_t queueA = dispatch_queue_create("test", DISPATCH_QUEUE_CONCURRENT);2891 Thread_34199 DispatchQueue_25: test (concurrent) + 2891 start_wqthread (in libsystem_pthread.dylib) + 13 [0x1003bce01] + 2891 _pthread_wqthread (in libsystem_pthread.dylib) + 583 [0x1003bd0b7] + 2891 _dispatch_worker_thread2 (in libdispatch.dylib) + 125 [0x1003572da] + 2891 _dispatch_root_queue_drain (in libdispatch.dylib) + 334 [0x100356824] + 2891 _dispatch_async_redirect_invoke (in libdispatch.dylib) + 769 [0x1003463b4] + 2891 _dispatch_continuation_pop (in libdispatch.dylib) + 563 [0x1003472be] + 2891 _dispatch_client_callout (in libdispatch.dylib) + 8 [0x100343f1b] + 2891 _dispatch_call_block_and_release (in libdispatch.dylib) + 12 [0x100342e7c] + 2891 __main_block_invoke_2.15 (in learn_oc) + 125 [0x10000176d] main.mm:249 + 2891 _dispatch_sync_f_slow (in libdispatch.dylib) + 223 [0x10035346c] + 2891 __DISPATCH_WAIT_FOR_QUEUE__ (in libdispatch.dylib) + 301 [0x100353c90] + 2891 _dispatch_thread_event_wait_slow (in libdispatch.dylib) + 33 [0x1003448ec] + 2891 _dispatch_ulock_wait (in libdispatch.dylib) + 47 [0x10034480d] + 2891 __ulock_wait (in libsystem_kernel.dylib) + 10 [0x7fff7e3e19de]It seems like if there is a label in the queue, that means you want to uniquely identify it in debugging tools such as Instruments, sample, stackshots, and crash reports, or else the system somehow would change the queue?
Posted Last updated
.
Post not yet marked as solved
0 Replies
349 Views
Hi Experts,I created a simple deadlock program with dispatch concurrent queue but no label:dispatch_queue_t queueA = dispatch_queue_create(NULL, DISPATCH_QUEUE_CONCURRENT);dispatch_async(queueA, ^(){ NSLog(@"3:%@", [NSThread currentThread]); dispatch_barrier_sync(queueA, ^(){ NSLog(@"4:%@", [NSThread currentThread]); }); });the output of sample shows the dispatch queue is serial, not concurrent.2733 Thread_<multiple> DispatchQueue_25: (null) (serial) 2733 start_wqthread (in libsystem_pthread.dylib) + 13 [0x1003bce01] 2733 _pthread_wqthread (in libsystem_pthread.dylib) + 583 [0x1003bd0b7] 2733 _dispatch_worker_thread2 (in libdispatch.dylib) + 125 [0x1003572da] 2733 _dispatch_root_queue_drain (in libdispatch.dylib) + 334 [0x100356824] 2733 _dispatch_async_redirect_invoke (in libdispatch.dylib) + 769 [0x1003463b4] 2733 _dispatch_continuation_pop (in libdispatch.dylib) + 563 [0x1003472be] 2733 _dispatch_client_callout (in libdispatch.dylib) + 8 [0x100343f1b] 2733 _dispatch_call_block_and_release (in libdispatch.dylib) + 12 [0x100342e7c] 2733 __main_block_invoke_2.14 (in learn_oc) + 125 [0x10000176d] main.mm:249 2733 _dispatch_sync_f_slow (in libdispatch.dylib) + 223 [0x10035346c] 2733 __DISPATCH_WAIT_FOR_QUEUE__ (in libdispatch.dylib) + 301 [0x100353c90] 2733 _dispatch_thread_event_wait_slow (in libdispatch.dylib) + 33 [0x1003448ec] 2733 _dispatch_ulock_wait (in libdispatch.dylib) + 47 [0x10034480d] 2733 __ulock_wait (in libsystem_kernel.dylib) + 10 [0x7fff7e3e19de]But if I create the same concurrent queue with the label, the result is correct:dispatch_queue_t queueA = dispatch_queue_create("test", DISPATCH_QUEUE_CONCURRENT);2891 Thread_34199 DispatchQueue_25: test (concurrent) + 2891 start_wqthread (in libsystem_pthread.dylib) + 13 [0x1003bce01] + 2891 _pthread_wqthread (in libsystem_pthread.dylib) + 583 [0x1003bd0b7] + 2891 _dispatch_worker_thread2 (in libdispatch.dylib) + 125 [0x1003572da] + 2891 _dispatch_root_queue_drain (in libdispatch.dylib) + 334 [0x100356824] + 2891 _dispatch_async_redirect_invoke (in libdispatch.dylib) + 769 [0x1003463b4] + 2891 _dispatch_continuation_pop (in libdispatch.dylib) + 563 [0x1003472be] + 2891 _dispatch_client_callout (in libdispatch.dylib) + 8 [0x100343f1b] + 2891 _dispatch_call_block_and_release (in libdispatch.dylib) + 12 [0x100342e7c] + 2891 __main_block_invoke_2.15 (in learn_oc) + 125 [0x10000176d] main.mm:249 + 2891 _dispatch_sync_f_slow (in libdispatch.dylib) + 223 [0x10035346c] + 2891 __DISPATCH_WAIT_FOR_QUEUE__ (in libdispatch.dylib) + 301 [0x100353c90] + 2891 _dispatch_thread_event_wait_slow (in libdispatch.dylib) + 33 [0x1003448ec] + 2891 _dispatch_ulock_wait (in libdispatch.dylib) + 47 [0x10034480d] + 2891 __ulock_wait (in libsystem_kernel.dylib) + 10 [0x7fff7e3e19de]It seems like if there is a label in the queue, that means you want to uniquely identify it in debugging tools such as Instruments, sample, stackshots, and crash reports, or else the system somehow would change the queue?
Posted Last updated
.
Post not yet marked as solved
0 Replies
185 Views
Hi Experts,Instruments 11.1 has the option to choose to profile a LunachDaemon by selecting the relevant launchd plist file. Then when you start to record it shows an alert with:Waiting for /Library/LaunchDaemons/com.mydaemon.plistPlease take appropriate action to initiate the launch of '/Library/LaunchDaemons/com.mydaemon.plist.'With a Cancel button.I noticed the daemon has been restarted but Instruments does nothing, it's still waiting...Any ideas? Thanks for your help!
Posted Last updated
.
Post marked as solved
2 Replies
292 Views
Hi Experts,I know there are replacements for KAUTH, socket and IP filters in system extension according to https://developer.apple.com/support/kernel-extensions/.Could you please share with me the replacement for interface filters in the network extension? thanks.https://developer.apple.com/library/archive/documentation/Darwin/Conceptual/NKEConceptual/interface_filter_nke/interface_filter_nke.html#//apple_ref/doc/uid/TP40001858-CH230-SW1
Posted Last updated
.
Post marked as solved
11 Replies
1.2k Views
Hi,I downloaded FilteringNetworkTraffic and added a FilterPacketProvider to intercept network packet with following info.plist:<key>NEProviderClasses</key> <dict> <key>com.apple.networkextension.filter-packet</key> <string>$(PRODUCT_MODULE_NAME).FilterPacketProvider</string> </dict>but the callback function and packetHandler closure do not work at all? thanks!
Posted Last updated
.
Post not yet marked as solved
3 Replies
283 Views
Hi,Is anybody know that whether I can send http request from network extension or not?the idea is that I want to check the inbound/outbound data before deciding allow or drop them, so I have 2 questions here:1. In the NEFilterDataProvider class description, it says "The sandbox prevents the Filter Data Provider extension from moving network content outside of its address space by blocking all network access, IPC, and disk write operations." that means I cannot send the network content to the server or other process for checking?2. if I just want to send http request from network extension, is it possible?thanks in advance.
Posted Last updated
.