निम्न आदेश पर विचार करें। तो main.gcda कैसे उत्पन्न होता है? उपकरण कैसे किया जाता है? क्या मैं वाद्य यंत्र देख सकता हूं?जीसीसी के कोड कवरेज विकल्प कैसे काम करते हैं?</p> <pre><code>gcc -fprofile-arcs -ftest-coverage main.c </code></pre> <p>यह फ़ाइल, main.gcda, जो gcov द्वारा इस्तेमाल किया जा रहा है उत्पन्न करता है, कवरेज विश्लेषण उत्पन्न करने के लिए:
उत्तर
.gcda संकलक द्वारा उत्पन्न नहीं है; जब आप इसे निष्पादित करते हैं तो यह आपके प्रोग्राम द्वारा उत्पन्न होता है।
.gcno संकलन समय पर उत्पन्न फ़ाइल है और यह 'नोट फ़ाइल' है। जीसीसी प्रत्येक सीयू (कंपाइलर इकाई) के लिए मूल ब्लॉक ग्राफ़ नोट्स फ़ाइल (.gcno) उत्पन्न करता है।
तो main.gcda कैसे उत्पन्न होता है?
चलने के समय आंकड़े डेटा इकट्ठा और स्मृति में संग्रहीत किया जाता है। कुछ निकास कॉलबैक पंजीकृत है और कार्यक्रम समाप्त होने पर .gcda फ़ाइल में डेटा लिखने के लिए कहा जाता है। इसका अर्थ यह है कि यदि आप अपने प्रोग्राम में बाहर निकलने के बजाय abort() को कॉल करते हैं, तो कोई .gcda फ़ाइल जेनरेट नहीं की जाएगी।
उपकरण कैसे किया जाता है? क्या मैं वाद्य यंत्र देख सकता हूं?
विवरण प्राप्त करने के लिए आपको जीसीसी के कार्यान्वयन की जांच करने की आवश्यकता है, लेकिन मूल रूप से उपकरण को प्रत्येक निर्देश निष्पादित किए जाने की संख्या की गणना करने के लिए कार्यक्रम में निर्देश डालने के द्वारा किया जाता है। लेकिन इसे वास्तव में प्रत्येक निर्देश के लिए काउंटर रखना नहीं है; जीसीसी एक प्रोग्राम प्रवाह ग्राफ उत्पन्न करने के लिए कुछ एल्गोरिदम का उपयोग करता है और ग्राफ के लिए एक स्पैनिंग पेड़ पाता है। केवल कुछ विशेष चापों का वाद्य यंत्र होना चाहिए और उनसे सभी कोड शाखाओं का कवरेज उत्पन्न किया जा सकता है। आप वाद्य यंत्र को देखने के लिए बाइनरी को अलग कर सकते हैं।
toplev.c coverage.c profile.c libgcov.c gcov.c gcov-कब: और यहाँ कवरेज के लिए कुछ फ़ाइलों को अगर आप जीसीसी स्रोत फ़ाइल में देखना चाहते हैं।ग
संपादित करें: कुछ ज्ञात gcov कीड़े FYI करें:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49484
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28441
Can I see the instrumented code?
आप GCDA फ़ाइलों की तरह instrumented डेटा नहीं देख सकता।
कैसे Gcov काम करता है?
GCOV चार चरणों में काम करता है:
1. Code instrumentation during compilation
2. Data collection during code execution
3. Data extraction at program exit time
4. Coverage analysis and presentation post-mortem.
अलग-अलग चरणों यू इस पीडीएफ के माध्यम से जा सकते हैं के बारे में अधिक पता करने के लिए।
http://ltp.sourceforge.net/documentation/technical_papers/gcov-ols2003.pdf
आप देख सकते हैं जो कोड gcov से संबंधित पर instrumented है compi ली समय निष्पादन योग्य या ओबीजे फ़ाइल, आप निम्न चरणों का उपयोग कर सकते हैं।
nm executable/objfile
नीचे छवि कदम और उत्पादन का जुड़ा हुआ है: -
टेक्स्ट प्रदर्शित करने वाली छवि का उद्देश्य क्या है? यह सुनिश्चित करना कि दृष्टिहीन लोग इसे पढ़ नहीं सकते हैं? –
हाँ आप सही हो गए। –
- 1. <% $, <% @, <% =, <% # ... सौदा क्या है?
- 2. <: <, <% <, =: = कंपाइलर में काम का स्केल कार्यान्वयन वास्तव में कैसे करता है?
- 3. सोनार कोड कवरेज विश्लेषण में कोड ब्लॉक को अनदेखा कैसे करें?</p> <pre><code>if(logger.isDebugEnabled()) { logger.debug("...") } </code></pre> <p>यह SonarQube कॉन्फ़िगर करने के लिए इतना है कि इस तरह के कोड ब्लॉक कोड कवरेज विश्लेषण में शामिल नहीं हैं संभव है:
- 4. 'ऑपरेटर <<' के लिए 'std :: cout <<' में अस्पष्ट अधिभार <<
- 5. जीसीसी द्वारा जुड़े डिफ़ॉल्ट पुस्तकालय?</p> <pre><code>int main() { printf("foo"); return 0; } </code></pre> <p>अब मैं जीसीसी फोन:</p> <pre><code>gcc foo.c </code></pre> <p>जब मैं (जीसीसी फोन नहीं विकल्पों के साथ ऊपर के रूप
- 6. Grails में उपयोग किया जा रहा << taglib
- 7. PHP क्या <<< मतलब है?
- 8. << पायथन में क्या करता है?
- 9. रीडायरेक्टर "<<<"?
- 10. <<बजाय << स्ट्रीम आउटपुट में संकलन क्यों करता है?
- 11. एनालॉग के `<<% ~` Traversal
- 12. GIT भ्रष्ट फ़ाइलें (<<<<<<<< HEAD)
- 13. अधिभार ऑपरेटर << सरणी के लिए
- 14. प्रिंट क्या है << ईओएफ; और यह कैसे काम कर रहा है?
- 15. क्या लिनक्स बिल्ली कमांड को फ़ाइल लिखने के लिए इस्तेमाल किया जा सकता है?</p> <pre><code>cat "Some text here." > myfile.txt </code></pre> <p>संभव:
- 16. संपादक के लिए <इनपुट प्रकार = "फ़ाइल"> बनाने के लिए इस्तेमाल किया जा सकता है?
- 17. हास्केल/फ्रीज <= <और = << एसोसिएटिविटी
- 18. PHP व्यंजक <<< EOB
- 19. >>>>,> |, ||, | <, <, <<
- 20. रूबी ब्लॉक जो << - एचटीएमएल
- 21. cout << "привет"; या wcout << एल "привет";
- 22. ऑपरेटर << ओवरलोडिंग कार्य कैसे करता है?
- 23. मोचा के साथ कई रिपोर्ट कैसे उत्पन्न करें? - मैं करने के लिए है</p> <ul> <li>कवरेज</li> <li>कल्पना</li> <li>XUnit</li> </ul> <p>सब मेरी घुरघुराना</p> <p>वर्तमान में से एक भी मोचा निष्पादन में चल रहे:
- 24. "त्रुटि: 'ऑपरेटर << के लिए कोई मुकाबला नहीं" जब std :: स्ट्रिंग के साथ काम करने
- 25. ईजेएस: <% = बनाम <% -
- 26. पीएचपी: <<< ob_start बनाम
- 27. <% # और <% = उद्घाटन टैग के बीच क्या अंतर है?
- 28. जंग में इनलाइन का उपयोग कब किया जाना चाहिए?</p> <p><code>#[inline]</code></p> <p><code>#[inline(always)]</code></p> <p><code>#[inline(never)]</code></p> <p>जब वे इस्तेमाल किया जाना चाहिए:
- 29. कैसे बचें << - असाइन
- 30. "<<<" ऑपरेटर का नाम क्या है?
धन्यवाद !! कवरेज के लिए आपने उन फ़ाइलों का पता कैसे लगाया? –
मैंने कभी भी gcov का उपयोग किया और कुछ मुद्दों का सामना किया ताकि इसे इसके कार्यान्वयन में देखना पड़ा। मैंने कुछ ज्ञात बग फ्योई को जोड़ा लेकिन उन्हें हाल ही में जीसीसी में हल किया जा सकता है। – tristan
बग 49484 निश्चित के रूप में दिखाता है। – Technophile