Mam 40-50 metod w klasie, chcę dodać punkty przerwania do wszystkich z nich. Czy mogę jednorazowo dodać punkty przerwania do wszystkich?Czy można ustawić punkty przerwania dla wszystkich metod w klasie jednocześnie w programie Visual Studio?
Odpowiedz
Jest to metoda mniej dodatek opisane tutaj: How to set a breakpoint on a C++ class in the Visual Studio Debugger
W skrócie, można otworzyć okno „New Breakpoint” wciskając Ctrl + B i typu w ClassName::*
do dziedziny funkcji. Możesz następnie wyłączyć niektóre z nich w oknie punktów przerwania.
Można spróbować, class breakpoint add-in, lub można użyć replace expression, aby dodać __debugbreak()
na początku każdej metody.
Oto twoje makro, ale ustawianie przerw na 1000+ funkcji zajmuje trochę czasu ... i spowolni działanie Visual Studio!
Sub BreakAtEveryFunction()
For Each project In DTE.Solution.Projects
SetBreakpointOnEveryFunction(project)
Next project
End Sub
' Macro editor
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
Aby ten skrypt działał w VS 2012, możesz skopiować funkcje do nowego projektu Addin i wywołać "BreakAtEveryFunction" wewnątrz metody "OnConnection" projektu Addin. Skrypt jest nieco zbyt obszerny w tym, że robi metody .NET, również ma błędy tu i tam, projekt Addin będzie narzekał na "DTE.Debugger" i "DTE.Solution.Projects", zmień "DTE" na "_applicationObject" . Aby uzyskać więcej informacji na temat projektu Addin, zobacz [Ta odpowiedź.] (Http://stackoverflow.com/questions/12027485/alternative-to-macros-in-visual-studio-2012/12394986#12394986) – goamn
Przyjęta odpowiedź nie zadziałała dla mnie z jakiegoś powodu. I nie sądzę, moje obejście dotyczy Visual Studio 2010. Ale użyłem rozszerzenie Macros for Visual Studio z moim Visual Studio 2015, aby to zrobić.
Kroki:
- znalezienia (Ctrl + F) prawo wcięcie w nawiasie otwierającym metod. Zwykle jest to 8 białych spacji (lub 2 zakładki itp. W zależności od ustawień, które mogłeś wprowadzić).
- Dodaj do tego nawias otwierający
{
. - Dodaj to za pomocą
\r\n
, aby upewnić się, że nie pasuje on do zagnieżdżonych nawiasów klamrowych. Teraz może wyglądać jak\r\n {
. Włącz również wyszukiwanie wyrażenia regularnego (naciskając przycisk*
w oknie wyszukiwania). - Rozpocznij nagrywanie makra.
- Naciśnij klawisz F3, a następnie naciśnij F9, aby dodać punkt przerwania. To dodaje punkt przerwania do pierwszej metody znalezionej przy użyciu podstępu.
- Zatrzymaj nagrywanie makra. Graj według liczby możliwych metod.
- Ostrzeżenie: Bądź świadomy, kiedy dojdziesz do końca. W przeciwnym razie zacznie się od początku i zacznie usuwać właśnie dodane punkty przerwania.
Poinformuj mnie, że jest jakieś zamieszanie.
- 1. Punkt przerwania lldb dla wszystkich metod w klasie cel c
- 2. Visual Studio 2012: Lista wszystkich metod w klasie
- 3. Jak automatycznie ustawić punkty przerwania na wszystkich metodach w XCode?
- 4. Nie można uzyskać punktu przerwania w programie Visual Studio
- 5. Dlaczego moje punkty przerwania duplikują się w Visual Studio?
- 6. Jak wyświetlić wszystkie punkty przerwania w Visual Studio 2013?
- 7. Jak ustawić punkty przerwania programowo w Visual C++?
- 8. Ustawianie punktu przerwania pamięci w programie Visual Studio 2012
- 9. W Visual Studio, czy mogę umieścić punkty przerwania w kodzie, dla którego mam tylko symbole debugowania?
- 10. Przycisk skrótu do następnego punktu przerwania w programie Visual Studio
- 11. Wyłącz/usuń punkty przerwania dla dzieci?
- 12. Jak dodać punkty przerwania debugowania do wierszy wyświetlanych w oknie "Znajdź wyniki" w Visual Studio
- 13. Jak wykryć punkt przerwania usuwany w programie Visual Studio?
- 14. Visual Studio Code debugowanie chrome, punkty przerwania nie będą trafiać
- 15. Visual Studio: jazda na rowerze przez punkty przerwania
- 16. W Visual Studio można wykreślić moją zmienną w punkcie przerwania?
- 17. Nie można załadować jednego lub więcej błędów punktów przerwania w programie Visual Studio 2013
- 18. Jak ustawić właściwość SSRS ConsumeContainerWhitespace w programie Visual Studio 2008?
- 19. Punkty przerwania stron aspx
- 20. punkty przerwania w programie argumentów, przechodząc z SML
- 21. Wymuszenie przerwania każdego wyjątku zgłoszonego w programie
- 22. gdb, ustaw punkt przerwania dla wszystkich funkcji w pliku
- 23. Xdebug ignoruje punkty przerwania
- 24. Uruchamianie dwóch projektów jednocześnie w Visual Studio
- 25. Microsoft Visual Studio 2012 nie można ustawić punkt przerwania w C# pliku
- 26. Czy można jednocześnie zminimalizować wszystkie funkcje w Android Studio?
- 27. Jak ustawić punkt przerwania w gdb dla wszystkich wywołań funkcji?
- 28. Jak ustawić punkt przerwania w treści funkcji w R-studio?
- 29. Powtórz przeliczanie obiektów podczas debugowania w programie Visual Studio
- 30. Używanie innego kompilatora w programie Visual Studio
Czy możesz wyjaśnić drugą część odpowiedzi? – goamn