현재 프로그램을 실행하는 동안 로컬 변수의 변수 이름에 액세스하여 외부에서 전달하려는 프로그램을 작성하고 있습니다. 디버그 모드로 컴파일하지 않으면 Java가 컴파일 중 로컬 변수 이름을 덤프한다는 것을 알고 있습니다.로컬 변수 이름에 자바 액세스
일부를 살펴본 후 JDI/JPDA가 이러한 종류의 작업을 수행하는 방법이라고 생각됩니다.
ref.suspend();
StackFrame currentFrame = ref.frame(0);
List<LocalVariable> vars = currentFrame.visibleVariables();
ref.resume();
두 질문 : 다음, ref
가 ThreadReference
을 의미 가정은 내가 지금까지 무엇을 가지고
- 내가하고있는 바로 트랙을, 또는이 할 수있는 더 좋은 방법은 무엇입니까?
ref
으로 설정하려면ThreadReference
을 어떻게 받습니까? LocatableEvent 내가 필요한 것처럼 보이지만 누구나 사용법에 대한 예제를 제공 할 수 있습니까?
미리 감사드립니다.
왜, 왜? 실행중인 메소드의 로컬 변수 * 이름 *을 쿼리 할 수있는 가능한 이유는 무엇입니까? –
디버깅 도구 - 추가 평가/조작을 위해 변수를 Lisp의 REPL에 전달하고 싶습니다. 사용자가 여러 변수를 전달하는 경우 REAR에서 변수 이름을 다르게 처리하거나 모든 변수의 이름을 지정해야합니다. –
가능한 [jdi로 간단한 디버거를 빌드하여 중단 점을 설정하고 변수의 값을 검색] (https://stackoverflow.com/questions/47939691/build-a-simple-debugger-with-jdi-to-set) -breakpoints-and-retrieval-the-value-of-a) –