簡體   English   中英

Java訪問本地變量名稱

[英]Java Access to Local Variable Names

我正在編寫一個程序,我想在程序執行期間訪問局部變量的變量名,並在外部傳遞它們。 我知道Java會在編譯期間轉儲本地變量名,除非在調試模式下編譯。

看了一下之后,似乎JDI / JPDA就是這種工作的方式。 假設ref引用了ThreadReference ,以下是我到目前為止的內容:

ref.suspend();
StackFrame currentFrame = ref.frame(0);
List<LocalVariable> vars = currentFrame.visibleVariables();
ref.resume();

兩個問題:

  1. 我是在正確的軌道上,還是有更好的方法來做到這一點?
  2. 如何獲取ThreadReference以設置為ref LocatableEvent似乎是我需要的,但任何人都可以提供一個如何使用它的例子嗎?

提前謝謝了!

很多人都沒有這方面的經驗。

到別處尋找答案。 我有代碼的鏈接,但他們不再。 無法刪除此答案,因為它已被接受答案。

是的,你走在正確的軌道上!

對於任何想要嘗試開始使用JDI的人來說,“跟蹤”示例非常寶貴:

http://www.docjar.com/docs/api/com/sun/tools/example/trace/package-index.html

它是一個可用的骨干。 它向您展示了如何使用事件,這確實會給您一個ThreadReference。 它還向您展示了如何以編程方式啟動第二個JVM。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM