इस dtrace त्रुटि का क्या अर्थ है?


15

iotop -C 5 122010 के अंत में मैकबुक प्रो (10.6.7) पर चलने पर मुझे इस त्रुटि के बार-बार उदाहरण मिलते हैं:

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

इसका कारण क्या है और मैं इसे कैसे ठीक करूं?

जवाबों:


6

इस ब्लॉग पोस्ट के अनुसार ( यहाँ अधिक जानकारी के साथ ), यह आईट्यून्स के कारण होता है, जिसे DTrace "फ़िल्टर" करता है, इसलिए इसका उपयोग आईट्यून्स के DRM को तोड़ने की कोशिश करने के लिए नहीं किया जा सकता है।

छोड़ने वाला आईट्यून्स त्रुटि को हल करता है।


13
यह त्रुटि मुझे तब भी आती है जब आईट्यून्स नहीं चल रहा होता है।
१४

9

त्रुटियों को stderr में आउटपुट मिल रहा है, और कमांड को इस तरह से चलाकर फ़िल्टर किया जा सकता है:

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

यह किसी भी अन्य त्रुटियों को छानने का साइड इफेक्ट है जो सामने आ सकता है। मैंने पाया है कि यह एक अच्छा ट्रेडऑफ़ है, इसमें मैंने अपने iotop आउटपुट को पठनीय बनाया है।

मुझे यकीन नहीं है कि त्रुटियों का कारण क्या है, दुर्भाग्य से। मैंने खोज की है, लेकिन अभी तक कुछ भी खोजने में सक्षम नहीं है।


1
वह सिर्फ कारपेट के नीचे त्रुटियों को मिटा रहा है और दिखावा कर रहा है कि वे मौजूद नहीं हैं! सवाल पूछ रहा था कि उन्हें क्या कारण है और उन्हें कैसे ठीक करना है, न कि "मैं उन्हें कैसे अनदेखा करूं?"।
मार्कशीट

5

संक्षेप में, त्रुटि उस प्रक्रिया को ट्रेस करने का प्रयास करते समय दिखाई जाती है जिसने अनुरोध नहीं किया है।

आईट्यून्स द्वारा तकनीकी रूप से त्रुटि का कारण नहीं है, लेकिन एक प्रक्रिया द्वारा जो अनुरेखण को अक्षम कर दिया गया है, निम्न जैसे कोड का उपयोग करके।

ptrace(PT_DENY_ATTACH, 0, 0, 0);

यह कोड कर्नेल स्तर पर प्रक्रिया पर एक ध्वज सेट करता है, जो प्रक्रिया के डीबगिंग और ट्रेसिंग को रोकता है।

सबसे अच्छा ज्ञात अनुप्रयोग जो ऐसा करता है वह केवल iTunes होता है, वह अनुप्रयोग जिसका DRM इस API के लिए संभवत: आविष्कार किया गया था, लेकिन API अन्य प्रक्रियाओं के लिए उपलब्ध है। मैंने इस API का उपयोग करते हुए कई पार्टी एप्लिकेशन को देखा है।

बेशक, सभी DRM की तरह इसे तोड़ा जा सकता है। डिबगर का उपयोग करने से लेकर कर्नेल एक्सटेंशन तक कर्नेल स्थान में पैच आउट करने वाले कर्नेल एक्सटेंशन को छोड़ने के लिए इस एंटी-ट्रेसिंग और एंटी-डिबगिंग फ़ीचर को दरकिनार करने के विकल्प।


1

Https://unix.stackexchange.com/a/276219 से लिया गया

यह संभावित रूप से एल कैपिटन और उसके सिस्टम इंटीग्रिटी प्रोटेक्शन ( csrutil status) से संबंधित है जो dtraceव्यवहार को प्रभावित कर सकता है।

संभावित सुधार में पुनर्प्राप्ति मोड में मैक को रिबूट करना शामिल है ( - Rबूट समय पर), फिर टर्मिनल रन में:

csrutil enable --without dtrace

SIP को सक्षम रखने के लिए, लेकिन DTrace प्रतिबंधों को अक्षम करें (ध्यान दें: यह अनिर्दिष्ट पैरामीटर है )।

या एसआईपी को पूरी तरह से निष्क्रिय कर दें:

csrutil disable # Not recommended.

देख:

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.