어떤 시점에서 결국 "schema.sql"과 일치하는 문자열을 생성하는 Java 프로그램이 있습니다. 소스 코드에서 이것이 어디에서 일어나는지 알고 싶습니다. 소스 코드에서 "schema.sql"을 검색해도 위치가 산출되지 않습니다. 대신 프로그램은 런타임에 문자열을 작성해야합니다. 나는 단지 어디에 있는지 모른다. 내 프로젝트의 일부 라이브러리에서 발생합니다. 내 프로그램에서이 문자열을 만드는 위치를 어떻게 찾을 수 있습니까?런타임 힙 분석;
"schema.sql"과 일치하는 문자열을 런타임에 어떻게 든 볼 수 있습니까? 나는 VisualVM과 같은 것을 보았지만 힙의 실행 상태가 아닌 힙 덤프 만 분석하는 것처럼 보입니다. 이것을 할 수있는 방법이 있어야합니다. 어떤 아이디어?
1) 세션 시작 대화 상자에서 적절한 할당 기록 프로파일을 구성하여 시작시 할당 녹화를 시작합니다
왜이 작업을 수행하려고합니까? –
어째서 어딘가에 "schema.sql"문자열이 있는지 확신 할 수 있습니까? –
@ElliottFrisch "class.sql"이라는 클래스 패스에서 SQL 스크립트를 실행하는 라이브러리가 프로젝트에 있습니다. 라이브러리가이 파일의 경로를 지정하는 문자열을 구성한다고 가정합니다. 이 문자열은''schema.sql ''과 일치합니다. 사실, 디버깅하는 동안 런타임에 찾았으며 문자열은''classpath * : schema-all.sql, classpath * : schema.sql ''입니다. 기본적으로,'x == "foo"'와 같은 것뿐만 아니라 프로그램 내의 모든 문자열을 분석하는 향상된 조건부 중단 점을 원합니다. – dgtc