Eclipse 디버거를 다시 시작하는 방법은 무엇입니까?
이클립스 디버거에서 역방향 실행이 가능합니까?현재 진행 중인 프로젝트에서는 파일에서 데이터를 읽고 초기화하는 데 최소 5초가 소요됩니다.디버거를 너무 많이 넣으면 프로그램을 종료하고 다시 시작해야 하는데, 시간이 꽤 걸립니다.
Eclipse의 drop to frame 명령을 사용하여 위에서 현재 메서드를 다시 입력할 수 있습니다.그러나 발생한 상태 변경을 롤아웃하지 않으므로 현재 사용 중인 방법에 따라 작동하지 않을 수 있습니다.
시간이 지남에 따라 한 발짝 뒤로 물러설 수 있는 또 다른 멋진 도구는 전지적 디버거입니다.클래스 로더에 로드된 클래스를 계측하여 코드가 수행하는 모든 작업을 기록할 수 있습니다.이 필드는 "언제, 어디서, 왜 이 필드에 현재 값이 할당되었습니까?"와 같은 매우 멋진 작업을 수행할 수 있습니다.UI는 다소 투박하고 큰 코드 베이스를 처리하는 데 어려움을 겪을 수 있지만, 어떤 경우에는 정말로 많은 시간을 절약할 수 있습니다.
업데이트: Chronon은 "DVR for Java"라고 설명하는 상용 제품을 제공합니다. 이 제품은 ODB와 많은 동일한 기능을 수행하는 것으로 보입니다.
앞의 답변에서 언급한 것 이상입니다.스택 프레임의 초기 디버깅을 다시 시작하는(글로벌/정적 데이터는 되돌리지 않음) 디버그 뷰의 Eclipse의 프레임 기능과 약간 원시적이고 진화가 많지 않은 Omniscient 디버거 - (실행) 시간에 "돌아가기" 위해 사용할 수 있는 몇 가지 Eclipse 기반 도구가 있습니다.
- JIVE: Java 대화형 시각화 환경
- 크로논: 자바 프로그램을 위한 "비행 데이터 레코더".
- 잠수부(단종):역엔지니어링을 위한 동적 대화형 뷰
- Halik: 현재 IntelliJ 전용이지만, Eclipse로의 이식은 로드맵에 언급되어 있습니다.
JIVE는 프로그램 상태를 기록하는 기능으로 Eclipse Java 디버거를 확장합니다.JIVE 관점은 프로그램이 실행되는 동안 업데이트되는 몇 가지 유용한 UML 다이어그램을 제공합니다.이러한 다이어그램은 응용 프로그램 상태(객체 다이어그램) 및 스택 추적(시퀀스 다이어그램)에 대한 개요를 제공합니다.기억된 트레이스를 쿼리하고 시간에 따라 앞뒤로 이동하여 해당 다이어그램을 볼 수 있습니다.
Diver는 메서드 호출만 기록하고 JIVE와 같은 프로그램 상태는 기록하지 않습니다.모든 메서드 호출 이벤트는 나중에 검색 및 분석할 수 있도록 저장됩니다.주로 필터를 지정하기 위해 Java 실행 및 디버그 구성을 확장합니다.추적은 런타임에 일시 중지/재개/필터링할 수 있습니다.다이버 관점이 기록되면 대화형 시퀀스 다이어그램으로 표시할 수 있습니다.
JIVE와 Diver는 학술 연구에서 발행된 오픈 소스 프로젝트입니다.2012년 11월 현재 두 프로젝트가 모두 활성화되어 있습니다.
크로논은 상업적인 제품이지만, 그들은 학생들과 오픈 소스 프로젝트를 위한 무료 라이선스를 가지고 있습니다.그들의 웹사이트에서 주장되고 있는 것을 보면, 그것은 아마도 가장 포괄적인 기록기일 것입니다. 기록된 역사를 재생할 수 있고, 그들이 말하는 것처럼 시간 여행 디버깅을 할 수 있기 때문입니다.또한 이클립스는 녹화에 필요하지 않습니다.
이 플러그인들은 모두 자원에 욕심이 많기 때문에 좋은 스펙 머신을 가지고 필터 기능을 사용하는 것이 가장 좋습니다.eclipse.ini에서 힙 공간을 확장해야 성공적으로 실행할 수 있습니다.
저의 경우, 저는 JIVE와 Diver를 사용하여 XML 구문 분석 프로그램을 디버깅하려고 했지만 리소스 부족으로 인해 항상 Eclipse를 동결했습니다.다이버는 Linux 64비트에서 실행하기 어려울 수 있으며, 이러한 팁을 사용하여 우분투 32비트 및 기타 32비트 디스트리뷰터에서 작동할 수 있습니다.Diver는 Windows에서 작동하지만 Windows 64비트 + 64비트 JVM에서는 더 잘 작동합니다. 그렇지 않으면 32비트 창에서 최대 1.3-1.6Gb의 힙 공간으로 제한됩니다.JIVE는 제 리눅스 64비트에서 잘 작동하고 다른 플랫폼에서도 잘 작동하는 것 같습니다.
예, Eclipse CDT는 기록 디버거 기능을 지원합니다.
시작 시 디버그 구성 -> 디버거 -> 역디버깅 활성화.
은 이당누를수있것는신것있을 누를 수 .shift+F5
또는shift+F6
와 같이 한 발짝 뒤로F5
또는F6
앞으로 나아가기 위해
저는 편견이 있지만, 크로논은 당신이 원하는 것을 정확히 해줍니다.
메서드가 힙에서 변경한 내용이 있으면 되돌릴 수 없기 때문에 프레임으로 드롭은 정확히 뒤로 물러서지 않습니다.
저도 일식에서 이 기능을 찾고 있었습니다.비주얼 스튜디오도 그럴 수 있다는 걸 알고 있습니다.실제로 현재 선 표시기를 끌어서 코드의 아무 곳에나 놓을 수 있습니다.변수에 대한 변경을 취소할 수 있을지 잘 모르겠습니다.하지만 그것은 그래도 여전히 매우 유용하고 많은 시간을 절약합니다.저는 일식에서 이것을 매우 오랫동안 기다려왔습니다.
이 질문에는 이클립스 언어가 명시되어 있지 않으며 대부분의 답변은 Java로 가정합니다.
GDB 디버거와 함께 C++ 및 GCC를 사용하는 경우 이클립스는Run->Move to Line
Visual Studio Set Next 문과 같은 기능을 수행합니다.이 경우 Eclipse는 GDB에 있는 기능을 사용합니다.
자바를 사용하는 경우, 다른 답변에서 플러그인을 제안했지만 이클립스나 넷빈스를 사용하는 방법을 알지 못합니다.Eclipse에는 내 버전(Juno SR1)의 Java에서 작동하는 "프레임에 드롭" 명령이 있습니다.디버깅 모드에서 함수 내에서 코드를 수정하고 저장하면 실행 줄이 현재 함수의 맨 위로 자동으로 이동하여 계속할 수 있습니다.라인을 지정하는 것과 같지는 않지만, 중요합니다.
언급URL : https://stackoverflow.com/questions/4331336/how-to-step-back-in-eclipse-debugger
'programing' 카테고리의 다른 글
JavaScript가 배열에 있습니다. (0) | 2023.05.27 |
---|---|
그래프비즈:.dot에서 그래프로 이동하는 방법은? (0) | 2023.05.27 |
MongoDB + Neo4J vs OrientDB vs ArangoDB (0) | 2023.05.27 |
콘솔에 대한 vbscript 출력 (0) | 2023.05.22 |
정기 작업 실행 (0) | 2023.05.22 |