यह कमांड स्ट्रेस64 है जिसे हमारे कई मुफ्त ऑनलाइन वर्कस्टेशन जैसे कि उबंटू ऑनलाइन, फेडोरा ऑनलाइन, विंडोज ऑनलाइन एमुलेटर या मैक ओएस ऑनलाइन एमुलेटर का उपयोग करके ऑनवर्क्स फ्री होस्टिंग प्रदाता में चलाया जा सकता है।
कार्यक्रम:
नाम
स्ट्रेस - ट्रेस सिस्टम कॉल और सिग्नल
SYNOPSIS
स्ट्रेस [-CdffhikqrtttTvVxxy] [-In] [-bक्रियान्वित करना] [-eexpr]...[-aस्तंभ]
[-oपट्टिका] [-sस्ट्रेसाइज़] [-Pपथ] ... -pपीआईडी... / [-D] [-Eथा[=लहर]]...
[-uउपयोगकर्ता नाम] आदेश [आर्ग]
स्ट्रेस -c[df] [-In] [-bक्रियान्वित करना] [-eexpr]...[-Oउपरि] [-Sइसके अनुसार क्रमबद्ध करें]
-pपीआईडी... / [-D] [-Eथा[=लहर]]... [-uउपयोगकर्ता नाम] आदेश [आर्ग]
वर्णन
सबसे सरल मामले में स्ट्रेस निर्दिष्ट चलाता है आदेश जब तक यह बाहर नहीं निकल जाता.
यह सिस्टम कॉल को इंटरसेप्ट और रिकॉर्ड करता है जिसे a द्वारा कॉल किया जाता है
प्रक्रिया और संकेत जो एक प्रक्रिया द्वारा प्राप्त किये जाते हैं। का नाम
प्रत्येक सिस्टम कॉल, उसके तर्क और उसका रिटर्न मान मुद्रित होते हैं
मानक त्रुटि या के साथ निर्दिष्ट फ़ाइल में -o विकल्प.
स्ट्रेस एक उपयोगी निदान, अनुदेशात्मक और डिबगिंग उपकरण है।
सिस्टम प्रशासक, निदानकर्ता और समस्या-निवारक इसे ढूंढ लेंगे
उन कार्यक्रमों की समस्याओं को हल करने के लिए अमूल्य है जिनके लिए स्रोत है
आसानी से उपलब्ध नहीं हैं क्योंकि उन्हें क्रम में पुनः संकलित करने की आवश्यकता नहीं है
उनका पता लगाने के लिए. छात्रों, हैकरों और अति-जिज्ञासु लोगों को वह मिल जाएगा
किसी सिस्टम और उसके सिस्टम के बारे में बहुत कुछ सीखा जा सकता है
सामान्य कार्यक्रमों का भी पता लगाना। और प्रोग्रामर तब से इसे ढूंढ लेंगे
सिस्टम कॉल और सिग्नल उपयोगकर्ता/कर्नेल पर होने वाली घटनाएं हैं
इंटरफ़ेस, इस सीमा की बारीकी से जांच बग के लिए बहुत उपयोगी है
अलगाव, विवेक की जाँच और दौड़ की स्थितियों को पकड़ने का प्रयास।
ट्रेस की प्रत्येक पंक्ति में सिस्टम कॉल का नाम और उसके बाद उसका नाम होता है
कोष्ठकों में तर्क और उसका वापसी मूल्य। से एक उदाहरण
"cat /dev/null" कमांड को स्ट्रेसिंग करना है:
open("/dev/null", O_RDONLY) = 3
त्रुटियाँ (आमतौर पर -1 का रिटर्न मान) में इरनो प्रतीक और त्रुटि होती है
स्ट्रिंग जोड़ा गया.
open("/foo/bar", O_RDONLY) = -1 ENOENT (ऐसी कोई फ़ाइल या निर्देशिका नहीं)
सिग्नल सिग्नल प्रतीक और डिकोडेड सिगिनफो संरचना के रूप में मुद्रित होते हैं। एक
"स्लीप 666" कमांड को स्ट्रेसिंग और बाधित करने का अंश है:
सिग्सस्पेंड ([]
--- सिगिनट {si_signo=SIGINT, si_code=SI_USER, si_pid=...} ---
+++ सिगिनट द्वारा मारे गए +++
यदि एक सिस्टम कॉल निष्पादित किया जा रहा है और इस बीच दूसरा कॉल किया जा रहा है
फिर किसी भिन्न थ्रेड/प्रक्रिया से कॉल किया गया स्ट्रेस संरक्षित करने का प्रयास करेंगे
उन घटनाओं का क्रम और चल रही कॉल को चिह्नित करें
अधूरा. जब कॉल वापस आती है तो इसे के रूप में चिह्नित किया जाएगा फिर से शुरू.
[पीआईडी 28772] चयन करें (4, [3], नल, न्यूल, न्यूल
[पिड 28779] घड़ी_गेटटाइम(CLOCK_REALTIME, {1130322148, 939977000}) = 0
[पीआईडी 28772] <... फिर से शुरू का चयन करें> ) = 1 ([3] में)
सिग्नल डिलीवरी द्वारा (पुनः आरंभ करने योग्य) सिस्टम कॉल में रुकावट है
अलग ढंग से संसाधित किया जाता है क्योंकि कर्नेल सिस्टम कॉल को भी समाप्त कर देता है
सिग्नल हैंडलर पूरा होने के बाद इसके तत्काल पुन: निष्पादन की व्यवस्था करता है।
पढ़ें (0, 0x7ffff72cf5cf, 1) =? ERESTARTSYS (पुनरारंभ करने के लिए)
--- सिगलरम ...--
rt_sigreturn(0xe) = 0
पढ़ें (0, "", 1) = 0
तर्कों को आवेश के साथ प्रतीकात्मक रूप में छापा जाता है। यह उदाहरण
शेल को ">>xyzzy" आउटपुट रीडायरेक्शन निष्पादित करते हुए दिखाता है:
open("xyzzy", O_WRONLY|O_APPEND|O_CREAT, 0666) = 3
यहां खुले के तीसरे तर्क को ध्वज को तोड़कर डिकोड किया गया है
इसके तीन बिटवाइज-ओआर घटकों में तर्क और मोड को प्रिंट करना
परंपरा के अनुसार अष्टक में मूल्य। जहां पारंपरिक या देशी उपयोग भिन्न होता है
ANSI या POSIX से, बाद वाले रूपों को प्राथमिकता दी जाती है। कुछ मामलों में,
स्ट्रेस आउटपुट स्रोत से अधिक पठनीय साबित हुआ है।
संरचना सूचकों को संदर्भित किया जाता है और सदस्यों को इस रूप में प्रदर्शित किया जाता है
उपयुक्त। सभी मामलों में तर्कों को सबसे अधिक सी-जैसे स्वरूपित किया जाता है
फैशन संभव. उदाहरण के लिए, कमांड का सार "ls -l
/dev/null" को इस प्रकार कैप्चर किया गया है:
lstat("/dev/null", {st_mode=S_IFCHR|0666, st_rdev=makedev(1, 3), ...}) = 0
ध्यान दें कि 'स्ट्रक्चर स्टेट' तर्क को कैसे संदर्भित किया जाता है और प्रत्येक को कैसे
सदस्य को प्रतीकात्मक रूप से प्रदर्शित किया जाता है। विशेष रूप से, देखें कि कैसे
st_mode सदस्य को प्रतीकात्मक रूप से बिटवाइज़-OR में सावधानीपूर्वक डिकोड किया गया है
संख्यात्मक मान. इस उदाहरण में यह भी ध्यान दें कि पहला तर्क
lstat सिस्टम कॉल के लिए एक इनपुट है और दूसरा तर्क एक है
आउटपुट. चूंकि सिस्टम कॉल होने पर आउटपुट तर्क संशोधित नहीं होते हैं
विफल रहता है, तर्कों को हमेशा संदर्भित नहीं किया जा सकता है। उदाहरण के लिए, पुनः प्रयास करना
गैर-मौजूद फ़ाइल वाला "ls -l" उदाहरण निम्नलिखित उत्पन्न करता है
रेखा:
lstat("/foo/bar", 0xb004) = -1 ENOENT (ऐसी कोई फ़ाइल या निर्देशिका नहीं)
इस मामले में पोर्च की रोशनी चालू है लेकिन घर पर कोई नहीं है।
कैरेक्टर पॉइंटर्स को डीरेफ़रेंस किया जाता है और सी स्ट्रिंग्स के रूप में मुद्रित किया जाता है। न
स्ट्रिंग्स में मुद्रण वर्ण सामान्यतः साधारण सी द्वारा दर्शाए जाते हैं
भागने के कोड. केवल पहला स्ट्रेसाइज़ (डिफ़ॉल्ट रूप से 32) स्ट्रिंग के बाइट्स
मुद्रित हैं; लंबी स्ट्रिंग्स में इसके बाद एक इलिप्सिस जुड़ा होता है
समापन उद्धरण. यहाँ "ls -l" से एक पंक्ति है जहाँ गेटपव्यूड पुस्तकालय
रूटीन पासवर्ड फ़ाइल पढ़ रहा है:
पढ़ें(3, "रूट::0:0:सिस्टम एडमिनिस्ट्रेटर:/"..., 1024) = 422
जबकि संरचनाओं को घुंघराले ब्रेसिज़, सरल पॉइंटर्स और का उपयोग करके एनोटेट किया जाता है
अल्पविरामों को अलग करते हुए वर्गाकार कोष्ठकों का उपयोग करके सारणियों को मुद्रित किया जाता है
तत्व. यहां सिस्टम पर कमांड "आईडी" से एक उदाहरण दिया गया है
पूरक समूह आईडी:
गेटग्रुप्स (32, [100, 0]) = 2
दूसरी ओर, बिट-सेट को वर्गाकार कोष्ठक का उपयोग करके भी दिखाया जाता है
सेट तत्व केवल एक स्थान से अलग होते हैं। यहाँ खोल है
बाहरी कमांड निष्पादित करने की तैयारी:
सिगप्रोकमास्क(SIG_BLOCK, [CHLD TTOU], []) = 0
यहां दूसरा तर्क दो संकेतों का एक बिट-सेट है, SIGCHLD और
SIGTTOU. कुछ मामलों में बिट-सेट इतना भरा होता है कि प्रिंट आउट हो जाता है
असंतुलित तत्व अधिक मूल्यवान हैं। उस स्थिति में, बिट-सेट उपसर्गित होता है
इस तरह एक टिल्ड द्वारा:
sigprocmask(SIG_UNBLOCK, ~[], NULL) = 0
यहां दूसरा तर्क सभी संकेतों के पूर्ण सेट का प्रतिनिधित्व करता है।
विकल्प
-c प्रत्येक सिस्टम कॉल के लिए समय, कॉल और त्रुटियों की गणना करें
और प्रोग्राम निकास पर एक सारांश रिपोर्ट करें। लिनक्स पर,
यह सिस्टम समय (सीपीयू समय व्यतीत) दिखाने का प्रयास करता है
कर्नेल में चल रहा है) दीवार घड़ी से स्वतंत्र
समय। अगर -c के साथ प्रयोग किया जाता है -f or -F (नीचे), केवल
सभी ट्रेस की गई प्रक्रियाओं का कुल योग रखा जाता है।
-C पसंद -c लेकिन नियमित आउटपुट भी प्रिंट करें
प्रक्रियाएं चल रही हैं.
-D ट्रेसर प्रक्रिया को एक अलग पोते के रूप में चलाएँ, न कि एक अलग पोते के रूप में
ट्रेसी के माता-पिता. इससे दृश्यता कम हो जाती है
का प्रभाव स्ट्रेस ट्रेसी को सीधा रखकर
कॉलिंग प्रक्रिया का बच्चा.
-d का कुछ डिबगिंग आउटपुट दिखाएँ स्ट्रेस खुद पर
मानक त्रुटि।
-f चाइल्ड प्रक्रियाओं का पता लगाएं क्योंकि वे किसके द्वारा बनाई गई हैं
के परिणामस्वरूप वर्तमान में प्रक्रियाओं का पता लगाया गया
कांटा(2) vfork(2) और क्लोन(2) सिस्टम कॉल। टिप्पणी
कि -p पीआईडी -f प्रक्रिया के सभी सूत्र संलग्न करेगा
पीआईडी यदि यह बहु-थ्रेडेड है, न कि केवल थ्रेड के साथ
थ्रेड_आईडी = पीआईडी.
-एफएफ अगर -o फ़ाइल का नाम प्रत्येक विकल्प प्रभावी है
प्रोसेस ट्रेस को लिखा जाता है फ़ाइल नाम.pid जहां पीआईडी
प्रत्येक प्रक्रिया की संख्यात्मक प्रक्रिया आईडी है। यह है
साथ असंगत -c, क्योंकि कोई भी प्रति-प्रक्रिया मायने नहीं रखती
रखे गए हैं।
-F यह विकल्प अब अप्रचलित है और इसमें वैसा ही है
कार्यक्षमता के रूप में -f.
-h सहायता सारांश प्रिंट करें।
-i के समय अनुदेश सूचक प्रिंट करें
सिस्टम कॉल।
-k ट्रेस किए गए निष्पादन स्टैक ट्रेस को प्रिंट करें
प्रत्येक सिस्टम कॉल के बाद की प्रक्रियाएँ (प्रायोगिक)।
यह विकल्प तभी उपलब्ध है जब स्ट्रेस बना है
लिबुनविंड के साथ।
-q जोड़ने, अलग करने आदि के बारे में संदेशों को दबाएँ।
आउटपुट रीडायरेक्ट होने पर यह स्वचालित रूप से होता है
एक फ़ाइल के लिए और कमांड को इसके बजाय सीधे चलाया जाता है
संलग्न करना।
-क्यूक्यू यदि दो बार दिया जाता है, तो प्रक्रिया से बाहर निकलने के बारे में संदेश दबा दें
स्थिति।
-r प्रत्येक सिस्टम में प्रवेश पर एक सापेक्ष टाइमस्टैम्प प्रिंट करें
पुकारना। यह के बीच के समय के अंतर को रिकॉर्ड करता है
क्रमिक सिस्टम कॉल की शुरुआत।
-t ट्रेस की प्रत्येक पंक्ति को दिन के समय के साथ उपसर्ग करें।
-तो यदि दो बार दिया जाता है, तो मुद्रित समय में शामिल होगा
माइक्रोसेकंड.
-टीटीटी यदि तीन बार दिया जाता है, तो मुद्रित समय में शामिल होगा
माइक्रोसेकंड और प्रमुख भाग मुद्रित किया जाएगा
युग के बाद से सेकंड की संख्या के रूप में।
-T सिस्टम कॉल में बिताया गया समय दिखाएं. यह रिकॉर्ड करता है
शुरुआत और के बीच समय का अंतर
प्रत्येक सिस्टम कॉल का अंत।
-w शुरुआत के बीच के समय के अंतर को संक्षेप में बताएं
और प्रत्येक सिस्टम कॉल का अंत। डिफ़ॉल्ट है
सिस्टम समय को संक्षेप में प्रस्तुत करें।
-v पर्यावरण, स्टेट, के असंक्षिप्त संस्करण प्रिंट करें
टर्मिओस, आदि कॉल। ये संरचनाएं बहुत हैं
कॉल में सामान्य और इसलिए डिफ़ॉल्ट व्यवहार प्रदर्शित होता है
संरचना सदस्यों का एक उचित उपसमूह। इस का उपयोग करें
सभी रक्तरंजित विवरण प्राप्त करने का विकल्प।
-V का संस्करण संख्या प्रिंट करें स्ट्रेस.
-x सभी गैर-ASCII स्ट्रिंग्स को हेक्साडेसिमल स्ट्रिंग में प्रिंट करें
प्रारूप.
-xx सभी स्ट्रिंग्स को हेक्साडेसिमल स्ट्रिंग प्रारूप में प्रिंट करें।
-y फ़ाइल डिस्क्रिप्टर से जुड़े प्रिंट पथ
तर्क।
-Y y सॉकेट फ़ाइल से संबद्ध आईपी: पोर्ट जोड़े प्रिंट करें
वर्णनकर्ता।
-a स्तंभ किसी विशिष्ट कॉलम में रिटर्न मान संरेखित करें (डिफ़ॉल्ट
कॉलम 40).
-b Syscall यदि निर्दिष्ट सिस्कल पहुंच गया है, तो ट्रेस से अलग करें
प्रक्रिया। वर्तमान में, केवल क्रियान्वित करना सिस्कल है
का समर्थन किया। यदि आप चाहें तो यह विकल्प उपयोगी है
बहु-थ्रेडेड प्रक्रिया का पता लगाएं और इसलिए इसकी आवश्यकता है
-एफ, लेकिन इसका पता नहीं लगाना चाहता (संभवतः बहुत)।
जटिल) बच्चे।
-e expr एक योग्यता अभिव्यक्ति जो किन घटनाओं को संशोधित करती है
उनका पता लगाना या उनका पता कैसे लगाना है। का प्रारूप
अभिव्यक्ति है:
[क्वालीफायर=][!]value1[,value2] ...
जहां क्वालीफायर में से एक है निशान, संक्षिप्त रूप, वाचाल,
कच्चा, संकेत, पढ़नाया, लिखना और मूल्य एक
क्वालीफायर-निर्भर प्रतीक या संख्या। डिफ़ॉल्ट
क्वालीफायर है निशान. विस्मयादिबोधक चिह्न का उपयोग करना
मूल्यों के समुच्चय को नकारता है। उदाहरण के लिए, -e खुला
का शाब्दिक अर्थ है -e निशान=खुला जिसका बदले में मतलब है
केवल का पता लगाएं खुला सिस्टम कॉल। इसके विपरीत,
-e निशान=!खुला हर सिस्टम कॉल का पता लगाने का मतलब है
सिवाय खुला. इसके अलावा, विशेष मूल्य सब
और कोई नहीं स्पष्ट अर्थ हैं.
ध्यान दें कि कुछ शैल विस्मयादिबोधक बिंदु का उपयोग करते हैं
उद्धृत तर्कों के अंदर भी इतिहास का विस्तार। अगर
इसलिए, आपको विस्मयादिबोधक बिंदु से बचना चाहिए
बैकस्लैश।
-e निशान=सेट
सिस्टम कॉल के केवल निर्दिष्ट सेट को ट्रेस करें। NS
-c विकल्प यह निर्धारित करने के लिए उपयोगी है कि कौन सी प्रणाली है
कॉल का पता लगाना उपयोगी हो सकता है. उदाहरण के लिए,
निशान=खोलना, बंद करना, पढ़ना, लिखना मतलब सिर्फ ट्रेस करना
वे चार सिस्टम कॉल. बनाते समय सावधान रहें
उपयोगकर्ता/कर्नेल सीमा के बारे में निष्कर्ष यदि केवल a
सिस्टम कॉल के सबसेट की निगरानी की जा रही है।
डिफ़ॉल्ट है निशान=सब.
-e निशान=पट्टिका
सभी सिस्टम कॉल को ट्रेस करें जो फ़ाइल नाम को एक के रूप में लेते हैं
तर्क। आप इसे एक संक्षिप्त रूप में सोच सकते हैं
एसटी -e निशान=खुला,स्टेट,परिवर्तन विद्या,उतारना,... जो है
यह देखने में उपयोगी है कि प्रक्रिया कौन सी फ़ाइलों की है
संदर्भ. इसके अलावा, संक्षिप्तीकरण का उपयोग करें
यह सुनिश्चित करेगा कि आप गलती से भी इसे न भूलें
जैसे कॉल शामिल करें lstat सूची में। बेट्च्या
वह उसे भूल गया होगा.
-e निशान=प्रक्रिया
उन सभी सिस्टम कॉलों को ट्रेस करें जिनमें प्रक्रिया शामिल है
प्रबंधन। यह कांटा देखने के लिए उपयोगी है,
प्रतीक्षा करें, और किसी प्रक्रिया के चरणों को निष्पादित करें।
-e निशान=नेटवर्क
नेटवर्क से संबंधित सभी सिस्टम कॉल्स को ट्रेस करें।
-e निशान=संकेत
सभी सिग्नल से संबंधित सिस्टम कॉल्स को ट्रेस करें।
-e निशान=भारतीय दंड संहिता
IPC से संबंधित सभी सिस्टम कॉल्स को ट्रेस करें।
-e निशान=अवरोही
सभी फाइल डिस्क्रिप्टर संबंधित सिस्टम कॉल्स को ट्रेस करें।
-e निशान=स्मृति
सभी मेमोरी मैपिंग से संबंधित सिस्टम कॉल्स को ट्रेस करें।
-e संक्षिप्त रूप=सेट
प्रत्येक सदस्य को प्रिंट करने से प्राप्त आउटपुट को संक्षिप्त करें
बड़ी संरचनाएँ. डिफ़ॉल्ट है संक्षिप्त रूप=सब।
-v विकल्प का प्रभाव है संक्षिप्त रूप=कोई नहीं.
-e वाचाल=सेट
निर्दिष्ट सेट के लिए डीरेफ़रेंस संरचनाएँ
सिस्टम कॉल. डिफ़ॉल्ट है वाचाल=सब.
-e कच्चा=सेट निर्दिष्ट सेट के लिए कच्चे, अघोषित तर्क प्रिंट करें
सिस्टम कॉल की. इस विकल्प का प्रभाव है
जिसके कारण सभी तर्क हेक्साडेसिमल में मुद्रित होंगे।
यदि आपको भरोसा नहीं है तो यह अधिकतर उपयोगी है
डिकोडिंग या आपको वास्तविक संख्या जानने की आवश्यकता है
एक तर्क का मूल्य.
-e संकेत=सेट
केवल संकेतों के निर्दिष्ट उपसमूह को ट्रेस करें।
डिफ़ॉल्ट है संकेत=सब। उदाहरण के लिए, संकेत =! सिगियो
(या संकेत=!io) SIGIO सिग्नल नहीं होने का कारण बनता है
पता लगाया
-e पढ़ना=सेट सभी का पूर्ण हेक्साडेसिमल और ASCII डंप निष्पादित करें
में सूचीबद्ध फ़ाइल डिस्क्रिप्टर से पढ़ा गया डेटा
निर्दिष्ट सेट. उदाहरण के लिए, सभी इनपुट देखने के लिए
फ़ाइल डिस्क्रिप्टर पर गतिविधि 3 और 5 उपयोग
-e पढ़ना=3,5. ध्यान दें कि यह से स्वतंत्र है
की सामान्य ट्रेसिंग पढ़ना(2) सिस्टम कॉल जो है
विकल्प द्वारा नियंत्रित -e निशान=पढ़ना.
-e लिखना=सेट
सभी का पूर्ण हेक्साडेसिमल और ASCII डंप निष्पादित करें
में सूचीबद्ध फ़ाइल डिस्क्रिप्टर को लिखा गया डेटा
निर्दिष्ट सेट. उदाहरण के लिए, सभी आउटपुट देखने के लिए
फ़ाइल डिस्क्रिप्टर पर गतिविधि 3 और 5 उपयोग
-e लिखना=3,5. ध्यान दें कि यह इससे स्वतंत्र है
की सामान्य ट्रेसिंग लिखना(2) सिस्टम कॉल जो
विकल्प द्वारा नियंत्रित किया जाता है -e निशान=लिखना.
-I व्यवधान कारक
जब स्ट्रेस को सिग्नल द्वारा बाधित किया जा सकता है (जैसे
^C) दबाने पर। 1: कोई सिग्नल अवरुद्ध नहीं हैं; 2: घातक
सिस्कल को डिकोड करते समय सिग्नल अवरुद्ध हो जाते हैं
(गलती करना); 3: घातक सिग्नल हमेशा अवरुद्ध रहते हैं
(डिफ़ॉल्ट यदि '-o फ़ाइल PROG'); 4: घातक संकेत और
SIGTSTP (^Z) हमेशा अवरुद्ध होते हैं (बनाने के लिए उपयोगी)।
strace -o FILE PROG ^Z) पर नहीं रुकता।
-o फ़ाइल का नाम फ़ाइल में ट्रेस आउटपुट लिखें फ़ाइल का नाम बल्कि
stderr की तुलना में. उपयोग फ़ाइल नाम.pid if -एफएफ प्रयोग किया जाता है।
यदि तर्क '|' से शुरू होता है या '!' के साथ फिर
शेष तर्क को एक आदेश और सब कुछ के रूप में माना जाता है
आउटपुट को इसमें पाइप किया जाता है। यह इसके लिए सुविधाजनक है
बिना किसी प्रोग्राम में डिबगिंग आउटपुट को पाइप करना
निष्पादित कार्यक्रमों के पुनर्निर्देशन को प्रभावित करना।
-O उपरि सिस्टम कॉल को ट्रेस करने के लिए ओवरहेड सेट करें
उपरि माइक्रोसेकंड. ये इसके लिए उपयोगी है
कैसे अनुमान लगाने के लिए डिफ़ॉल्ट अनुमान को ओवरराइड करना
टाइमिंग मापने में ही काफी समय खर्च हो जाता है
का उपयोग करके सिस्टम कॉल करता है -c विकल्प। की सटीकता
किसी दिए गए समय के आधार पर अनुमान का अनुमान लगाया जा सकता है
प्रोग्राम ट्रेसिंग के बिना चलता है (का उपयोग करके)। पहर(1) और
संचित सिस्टम कॉल समय की तुलना
कुल उत्पादन का उपयोग कर -c.
-p पीआईडी प्रक्रिया आईडी के साथ प्रक्रिया में संलग्न करें पीआईडी और
पता लगाना शुरू करें. ट्रेस को किसी भी समय समाप्त किया जा सकता है
कीबोर्ड इंटरप्ट सिग्नल (CTRL-C) द्वारा समय।
स्ट्रेस से स्वयं को अलग करके प्रतिक्रिया देगा
ट्रेस की गई प्रक्रियाओं को जारी रखने के लिए छोड़ दिया गया है
दौड़ना। विभिन्न -p विकल्पों का उपयोग संलग्न करने के लिए किया जा सकता है
कई प्रक्रियाओं के लिए. -p "`pidof PROG`" सिंटैक्स है
समर्थित।
-P पथ ट्रेस ओनली सिस्टम कॉल एक्सेसिंग पथ। विभिन्न -P
विकल्पों का उपयोग कई पथ निर्दिष्ट करने के लिए किया जा सकता है।
-s स्ट्रेसाइज़ प्रिंट करने के लिए अधिकतम स्ट्रिंग आकार निर्दिष्ट करें (
डिफ़ॉल्ट 32 है)। ध्यान दें कि फ़ाइल नाम नहीं हैं
स्ट्रिंग माना जाता है और हमेशा पूर्ण रूप से मुद्रित किया जाता है।
-S इसके अनुसार क्रमबद्ध करें द्वारा मुद्रित हिस्टोग्राम के आउटपुट को क्रमबद्ध करें -c
निर्दिष्ट मानदंड के अनुसार विकल्प। कानूनी मूल्य हैं
पहर, कॉल, नाम, तथा कुछ नहीं (डिफ़ॉल्ट है पहर).
-u उपयोगकर्ता नाम यूजर आईडी, ग्रुप आईडी और के साथ कमांड चलाएँ
के पूरक समूह उपयोगकर्ता नाम. यह विकल्प है
केवल रूट के रूप में चलने पर ही उपयोगी है और सक्षम बनाता है
सेतुइड और/या सेटगिड बायनेरिज़ का सही निष्पादन।
जब तक इस विकल्प का उपयोग setuid और setgid नहीं किया जाता है
कार्यक्रमों को प्रभावी विशेषाधिकारों के बिना निष्पादित किया जाता है।
-E था=लहर के साथ कमांड चलाएँ था=लहर इसकी पर्यावरण की सूची में
चर।
-E था हटाना था पर्यावरण की विरासत सूची से
कमांड पर भेजने से पहले वेरिएबल।
निदान
. आदेश निकलता है, स्ट्रेस एक ही निकास स्थिति के साथ बाहर निकलें। अगर
आदेश एक संकेत द्वारा समाप्त किया जाता है, स्ट्रेस के साथ स्वयं समाप्त हो जाता है
वही संकेत, ताकि स्ट्रेस रैपर प्रक्रिया के रूप में उपयोग किया जा सकता है
आह्वान करने वाली मूल प्रक्रिया के लिए पारदर्शी। ध्यान दें कि अभिभावक-
बाल संबंध (सिग्नल स्टॉप नोटिफिकेशन, गेटपिड() मान,
आदि) ट्रेस की गई प्रक्रिया और उसके मूल के बीच संरक्षित नहीं हैं
जब तक -D प्रयोग किया जाता है।
उपयोग करते समय -p, बाहर निकलने की स्थिति स्ट्रेस जब तक वहाँ शून्य है
ट्रेसिंग करने में एक अप्रत्याशित त्रुटि थी।
सेटयूड INSTALLATION
If स्ट्रेस सेट्यूइड को रूट करने के लिए स्थापित किया गया है, फिर आह्वान करने वाले उपयोगकर्ता के लिए
किसी भी उपयोगकर्ता के स्वामित्व वाली प्रक्रियाओं को संलग्न करने और उनका पता लगाने में सक्षम होगा।
इसके अलावा setuid और setgid प्रोग्राम निष्पादित किए जाएंगे और
सही प्रभावी विशेषाधिकारों के साथ पता लगाया गया। चूंकि केवल उपयोगकर्ता
पूर्ण रूट विशेषाधिकारों वाले विश्वसनीय को ऐसा करने की अनुमति दी जानी चाहिए
चीजें, इसे स्थापित करना ही समझ में आता है स्ट्रेस रूट करने के लिए setuid के रूप में
जब जो उपयोगकर्ता इसे निष्पादित कर सकते हैं वे उन उपयोगकर्ताओं तक ही सीमित हैं
जिनको ये भरोसा है. उदाहरण के लिए, इसे स्थापित करना समझ में आता है
का विशेष संस्करण स्ट्रेस मोड 'rwsr-xr--' के साथ, उपयोगकर्ता जड़ और
समूह निशान, जहां के सदस्य निशान समूह विश्वसनीय उपयोगकर्ता हैं.
यदि आप इस सुविधा का उपयोग करते हैं, तो कृपया एक गैर-स्थापित करना याद रखें
का सेतुइड संस्करण स्ट्रेस साधारण लुसर्स के उपयोग के लिए।
onworks.net सेवाओं का उपयोग करके ऑनलाइन strace64 का उपयोग करें
