विंडोज के लिए सिस्ट्रेस


85

मैं सिस्ट्रेस के विंडोज समकक्ष या कम से कम स्ट्रेस की तलाश में हूं । मुझे StraceNT के बारे में पता है , लेकिन सोच रहा था कि वहाँ कोई और विकल्प हो। विशेष रूप से, मैं सिस्टम कॉल नीतियों को प्रोग्रामेटिक रूप से लागू करने के लिए एक विशिष्ट तरीके की तलाश कर रहा हूं, हालांकि यह सक्रिय रूप से उन्हें रोकने के बजाय तथ्य के बाद हो सकता है।

क्या वर्तमान में ऐसा करने का कोई अच्छा तरीका है?


साथ ही इससे संबंधित - stackoverflow.com/questions/864839/...
sashoalm

जवाबों:


26

WinDbg का Logger.exe स्ट्रेस के सबसे नजदीक है: http://msdn.microsoft.com/en-us/library/windows/hardware/ff552060(v=vs.85).aspx

संपादित करें: वहाँ भी है wbbg wt: http://blogs.msdn.com/b/debuggingtoolbox/archive/2009/10/12/special-command-tracing-applications-use-wt.aspx


3
हालाँकि, यह स्ट्रेस की तुलना में लेट्रेस की तरह अधिक है क्योंकि यह syscalls के बजाय लाइब्रेरी कॉल को कैप्चर करता है।
माइकल

@BrunoMartinez: आपको स्ट्रेस का उपयोग करने के लिए मेमोरी एड्रेस निर्दिष्ट करने की आवश्यकता नहीं है।
user2284570

40

कुछ विकल्प:

प्रक्रिया की निगरानी

इसके अलावा, विंडोज 7 में निर्मित उपकरणों के बारे में इस लेख को देखें:

कोर ओएस उपकरण


3
मैंने सिर्फ यह जानने के लिए ProcessMonitor का उपयोग किया कि एक प्रक्रिया क्यों लटकी हुई थी - पता चलता है कि यह एक ऐसी फ़ाइल का उपयोग करने की कोशिश कर रहा था, जिसे वह हटा नहीं सकती थी ... कभी भी इसे ProcMon के बिना पता नहीं लगा होगा
जेमी कुक

2
मैं लिनक्स पर स्ट्रेस का काफी उपयोग करता हूं और इस सवाल पर आया था जब मैं एनएटीएन के साथ होने वाली समस्या के निवारण के लिए विंडोज पर समान टूल की तलाश कर रहा था। मैंने प्रक्रिया मॉनिटर की कोशिश की, फ़िल्टर को केवल Nant.exe शामिल करने के लिए सेट किया और बाकी सब कुछ छोड़कर, रजिस्टर एक्सेस के लिए फ़िल्टर भी सेट किया, जहां मुझे समस्या हो रही थी, और मुझे जो समस्या हो रही थी, उसे जल्दी से समझ लें। मैं अत्यधिक प्रक्रिया मॉनिटर की सिफारिश करता हूं।
हशीब

@ djhaskin987: मेरे मामले में मेरे पास एक प्रोग्राम है जो कुछ फाइलों को लोड करता है; उन्हें crash के लिए बफ़र करें (ताकि वहां कोई हैंडल न बचा हो) और क्रैश। के रूप में कोई संभाल नहीं है बाईं प्रक्रिया मॉनिटर कोई मदद नहीं है।
user2284570 1

@ शशि: प्रॉसेस मॉनीटर के साथ समस्या एक ऐसी प्रक्रिया है जिसमें किसी फाइल तक पहुंचने के लिए हैंडल की जरूरत नहीं होती है। तो मेरी तरह एक मामले में (यह देखने के लिए कि कौन सी कॉन्फिगर फाइल दुर्घटना का कारण बनती है) , यह कोई मदद नहीं है।
user2284570

15

