문제

그게 보인다

주목할만한 예외는 크게 동일합니다. 디버그 사용법은 릴리스 구성으로 컴파일됩니다.

하나는 언제이고 다른 하나를 사용 하시겠습니까? 내가 지금까지 파낸 이것에 대한 유일한 대답은 당신이 디버그 디버그 구성에서만 표시되는 출력을 생성하는 클래스 및 추적하다 릴리스 구성에 남아 있지만 실제로 내 머리 속의 질문에 대답하지는 않습니다.

코드를 계측하려면 왜 사용하겠습니까? 디버그, 부터 추적하다 리 컴파일없이 꺼질 수 있습니까?

도움이 되었습니까?

해결책

주된 차이점은 다음과 같이 표시하는 것입니다. 디버그는 릴리스에 포함되지 않지만 Trace는 IS입니다.

내가 이해 한 바와 같이, 개발 팀은 디버그를 사용하여 제품의 소비자에 대해 너무 상세한 (또는 공개)를 증명할 수있는 풍부하고 설명적인 메시지를 방출 할 수 있다는 것입니다. 보다 구체적으로 응용 프로그램을 계기에 맞게 준비된 메시지.

마지막 질문에 답하기 위해 디버그를 사용하여 릴리스하려는 코드 조각을 도구로 생각할 수 없습니다.

도움이 되었기를 바랍니다.

다른 팁

디버그는 순수한 디버깅 목적으로 사용됩니다. 디버그 실행 (디버그 모드)에서 풍부한 메시지를 방출합니다.

추적은 응용 프로그램 디버깅, 버그 수정 및 프로파일 링 (출시 후)에 도움이됩니다.

디버그 클래스는 릴리스 모드에서 사용되지 않습니다.

트레이스와 디버그의 유일한 차이점은 트레이스 명령문이 릴리스 빌드에 컴파일 될 때 프로그램에 기본적으로 포함 된 반면 디버그 문은 그렇지 않다는 것입니다.

따라서 디버그 클래스는 주로 개발 단계에서 디버깅에 사용되는 반면 트레이스는 테스트 및 최적화 응용 프로그램이 컴파일 및 릴리스 된 후

성능이 높은 민감한 코드 블록의 경우 트레이스를 컴파일하지만 비활성화하면 성능 차이가 발생할 수 있습니다.

트레이싱을 위해 Log4Net을 사용하는 것을보고 있습니다. 기능은 훨씬 유연하고 강력합니다.

그러나 나 또는 내부 테스터 이외의 다른 사람이 볼 의도가없는 진정한 디버그 메시지의 경우 아마도 디버그를 고수 할 것입니다.

당신은 자신의 질문에 대답했습니다. 디버그 메시지가 머물면 사람들이 볼 수 있습니다. 예를 들어, 당신이 그렇게한다고 가정 해 봅시다 :

Debug.WriteLine("Connecting to DB with username: blah and PW: pass");

코드를 소형하는 사람은 누구나 그것을 볼 수 있습니다. 그러나 그것은 테스트 중에 알기가 매우 중요한 것일 수 있습니다.

추적은 다릅니다. 추적을하려면 log4net을 사용하는 것 같습니다.

이것은 트레이스와 디버그의 전체 차이입니다 : 디버그와 트레이스 사용 시스템. 진단 네임 스페이스.

디버그

  • 디버그 클래스를 사용합니다.
  • 디버그 빌드에 사용됩니다.
  • 응용 프로그램 개발 시간을 사용합니다.
  • 디버그 모드 컴파일러에서 실행 파일 내부의 일부 디버깅 코드를 삽입합니다.
  • 디버그 클래스는 디버그 모드에서만 작동합니다.
  • 디버그를 사용하여 성능 분석을 수행 할 수 없습니다.
  • 디버깅은 프로그램에서 오류를 찾는 데 사용됩니다.
  • Debug의 경우 Debug.write () 메소드를 사용할 수 있습니다.
  • 디버그는 메인 프로그램 실행과 같은 스레드에서 실행됩니다.

추적하다

  • 추적 클래스를 사용합니다.
  • 추적 명령문에는 기본적으로 프로그램이 릴리스 빌드에 컴파일 된 경우 포함됩니다.
  • 추적 클래스는 응용 프로그램이 컴파일되고 해제 된 후에도 테스트 및 최적화에 사용됩니다.
  • 추적 클래스는 릴리스 모드뿐만 아니라 케이스 디버그 모드 모두에서 작동합니다.
  • 추적은 다른 스레드 형태의 기본 프로그램 실행 스레드에서 실행됩니다.
  • 추적의 경우 trace.write () 메소드를 사용할 수 있습니다.
  • 응용 프로그램 배포 시간을 사용합니다.

참조 : Csharp 코너

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top