2
我有一個Java程序,在某些時候最終創建一個與「schema.sql」匹配的字符串。我想在源代碼中找到這種情況。在源代碼中搜索「schema.sql」不會產生位置。相反,程序必須在運行時創建字符串。我只是不知道在哪裏。它發生在我的項目的某個庫中。我怎樣才能找到我的程序創建這個字符串的位置?運行時堆分析;什麼時候是一個匹配模式的字符串初始化
我可以在運行時以某種方式觀察堆是否與「schema.sql」匹配的字符串?我查看了像VisualVM這樣的東西,但它看起來只是分析堆轉儲,而不是堆的運行狀態。必須有辦法做到這一點;有任何想法嗎?
你爲什麼要這麼做? –
爲什麼你確定你的字符串是「schema.sql」? –
@ElliottFrisch我在我的項目上有一個庫,它在我的類路徑上執行SQL腳本,標題爲「schema.sql」。它會遵循該庫可能構造一些字符串,指定此文件的路徑。該字符串將被'「schema.sql」'匹配。事實上,我在運行時在調試時發現它,而字符串是''classpath *:schema-all.sql,classpath *:schema.sql「'。基本上,我希望有一個增強的條件斷點來分析程序中的所有字符串,而不僅僅是'x ==「foo」'。 – dgtc