V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
caiji11
V2EX  ›  Java

Java 如何获取方法中的变量

  •  
  •   caiji11 · 2020-11-06 21:02:27 +08:00 · 2234 次点击
    这是一个创建于 1271 天前的主题,其中的信息可能已经有所发展或是发生改变。

    反射获获取不到方法中的变量 但是 debug 时 是如何做到实时获取每个变量的值呢

    11 条回复    2020-11-07 09:15:47 +08:00
    luckyrayyy
        1
    luckyrayyy  
       2020-11-06 21:06:23 +08:00 via iPhone
    栈帧里存的? jdk 是不是有接口啊
    boris93
        2
    boris93  
       2020-11-06 21:06:24 +08:00 via Android   ❤️ 1
    调用栈里面有啊
    pursuer
        4
    pursuer  
       2020-11-06 21:26:25 +08:00   ❤️ 1
    debug 时用的是 jdwp
    Cbdy
        5
    Cbdy  
       2020-11-06 21:35:00 +08:00
    可以用 proxy 拦截方法调用
    caiji11
        6
    caiji11  
    OP
       2020-11-06 22:38:06 +08:00
    @pursuer 感谢 你是怎么连接到 jdwp 呢 我搜很多 没找到它
    caiji11
        7
    caiji11  
    OP
       2020-11-06 22:40:13 +08:00
    @pursuer 感谢 你是怎么找到 jdwp 的呢 我搜很多 没找到它
    JasonLaw
        8
    JasonLaw  
       2020-11-06 22:46:53 +08:00
    @caiji11 #6 https://spring.io/guides/gs/spring-boot-docker/ 里面的“Debugging the Application in a Docker Container
    ”或许对你有用。
    pursuer
        9
    pursuer  
       2020-11-06 22:51:00 +08:00
    @caiji11 我之前在 Github 上找到一个叫 miniJVM 的 JVM 实现,作者表示实现了 jdwp,那个时候了解了下。一般 jdwp 只用于调试,虽然没测试过,不过直觉上觉得会影响性能,细节的东西没怎么了解过。
    caiji11
        10
    caiji11  
    OP
       2020-11-06 23:05:47 +08:00
    @pursuer 不错的项目
    caiji11
        11
    caiji11  
    OP
       2020-11-07 09:15:47 +08:00
    @boris93 试了一下 StackTraceElement 中没有变量的信息
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   876 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 21:01 · PVG 05:01 · LAX 14:01 · JFK 17:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.