2012-01-25 2 views
9

Visual Studio는 중단 점이 발생할 때 호출 스택을 인쇄 할 수 있으며 조건이 충족 될 때 중단 될 수 있으며, 결합하여 다른 결합 된 함수에서 함수가 호출 될 때 중지하고 모든 함수를 무시할 수있는 방법이 있습니다. 다른 전화?스택 상태에서 Visual Studio 중단 점 조건부

답변

4

이 작업을 수행하는 유일한 방법은 매크로를 사용하는 것입니다. 바로 중단 "히트 할 때 .."선택 "매크로 실행"을 선택을 클릭하고 같은 간다 매크로를 가리 :

Sub ContinueUnlessCalledFromRightContext() 
    For Each frame As EnvDTE.StackFrame In DTE.Debugger.CurrentThread.StackFrames 
     If (frame.FunctionName.Contains("SomeOtherMethodsName") Then Exit Function 
    Next 

    DTE.Debugger.Go() ` we weren't called from the right context so continue execution. 
End Sub 

위 반 사이비 코드입니다; 나는 그것을 실제로 테스트하지는 않았지만 약간의 수정 작업을해야했다.

중단 점에서 매크로를 실행하면 본질적으로 매우이 느리기 때문에 중단 점이 자주 충돌하는 경우에는 속도가 느려집니다. 당신이 .NET에 대해 묻는다면

BTW,/C는 #은 훨씬 간단하고, 당신은 단지

new System.Diagnostics.StackTrace().ToString().Contains("SomeOtherMethodsName") 

에 조건부 중단 점을했습니다 수있는 한 것입니다 ... 그리고 그것을 함께 할 수.

+2

미래의 메모 : [매크로는 Visual Studio의 최신 버전에는 존재하지 않습니다.] (https://social.msdn.microsoft.com/Forums/vstudio/en-US/d8410838-085b-4647-8c42-e31b669c9f11/macros -in-visual-studio-11-developer-preview? forum = vsx). 나는 OP가 VS2013 이상에서 요청한 것에 대한 제안을합니다. –

3

확실하지만 그냥 호출 프로세스에 중단 점을 넣어 쉬울 수 있습니다하지만 당신은 필터링이나 조건 중 하나에 할 수있을 것하지 않고

이 좋은 자원이다 : 나는 믿고 Mastering Debugging in Visual Studio 2010 - A Beginner's Guide

+0

호출자의 설정 중단 점이 내 경우에 편리하지 않아 여러 개의 중단 점을 설정해야하며 둘 이상의 스택 수준에서 조건을 설정하려고합니다. – Vasaka

관련 문제