डॉ। मेमोरी ( http://drmemory.org ) टूल एक सिस्टम कॉल ट्रेसिंग टूल के साथ आता है, जिसे ड्रमस्ट्रीम कहा जाता है, जो अपने तर्क के साथ एक लक्ष्य एप्लिकेशन द्वारा किए गए सभी सिस्टम कॉल को सूचीबद्ध करता है: http://drmemory.org/strace_for_windows.html

प्रोग्रामेटिक रूप से सिस्टम कॉल नीतियों को लागू करने के लिए, आप ड्रम के समान अंतर्निहित इंजन का उपयोग कर सकते हैं: डायनेमोआरआईओ टूल प्लेटफॉर्म ( http://dynamorio.org ) और DrSyscall सिस्टम कॉल मॉनिटरिंग लाइब्रेरी ( http://drmemory.org/docs/page_drsyscall)। html )। ये डायनेमिक बाइनरी ट्रांसलेशन तकनीक का उपयोग करते हैं, जो कुछ ओवरहेड (स्थिर स्थिति में 20% -30%, लेकिन एक बड़े डेस्कटॉप ऐप को लॉन्च करने जैसे नए कोड को चलाने पर) उच्चतर करता है, जो आपके उद्देश्यों के लिए उपयुक्त नहीं हो सकता है या नहीं।


11

एपीआई मॉनिटर इस उद्देश्य के लिए बहुत उपयोगी लगता है।


यह एक उत्कृष्ट कार्यक्रम है, विस्तृत फ़ंक्शन परम / रिटर्न मान दिखाता है, आपको कुछ शर्तों के पूरा होने पर ब्रेकपॉइंट करने की अनुमति देता है, कई अलग-अलग हुकिंग विधि ताकि यह बहुत सारी प्रक्रियाओं पर उपयोग किया जा सके जो निरीक्षण करना पसंद नहीं करते हैं।
युकॉनू

6

यहाँ एक बहुत ही इंटरस्टिंग आर्टिकल है, मुझे नहीं पता कि यह आपके द्वारा खोजे जा रहे लक्ष्य को हिट करता है, लेकिन मुझे लगता है कि आप इसे अपनी इच्छानुसार दिशा में ले जा सकते हैं।

http://jbremer.org/intercepting-system-calls-on-x86_64-windows/


1
धन्यवाद, यह बहुत अच्छा है। मुझे लगता है कि इसका मतलब है कि हम अभी भी विंडोज पर एक अच्छा और कार्यात्मक
स्ट्रेस दूर करने के लिए

3

साइबर साइबर पैकेज में Cygwin से स्ट्रेस उपलब्ध है । आप इसे साइगविन दर्पण से डाउनलोड कर सकते हैं , उदाहरण के लिए:

http://mirrors.sonic.net/cygwin/x86_64/release/cygwin/cygwin-2.0.2-1.tar.xz
#      |                      |                              |     |
#      +-----------+----------+                              +--+--+
#                  |                                            |
#               mirror                                       version

स्ट्रेस उन कुछ सिग्विन कार्यक्रमों में से एक है जो सिग्विन डीएलएल पर भरोसा नहीं करता है, इसलिए आपको सिर्फ उसी जगह पर कॉपी strace.exeकरने में सक्षम होना चाहिए जहां आप चाहते हैं और इसका उपयोग करें।


6
यह अच्छा है, लेकिन केवल अन्य साइबर कार्यक्रमों पर काम करने के लिए लगता है। आप नहीं कर सकते strace notepad। यह नोटपैड लॉन्च करता है, लेकिन किसी भी सिस्टम कॉल को कैप्चर नहीं करता है।
माइकल फॉक्स

2
@MichaelFox: हाँ, यह केवल cygwin1.dll पर कॉल पकड़ता है।
user2284570

2

Xperf के आसपास सभी निर्मित कई उपकरण हैं। यह बल्कि जटिल है, लेकिन बहुत शक्तिशाली है - त्वरित आरंभ गाइड देखेंWindows प्रदर्शन विश्लेषण पृष्ठ पर अन्य उपयोगी संसाधन हैं


4
स्ट्रेस प्रदर्शन के लिए असंबंधित है। यह बस प्रिंट करता है कि सिस्टम किस प्रक्रिया को कॉल करता है। प्रदर्शन उपकरण ऐसा नहीं करते हैं।
जान हुदेक

1

strace द्वारा समर्थित Git , माइकल फॉक्स हो सकता है कि जटिल / खिड़कियां सॉफ्टवेयर के लिए उपयोगी नहीं उल्लेख के रूप में।


0

आप मार्क रोसिनोविच द्वारा लिखित प्रक्रिया मॉनिटर का उपयोग कर सकते हैं। यह एक शानदार छोटा अनुप्रयोग है जो आपको सिस्टम पर किसी भी चलने वाली प्रक्रिया से जुड़ने की अनुमति देगा और सभी सिस्टम कॉल को देखेगा जो वर्तमान में प्रक्रिया कर रही है।

https://technet.microsoft.com/en-us/sysinternals/processmonitor.aspx


2
djhaskin987 ने पहले ही अपने उत्तर में प्रक्रिया मॉनिटर का उल्लेख किया था। आपको उसका उत्तर संपादित करना चाहिए और उसमें अपना विवरण संपादित करना चाहिए।
अविस्मरणीयडुपोर्ट्समोनिका
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.