'인쇄'진술을 추가하여 디버깅을 수행하는 적절한 이름은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/189562

  •  06-07-2019
  •  | 
  •  

문제

디버거를 사용하는 방법에는 여러 가지가 있습니다. 디버거를 사용하는 것은 하나이지만 겸손하고 게으른 프로그래머의 간단한 것은 코드에 많은 인쇄 문을 추가하는 것입니다.

 def foo(x):
     print 'Hey wow, we got to foo!', x

     ...

     print 'foo is returning:', bar
     return bar

이 스타일의 디버깅에 적절한 이름이 있습니까?

도움이 되었습니까?

해결책

예 - 그것은 알려져 있습니다 printf() 디버깅, 유비쿼터스 C 기능의 이름을 따서 명명되었습니다.

프로그램 흐름의 핵심 지점에서 다소 신중하게 선택된 상태 정보를 출력하여 해당 정보를 관찰하고 해당 정보를 기반으로 잘못된 내용을 추론하는 명령을 삽입하여 수행 한 디버깅 작업을 설명하는 데 사용됩니다.

-- printf () 디버깅@Everything2

다른 언어의 기본 사용자는 의심 할 여지없이 선택한 코딩 플랫폼에 사용할 수있는 기본 인쇄 / 로그 / 또는 추적 명령으로 언급하지만, 많은 언어 로이 기술에이 기술을 참조하는 데 사용되는 "printf ()"이름을 들었습니다. 아마도 이것은 아마도 역사 때문일 것입니다 : 기본과 포트란은 기본이지만 서비스 가능했습니다. PRINT 명령, c는 일반적으로 다양한 데이터 유형을 형식화하기 위해서는 일반적으로 조금 더 많은 작업이 필요했습니다. printf() (그리고 종종 여전히) 지금까지 이를위한 가장 편리한 수단은 많은 내장 형식 옵션을 제공합니다. 사촌, fprintf(), 다른 매개 변수를 가져 오는 스트림을 사용하여 다음에 쓸 수 있습니다. stderr (로그 파일로 리디렉션 될 수 있음) 프로그램의 출력을 방해하지 않도록합니다.

현대 디버깅 소프트웨어 사용자가 종종 검토했지만 Printf () 디버깅은 계속해서 필수 불가능하다는 것을 증명합니다. Firefox 웹 브라우저 용으로 인기있는 Firebug 도구 (현재 다른 브라우저에 사용할 수있는 유사한 도구)는 콘솔 창 주위에 구축되었습니다. 웹 페이지 스크립트는 형식화 된 데이터가 포함 된 오류 또는 진단 메시지를 기록 할 수 있습니다.

다른 팁

나는 그것이 전화를 들었다 원시인 디버깅

나는 다음 인용문이 아프로 포스라고 생각했다.

"가장 효과적인 디버깅 도구는 여전히 신중하게 생각하고 있으며 신중하게 배치 된 인쇄 문장과 결합됩니다."

  • Brian Kernighan, "초보자를위한 유닉스"(1979)

나는 그것을 추적이라고 부른다.

나와 내 팀원들은 그것을 "구식 디버깅"이라고 부릅니다.

바지 디버깅의 좌석 :)

임베디드 시스템에있을 때는 출혈 가장자리에 있고 코딩하는 언어가 디버거가 아직없고 디버거가 이상하게 행동하고 정신을 복원하고 싶을 때는 아직 디버거가 없습니다. 재창조가 다중 스레드 코드에서 어떻게 작동하는지 이해하려면 ....

같은 의미에서 탐색 적 프로그래밍, 나는 그것을 부르는 것을 좋아합니다 탐색 디버깅. 이는 디버거가 프로그램의 복잡한 유형을 검사하거나 도우미 기능을 별도로 호출 할만 큼 강력하지 않은 경우에 이어지거나 해당 기능을 직접 사용하는 버그에 대해 충분히 알지 못합니다.

나는 이것을 "안녕, 엄마"프로그래밍이라고 부릅니다.

나는 또한 그 용어를 들었다 "메시지 상자 디버깅" VB 군중 에서이 '디버깅'의 '스타일'을 언급합니다.

시스템은 종종 코드를 계측하는 유일한 방법입니다. 불행히도 인쇄는 시간과 시스템의 실시간 흐름에 영향을 미칩니다. 따라서 우리는 또한 시스템 상태 (함수 항목 출구 등)에 대한 정보가 내부 버퍼에 쓰고 나중에 구문 분석되는 "추적"을 통해 도구도 있습니다. 실제 임베디드 프로그래머는 LED를 깜박임으로써 디버깅 할 수 있습니다.)

나는 들었다 "구텐베르크 디버깅"영광으로 사용되는 것 인쇄기를 발명 한 사람.

나는 그것을 간단히 부를 것이다 "벌채 반출".

나는 보통 그것을 추적이라고합니다.

Visual Studio에서는 추적을 추가하는 중단 점을 설정할 수 있습니다. 중단 점을 마우스 오른쪽 버튼으로 클릭하고 "hit hit ..."를 선택하고 "메시지 인쇄"옵션을 확인하십시오.

또한 .NET에서는 콘솔에 출력하기 위해 디버깅 문을 추가 할 수 있습니다. 이 법령은 디버그 빌드에만 포함되어 있습니다. 컴파일러는 릴리스 빌드를 수행 할 때 자동으로이를 남겨 둡니다.

클래식 디버깅

수동 어설 션? 디버거 공포증?

장황 디버깅!

(좋은 로깅은 생산 시스템 실행 시스템에서 문제를 디버깅하는 데 엄청나게 가치가 있습니다. 많은 쓸모없는 장황한 인쇄 문장은 아니지만 중요하거나 예상치 못한 일이 발생했을 때 흥미로운 것을 기록하는 것이 매우 중요합니다. 디버거, 당신은 당신이 구축 한 서비스가 일부 사용자를 위해 고장 났을 때 꽤 빡빡한 자리에있을 것이지만 로컬에서 문제를 재현 할 수는 없습니다.)

나는 항상 '빠르고 더러워진 디버깅'이라는 용어로, 또는 단지 '더러운 디버깅'이라는 용어로 그것을 알고있었습니다.

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