Bu dtrace hatası ne anlama geliyor?


15

iotop -C 5 122010 sonu Macbook Pro (10.6.7) üzerinde çalışırken bu hatanın tekrarlanan örneklerini alıyorum:

dtrace: error on enabled probe ID 5 (ID 19507: io:mach_kernel:buf_strategy:start): illegal operation in action #3 at DIF offset 0

Bunun nedeni nedir ve nasıl düzeltebilirim?

Yanıtlar:


7

Göre bu blog yayınına (Daha fazla bilgi ile burada ) o iTunes neden oluyor ki iTunes' DRM kırmaya denemek için kullanılamaz böylece DTrace "filtreler".

İTunes'dan çıkılması hatayı giderir.


14
İTunes çalışmadığında bile bu hatayı alıyorum.
studgeek

9

Hatalar stderr'e çıktılanıyor ve komut şu şekilde çalıştırılarak filtrelenebilir:

sudo iotop -C 5 12 2>/dev/null

Bunun, ortaya çıkabilecek diğer hataları filtrelemenin yan etkisi vardır. Iiotop çıktımı okunabilir hale getirdiğinden, iyi bir ödünleşim olarak buldum.

Ne yazık ki hataların nedeninin ne olduğundan emin değilim. Aradım, ancak henüz bir şey bulamadım.


1
Bu sadece halının altındaki hataları süpürüyor ve yokmuş gibi yapıyor! Soru, onlara neyin neden olduğunu ve nasıl düzeltileceğini sormaktı, "onları nasıl görmezden gelirim?"
markshep

5

Kısacası, izlenmemesini talep eden bir işlemi izlemeye çalışırken hata gösterilir.

Hata, teknik olarak iTunes'dan değil, aşağıdaki gibi kod kullanarak izlemeyi devre dışı bırakan bir işlemden kaynaklanır.

ptrace(PT_DENY_ATTACH, 0, 0, 0);

Bu kod, işlemde çekirdek düzeyinde bir bayrak belirler, bu da işlemin hata ayıklamasını ve izlenmesini önler.

Bunu yapan en iyi bilinen uygulama sadece DRM'si bu API'sı icat edilen uygulama olan iTunes'tur, ancak API diğer işlemler için kullanılabilir. Bu API'yı kullanan bir dizi 3. taraf uygulaması gördüm.

Tabii ki, tüm DRM gibi kırılabilir. Bu anti-tracing ve hata ayıklama önleme özelliğini atlamak için seçenekler, API çağrısını atlamak için bir hata ayıklayıcı kullanmaktan, özelliği çekirdek alanında yama yapan çekirdek uzantılarına kadar uzanır.


1

Alındığı /unix//a/276219

Bu, potansiyel olarak El Capitan ve davranışını csrutil statusetkileyebilecek Sistem Bütünlüğü Koruması ( ) ile ilgilidir dtrace.

Olası düzeltme, Mac'i kurtarma moduna ( - Rönyükleme zamanında), ardından Terminal çalıştırmasında yeniden başlatmayı içerir :

csrutil enable --without dtrace

SIP'yi etkin tutmak, ancak DTrace kısıtlamalarını devre dışı bırakmak için (not: bu belgesiz bir parametredir ).

Veya SIP'yi şu şekilde tamamen devre dışı bırakın:

csrutil disable # Not recommended.

Görmek:

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.