C++ 이후 C#을 배우는 초보자입니다. VS2010.C# 바이너리 검색 트리 - 스택 오버플로 - 디버그
내 코드를 디버깅하려고 할 때 "로컬"프레임의 이상한 빈 줄을 발견했습니다. 디버거는이 빈 줄을 쳐다보고 몇 초 후에 종료됩니다.
을 확인하시기 바랍니다 : http://pastebin.com/KZbfy8JF
감사합니다.
솔루션을 찾고 최소한의 비용으로 노는 데 3 시간 이상을 소비했습니다.
C++ 이후 C#을 배우는 초보자입니다. VS2010.C# 바이너리 검색 트리 - 스택 오버플로 - 디버그
내 코드를 디버깅하려고 할 때 "로컬"프레임의 이상한 빈 줄을 발견했습니다. 디버거는이 빈 줄을 쳐다보고 몇 초 후에 종료됩니다.
을 확인하시기 바랍니다 : http://pastebin.com/KZbfy8JF
감사합니다.
솔루션을 찾고 최소한의 비용으로 노는 데 3 시간 이상을 소비했습니다.
Value
속성 게터와 세터는 무한 재귀 -이으로 변경 :
public T Value { get; set; }
일반적으로 스택 오버플로는 사용자가 돌아 가지 않고 재귀한다는 것을 의미합니다. 그러나 나는 당신이 어디에서 그렇게하는지 보지 못합니다. 내가 할 수있는 몇 가지 전략적 장소에 Console.WriteLine 문을 삽입하고 어떤 라인을 실행하고 얼마나 자주 볼 수 있습니다. 예를 들어, 삽입 시작 부분과 내부 루프에 있습니다. 이렇게하면 조금 더 많은 정보를 얻을 수 있습니다.
이미 대답 (값/세트 수) 그러나 여기 팁입니다 :
VS.NET에서눌러 Ctrl + Alt + E를 눌러 Exceptions 대화 상자를 엽니 다 (VS.NET에서 선택한 프로필에 따라 Debug-> Exceptions 아래에있을 수도 있음). 이렇게하면 전체 스택 풀기 및 프로그램이 궁극적으로 중단되는 것과는 대조적으로 특정 예외 유형이 발생하면 중단 될 수 있습니다.
"공용 언어 런타임 예외"의 경우 "처리 완료"확인란을 선택하고 확인을 누른 다음 프로그램을 실행하십시오. 프로그램 실행이 예외 시점에서 중단되므로 훨씬 더 분명하게 알 수 있습니다.
귀하의 경우 귀하의 재산에 따라 프로그램이 중단됩니다. 더 많이 보시려면 Call Stack wndow (Debug-> Windows-> Call Stack 또는 CTRL + ALT + C)를 열어 전체 스택을 보시면 속성이 그 안에있는 유일한 것임을 알 수 있습니다.
+1 답변입니다. 조심하지 않으면 쉽게 실수 할 수 있습니다. –
나는 컴파일러가 이들을 찾지 못한다고 싫어한다. –
이것은이다 !!!! 정말 고맙습니다!!! 나머지 버그 코드를 디버깅 할 수 있습니다 =) – CatZilla