can someone point me in the right direction
글쎄, 내가 시도해 볼게. 내가 찾은 유일한 것은 jdb
입니다. 자신 만의 "프린터"를 만들어야합니다.
당신이 필요 이상으로 호기심을 요구하고 있기 때문에, 나는 당신이 원하는대로 응용 프로그램을 만들 것이라고는 생각하지 않지만 어쩌면 당신은 다른 자원을 찾을 것입니다. 나는 어떤 것도 찾지 못했다) 또는 마침내 그 일을 쉽게 해준다.
jdb
(java 디버거)은 JDBA (Java Platform Debugger Architecture) 및 JVM TI (Java Virtual Machine Tooling Interface)를 사용하는 CLI 프로그램입니다.
- 당신은
-g
옵션 (필수되지 않음)하여 코드를 컴파일, jdb
(보다는 java
)와 메인 클래스를 시작 이
는 jdb
작품 방법이다.
- 당신은 콘솔에서
step
명령을 사용하여 코드의 스텝 실행에 의해 단계를 할 수 있지만, 여러 바이트 코드 지침 (소스 코드의 명령에 대응하는 모든 것들)
- 당신은
stepi
하는 경우에만이 실행을 사용할 수를 실행할 수 있습니다 하나의 바이트 코드 행.
- 단계별 실행을 수행하려면 중단 점을 설정해야하며
cont
옵션은 IDE 에서처럼 다음 중단 점으로 이동합니다.
list
옵션을 사용하면 중단 점/줄 주위의 코드 (바이트 코드 제외)를 볼 수 있습니다.
- 또한 현재 줄 번호를 소스 파일과 바이트 코드로 얻을 수 있습니다 (
wherei
으로 생각합니다).
다른 도구는 읽을 수있는 바이트 코드를 얻기 위해 javap -c
입니다 (그러나 나는 이미 이것을 알고 있었다고 생각합니다).
이제이 모든 것들을 통해 내가 어디로 갈지 알 것입니다. jdb
을 사용하여 단계별 바이트 코드 실행을 수행하는 응용 프로그램 (java 응용 프로그램 또는 일부 셸/dos)을 만들고 바이트 코드의 일치하는 행을 javac -p
에서 선택하여 인쇄합니다. 다중 스레드 환경에서 어떻게해야하는지 모르겠습니다. ASM이나 dirtyJOE와 같은 바이트 코드 시각화 도구도 있지만 바이트 코드 디버깅 옵션을 제공하지는 않습니다.
저는 JVM TI가 IDE의 디버거에서 사용되며 jdb보다 더 빠르고 강력 할 수 있다고 생각합니다.당신에게 관심을 가질만한
일부 링크 :
, 나는 방법도 자바 debuging에 호기심이었다 (그리고 다른 것들) 일 했어, 그래서 이것은 다소 흥미로웠다. ng.
: 실시간으로 실행되는 바이트 코드 (파일 또는 콘솔) 인쇄 할? – Asoub
실시간 일 필요는 없지만 그래. 그게 바로 – user1228633
fastdebug 빌드를 목표로하는 것이 아니라 더 이상 게시되지 않지만 원하는 경우 직접 만들 수 있도록 소스 코드가 열려 있습니다. JDK9의 루트 저장소는 http://hg.openjdk.java.net/jdk9/jdk9/입니다. [이 readme] (http://hg.openjdk.java.net/jdk9/jdk9/raw-file/f2bdff2bd261/README-builds.html)는 시작하기 좋은 곳입니다. –