2

내 경우에는 GetCallingMethod이라는 전역 함수를 사용하여 분석을했습니다.응용 프로그램을 닫을 때 새 StackTrace 블록 호출

대부분 잘 작동합니다. 그러나 어떤 경우에는 응용 프로그램이 차단됩니다. 응용 프로그램을 닫을 때 차단됩니다. Visual Studio에서 "일시 중지"할 때, 그것은 new StackTrace 줄에 영원히 머물러 있습니다.

제 3 자 참조, 멀티 스레딩 및 여러 클래스를 사용하고 있습니다. 그러나 모든 것이 문제가 되어선 안되며 상상하는 한 추적 클래스를 잠그지 않아야합니다. 이 경우 Visual Studio 2010 Ultimate을 사용하고 있습니다.

어디서 해결책을 찾을 수 있습니까?

Stack block 이 줄은 개발 영역에 절대로 남지 않습니다. 신청서가 정지됩니다. 시도/캐치는 강제로 프로 시저를 실행하지 않습니다.

답변

1

다음은 내가 사용하는 것으로, 결코 문제 (디버그 또는 생산)를 제공하지 않습니다.

Dim strMethodName As String = "" 
Dim stkTrace As New StackTrace(True) 
strMethodName = stkTrace.GetFrame(1).GetMethod().Name 

참고 : 한 그것이 stkTrace.FrameCount 이하의대로) GetFrame (임의의 정수를 넣을 수 있습니다. 0은 현재 프레임, 1은 이전, 2는 그 이전 등입니다 ...

+0

안녕하세요. 귀하의 답변에 감사드립니다. 나는 또한 소규모 프로젝트에는 아무런 문제가 없었다. 이 프로젝트에는 거대한 멀티 쓰레드가 실행 중이고 문제가 있다고 생각합니다. 'True' 또는'False' 인수를 사용하는 것은 도움이되지 않았습니다. 아마도 다른 사람이 나 같은 문제가 있습니다. 중단 점에있을 때 "새로운 StackTrace"는 항상 디버깅을 위해 노력하고 있습니다. 앱을 실행하는 동안 오류가 발생합니다. – Nasenbaer

관련 문제