मेरे पास लंबे समय से sip -without dtrace के रूप में dtrace का उपयोग करने के लिए है और यह ठीक है, लेकिन कुछ ऐप्स जिन्हें मैं डेटा को कर्नेल मोड में चलाने के लिए देखा जाना चाहता हूं (लिटिल स्निक में उदाहरण के लिए कई घटक हैं)। उदाहरण के लिए, जब भी मैं कोशिश करता हूं कि ट्रेसमम (arg0) की कोशिश करते समय मैं एक संकलन या रन त्रुटि प्राप्त करता हूं, जैसे
syscall::open:entry /app_is_Kmode/
....tracemem(arg0);....
run time invalid address (0x7fff5fbfdc30) in action #4
वर्तमान में: मैं उन ऐप्स का पता लगाता हूं जो कर्नेल मोड में हैं क्योंकि ट्रेस (यूकलर) विफल रहता है और मैं त्रुटि को पकड़ता हूं और इस तरह के ऐप को नोट करता हूं। फिर मैं उन ऐप्स के साथ कर्नेल मोड में काम करने के लिए एक जांच का उपयोग कर सकता हूं, जैसे कि कॉपीिन () लेकिन ट्रेसमम () का उपयोग नहीं करना। ऐसा लगता है कि या तो स्मृति संरक्षण या डीट्रेस कार्यान्वयन मेरे प्रयासों को रोक रहा है। मुझे लगता है कि स्टैक () कर्नेल प्रतीक स्थान में 2 फ़्रेम दिखाएगा ... इसलिए कुछ सीमित पहुंच है।
लेकिन मेरी समस्या का कारण क्या है, और क्या मैं कुछ भी कर सकता हूं?
SIP के साथ-साथ डिबग सुरक्षा के लिए एक विशेष संभावना हो सकती है। लेकिन यह काफी महत्वपूर्ण व्यवधान होगा, क्योंकि मैं ACL, प्राइवेट आदि के साथ पिछले बूट के बाद से पिछले कुछ महीनों में बड़ी रैमडिस्क सेटअप कर चुका हूं, जिसे फिर से बनाना मुश्किल होगा। SIP का वह क्षेत्र क्या कर रहा है, इस पर मैं कोई डॉक्स नहीं पा सका हूं। (शायद यह एसआईपी के बारे में विशुद्ध रूप से एक अलग सवाल होना चाहिए लेकिन जाहिर है कि मैं अपनी समस्या के संदर्भ में दिलचस्पी रखता हूं।)