문제

때때로 나는 코드의 다른 장소에서 다른 디버깅 세션에서 많은 양의 중단 점을 축적합니다. 디버거는 브레이크 포인트를 언제 멈출 때를 효율적으로 알 수 있습니까? 잠재적으로 긴 브레이크 포인트 목록에 대해 줄 번호와 소스 파일 이름을 확인하기 위해 모든 한 줄에서 중지 할 수는 없습니다.

이것은 Eclipse의 Java 디버거이지만, 질문은 모든 디버거에 적용된다고 가정합니다.

도움이 되었습니까?

해결책

많은 디버거 (Eclipse에 대해 잘 모르겠다)에 사용 된 전략은 본질적으로 서브 루틴 호출 또는 시스템 호출 인 중단 점의 지점에서 코드에 패치를 넣는 것입니다. 코드는 중단 점 정보가 있으며, 사용자 명령을 인쇄하거나 수락하는 모든 일을 수행하며 패치로 덮어 쓰는 코드가있어서 코드를 실행하여 실행이 원래 코드와 일치하도록하여 브레이크 포인트가 없습니다.

다른 팁

Nadreck의 좋은 대답에 추가하려면 :

기사가 있습니다 여기 더 이국적인 것들 (x86의 특정 opcode; 하드웨어 브레이크 포인트)을 포함하여 자세한 내용을 포함하여.

디버거는 하드웨어 또는 소프트웨어에서 중단 점을 구현합니다. 후자는 원래 명령을 저장하고 예외를 생성하는 특수 코드를 삽입하고 예외가 제기되면 원래 명령어를 다시 제어하고 사용자에게 중단 점이 적용되었음을 알립니다. 읽다 내 기사 소프트웨어 브레이크 포인트에 대한 Gory 세부 사항.

Eclipse Debugger의 내부에 대한 자세한 내용과 아래 링크에서 하나를 작성하는 방법을 얻을 수 있습니다.일식 디버거를 작성하는 방법

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