क्या कोई मैक्रो है जो करता है? कौन सी डीटीई वस्तुओं का उपयोग करने के लिए?.cpp फ़ाइल के प्रत्येक फ़ंक्शन में ब्रेकपॉइंट कैसे डालें?
उत्तर
मैं क्या DTE कार्यों का उपयोग करने के लिए पता नहीं है, लेकिन आप बहुत बस एक मैक्रो काफी यह कर सकता है रिकॉर्ड कर सकता है: फ़ाइल
- जाओ - पाली - आर (रिकॉर्डिंग शुरू करें)
- ctrl - I (वृद्धिशील खोज)
- {(पहले {चरित्र) की खोज करें।
- F9 (सेट ब्रेकप्वाइंट)
- ctrl -] (मिलान करने के लिए जाना} चरित्र)
- ctrl - पाली - आर (स्टॉप रिकॉर्डिंग)
अब बस इस के साथ चलने और अधिक (Ctrl - पारी पी बार-बार) जब तक आप फ़ाइल के अंत तक नहीं पहुंच जाते।
आप नामस्थान है, तो बदल 4. करने के लिए:
- ((समारोह परिभाषा की शुरुआत)
- esc पर "(" के लिए खोज (वृद्धिशील रोक खोज)
- ctrl - मैं (फिर से वृद्धिशील खोज)
- {(समारोह शरीर की शुरुआत)
बात इस तरह की असीम अपने codebase सूट करने के लिए संशोधित किया जा सकता
मेरे पास अनाम नामस्थान हैं, क्या यह काम करेगा? (चेक करने के लिए इस समय वीएस नहीं है) – Constantin
दरअसल (मेरी पिछली टिप्पणी को अनदेखा करें) यह स्पष्ट रूप से नामस्थान के अंदर कोड को छोड़ देगा। –
में संपादित किए गए परिवर्तन को आज़माएं इसे वीएस 2010 में काम करने के लिए नहीं मिल सकता - एक मैक्रो रिकॉर्ड करते समय वृद्धिशील खोज अक्षम है। –
फ़ाइल के शीर्ष पर इस रखो:
#define WANT_BREAK_IN_EVERY_FUNCTION
#ifdef WANT_BREAK_IN_EVERY_FUNCTION
#define DEBUG_BREAK DebugBreak();
#else
#define DEBUG_BREAK
#endif
तो हर कार्य की शुरुआत में DEBUG_BREAK डालें, इस तरह:
void function1()
{
DEBUG_BREAK
// the rest of the function
}
void function2()
{
DEBUG_BREAK
// the rest of the function
}
अब आप नहीं चाहते जब डिबग टूटता है, टिप्पणी लाइन
// #define WANT_BREAK_IN_EVERY_FUNCTION
फ़ाइल के शीर्ष पर।
मुझे एक अनियंत्रित स्वचालित समाधान चाहिए। मैं बस प्रत्येक समारोह में F9 दबा सकता हूं। – Constantin
यहाँ कैसे कुछ इसी तरह WinDbg में प्राप्त किया जा सकता है:
bm mymodule!CSpam::*
इस वर्ग (या नाम स्थान) CSpam
की हर विधि में ब्रेकप्वाइंट डालता मॉड्यूल mymodule
में।
मैं अभी भी विजुअल स्टूडियो में इस कार्यक्षमता के करीब कुछ भी ढूंढ रहा हूं।
यहाँ 1800 जानकारी के विचार की एक त्वरित कार्यान्वयन है:
Sub TemporaryMacro()
DTE.ActiveDocument.Selection.StartOfDocument()
Dim returnValue As vsIncrementalSearchResult
While True
DTE.ActiveDocument.ActiveWindow.Object.ActivePane.IncrementalSearch.StartForward()
returnValue = DTE.ActiveDocument.ActiveWindow.Object.ActivePane.IncrementalSearch.AppendCharAndSearch(AscW("{"))
DTE.ActiveDocument.ActiveWindow.Object.ActivePane.IncrementalSearch.Exit()
If Not (returnValue = vsIncrementalSearchResult.vsIncrementalSearchResultFound) Then
Return
End If
DTE.ExecuteCommand("Debug.ToggleBreakpoint")
DTE.ExecuteCommand("Edit.GotoBrace")
DTE.ActiveDocument.Selection.CharRight()
End While
End Sub
+1, लेकिन स्वीकार नहीं कर सकता, क्योंकि यह नामस्थानों के साथ काम नहीं करता है। – Constantin
यदि आपको नामस्थानों के साथ समस्याएं आ रही हैं, तो दस्तावेज़ की शुरुआत में जाने वाली पहली पंक्ति पर टिप्पणी करें। आपको उस ब्लॉक की शुरुआत में कर्सर को मैन्युअल रूप से रखना होगा, जिसे आप टॉगल करना चाहते हैं, लेकिन यह काम करेगा। – tfinniga
तरह Constantin की विधि ... इस क्षेत्र WinDbg की तरह लगता है।
चूंकि आपके पास सीपीपी है, (भले ही आपने कुछ प्राप्त करने के लिए कुछ स्क्रिप्ट नहीं किया हो), विंडोज़ के लिए डिबगिंग टूल के logger भाग का उपयोग करने में कोई समस्या नहीं होनी चाहिए ... यह एक बहुत ही आसान टूल है, शर्म की बात है कि बहुत कम लोग इसका इस्तेमाल करते हैं।
समृद्ध प्रतीकात्मक जानकारी, हुक/प्रोफाइलिंग/लचीला उपकरण के साथ आसानी से लॉगर डीबग का सी/कॉम/सी ++;
अच्छी चीजें! ---- – Constantin
मैं इसके बारे में और जानना चाहता हूं, मुझे लोड होने में समस्या हो रही है और मैं संदर्भ देखना चाहता हूं कि कुछ Google protobuf अपवादों के लिए यह अनुमानित डुप्लिकेशंस हो रहा है। – jxramos
(यह आपके लिए काफी जो चाह रहे हैं, लेकिन लगभग :)
आप एक ब्रेकपाइंट पर हर सदस्य समारोह एक वर्ग के दृश्य स्टूडियो में लाकर रख सकते हैं नहीं है न्यू ब्रेकप्वाइंट संवाद और प्रवेश:
CMyClass::*
अधिक जानकारी के लिए http://blogs.msdn.com/b/habibh/archive/2009/09/10/class-breakpoint-how-to-set-a-breakpoint-on-a-c-class-in-the-visual-studio-debugger.aspx देखें।
जानना अच्छा है ... – Constantin
एक मैक्रो है, लेकिन मैंने इसे केवल सी # के साथ परीक्षण किया।
Sub BreakAtEveryFunction()
For Each project In DTE.Solution.Projects
SetBreakpointOnEveryFunction(project)
Next project
End Sub
Sub SetBreakpointOnEveryFunction(ByVal project As Project)
Dim cm = project.CodeModel
' Look for all the namespaces and classes in the
' project.
Dim list As List(Of CodeFunction)
list = New List(Of CodeFunction)
Dim ce As CodeElement
For Each ce In cm.CodeElements
If (TypeOf ce Is CodeNamespace) Or (TypeOf ce Is CodeClass) Then
' Determine whether that namespace or class
' contains other classes.
GetClass(ce, list)
End If
Next
For Each cf As CodeFunction In list
DTE.Debugger.Breakpoints.Add(cf.FullName)
Next
End Sub
Sub GetClass(ByVal ct As CodeElement, ByRef list As List(Of CodeFunction))
' Determine whether there are nested namespaces or classes that
' might contain other classes.
Dim aspace As CodeNamespace
Dim ce As CodeElement
Dim cn As CodeNamespace
Dim cc As CodeClass
Dim elements As CodeElements
If (TypeOf ct Is CodeNamespace) Then
cn = CType(ct, CodeNamespace)
elements = cn.Members
Else
cc = CType(ct, CodeClass)
elements = cc.Members
End If
Try
For Each ce In elements
If (TypeOf ce Is CodeNamespace) Or (TypeOf ce Is CodeClass) Then
GetClass(ce, list)
End If
If (TypeOf ce Is CodeFunction) Then
list.Add(ce)
End If
Next
Catch
End Try
End Sub
हालांकि यह लिंक प्रश्न का उत्तर दे सकता है, लेकिन यहां उत्तर के आवश्यक हिस्सों को शामिल करना बेहतर है और संदर्भ के लिए लिंक प्रदान करना बेहतर है। लिंक किए गए पृष्ठ में परिवर्तन होने पर लिंक-केवल उत्तर अमान्य हो सकते हैं। –
@ साहिल मित्तल धन्यवाद, सही। – alexkovelsky
दिलचस्प है, हालांकि आमतौर पर मैं सी # कोड को .cpp फ़ाइलों में नहीं डालता हूं। मुझे आश्चर्य है कि यह सी ++ के लिए भी काम करता है। – Constantin
यहाँ एक तरह से यह करने के लिए है (मैं आपको चेतावनी देता यह hacky है):
EnvDTE.TextSelection textSelection = (EnvDTE.TextSelection)dte.ActiveWindow.Selection;
// I'm sure there's a better way to get the line count than this...
var lines = File.ReadAllLines(dte.ActiveDocument.FullName).Length;
var methods = new List<CodeElement>();
var oldLine = textSelection.AnchorPoint.Line;
var oldLineOffset = textSelection.AnchorPoint.LineCharOffset;
EnvDTE.CodeElement codeElement = null;
for (var i = 0; i < lines; i++)
{
try
{
textSelection.MoveToLineAndOffset(i, 1);
// I'm sure there's a better way to get a code element by point than this...
codeElement = textSelection.ActivePoint.CodeElement[vsCMElement.vsCMElementFunction];
if (codeElement != null)
{
if (!methods.Contains(codeElement))
{
methods.Add(codeElement);
}
}
}
catch
{
//MessageBox.Show("Add error handling here.");
}
}
// Restore cursor position
textSelection.MoveToLineAndOffset(oldLine, oldLineOffset);
// This could be in the for-loop above, but it's here instead just for
// clarity of the two separate jobs; find all methods, then add the
// breakpoints
foreach (var method in methods)
{
dte.Debugger.Breakpoints.Add(
Line: method.StartPoint.Line,
File: dte.ActiveDocument.FullName);
}
- 1. phpStorm में, एक php फ़ाइल में जावास्क्रिप्ट ब्रेकपॉइंट कैसे डालें
- 2. .cpp फ़ाइल में कक्षा घोषणा
- 3. .cpp फ़ाइल शामिल करें?
- 4. एक भी cpp फ़ाइल
- 5. प्रत्येक सेकेंड में कई फ़ंक्शन चलाएं, फ़ाइल
- 6. एक .cpp फ़ाइल में एकाधिक वर्ग
- 7. मौजूदा फ़ाइल में टेक्स्ट डालें
- 8. पायथन के वर्ग सदस्य फ़ंक्शन पर ब्रेकपॉइंट कैसे बनाएं?
- 9. ब्रेकपॉइंट
- 10. जावाएफएक्स HTMLEditor - छवि फ़ंक्शन डालें
- 11. .h फ़ाइल से .cpp स्रोत जेनरेट करें
- 12. पाइथन चर में जावास्क्रिप्ट फ़ंक्शन का परिणाम कैसे डालें। पीईक्यूटी
- 13. सीएसवी फ़ाइल में एक पंक्ति डालें
- 14. डेटाबेस में सरणी कैसे डालें?
- 15. पायथन में कॉन्फ़िगरेशन फ़ाइल कहां डालें?
- 16. ब्रेकपॉइंट
- 17. एक्लिप्स में फ़ाइल शीर्षलेख डालें/बदलें?
- 18. Emacs: psvn.el फ़ाइल कहां डालें?
- 19. ब्रेकपॉइंट
- 20. ब्रेकपॉइंट
- 21. प्रत्येक फ़ाइल
- 22. प्रत्येक फ़ाइल
- 23. फ़ंक्शन के सभी आमंत्रणों के लिए जीडीबी में ब्रेकपॉइंट कैसे सेट करें?
- 24. django: रूट निर्देशिका के तहत एक स्थिर फ़ाइल कैसे डालें?
- 25. ग्रहण से ब्रेकपॉइंट कैसे निकालें?
- 26. jQuery.each फ़ंक्शन के प्रत्येक लूप के बीच देरी कैसे करें?
- 27. प्रत्येक फ़ाइल के गिट योगदानकर्ता
- 28. MySQL तालिका के कॉलम में फ़ाइल सामग्री डालें
- 29. एसटीएल सेट में कैसे डालें?
- 30. विंडबग: सी ++ फ़ंक्शन के ओवरलोड में से किसी एक पर ब्रेकपॉइंट कैसे सेट करें?
मजबूत तर्क मैं आज देखा है खिड़कियों के तहत विकासशील बंद करो और gdb जैसे उपकरणों के साथ लिनक्स का उपयोग करने कि होगा आपको एक फाइल पर ब्रेकपॉइंट करने दें। – Owl