저는 프로그래밍 초보자이며 버그를 추적하는 데 매우 어려움을 겪고 있습니다. 이는 일반적으로 변수를 감시 화면에 배치하고 일부 변경 사항을 알기 전까지 f5 키를 계속 누르고 있기 때문에 발생합니다. 저는 Visual C# 2010을 사용하고 있으며 18000 줄의 코드를 가지고 있으므로 문제가 생길 수있는 행운이 있습니다.변수가 변경 될 때 디버깅을 통한 버그 추적
변수가 변경되면 즉시 코드 줄로 갈 수있는 방법이 있습니까?
저는 프로그래밍 초보자이며 버그를 추적하는 데 매우 어려움을 겪고 있습니다. 이는 일반적으로 변수를 감시 화면에 배치하고 일부 변경 사항을 알기 전까지 f5 키를 계속 누르고 있기 때문에 발생합니다. 저는 Visual C# 2010을 사용하고 있으며 18000 줄의 코드를 가지고 있으므로 문제가 생길 수있는 행운이 있습니다.변수가 변경 될 때 디버깅을 통한 버그 추적
변수가 변경되면 즉시 코드 줄로 갈 수있는 방법이 있습니까?
변수를 property으로 변경하고 설정 자에 중단 점을 넣을 수 있습니다. 그런 다음 코드 조각이 값을 변경할 때마다 적중되는 단일 중단 점을 가질 수 있습니다.
당신이 그렇다면 :
int myVariable {
get;
set; // <-- Put your breakpoint here
}
네이티브 코드에서 가장 좋은 방법은 데이터 중단 점을 설정하는 것입니다. 변경 사항의 출처와 관계없이 데이터가 변경되면 데이터 중단 점이 실행됩니다.
그러나 .NET에서는이 작업을 수행 할 수 없습니다. 변수 값이 변경되면 중단되도록 디버거에 요청할 수 없습니다. 그러나 모든 희망이 사라지는 것은 아닙니다. 해당 변수를 사용하는 코드의 모든 위치를 찾으려면 해당 변수에서 "Find Usages"또는 "References Find"를 수행하십시오. 그런 다음 각 위치에 중단 점을 설정하여 변수 값이 변경되는시기를 확인하십시오.
이 디자인 문제 같은 소리 님의
int myVariable;
변경을. 이상적으로는 변수가 코드의 특정 위치로 변경되는 위치를 제한해야합니다. 이것은 전역 변수와 정적 변수를 사용하지 않는 한 전역 변수와 정적 변수를 피할 수있는 한 가지 이유입니다. 그렇더라도 액세서 메소드를 직접 변경하지 않고 이러한 변수의 인터페이스로 정의해야합니다.
코드를 디버깅 할 때 향후 디버깅이 그렇게 어렵지 않도록 코드를 향상시킬 수있는 방법을 찾아 보시기 바랍니다.
저에게 꽤 복잡한 질문입니다. 답을 좀 더 쉽게 찾을 수 있습니까? – ng80092a
@ ng80092a 재산에 대해 무엇이 너무 복잡한 지 잘 모르겠습니다. 내 답변에 예제를 추가했습니다. – shf301