【问题标题】:why does Eclipse memory analyser not show InetSocketAddress string values?为什么 Eclipse 内存分析器不显示 InetSocketAddress 字符串值?
【发布时间】:2020-09-10 13:29:43
【问题描述】:

我正在使用 Eclipse 内存分析器工具分析堆转储。我正在尝试列出 SocktChannels 及其远程地址。我看不到他们的 IP 地址和端口。我使用以下 OQL:

SELECT x.toString() FROM sun.nio.ch.SocketChannelImpl x

当我在 Eclipse 中实时调试应用程序时,可以使用相同的字符串 - java.nio.channels.SocketChannel[connected local=/127.0.0.1:3033 remote=/127.0.0.1:54379] 有没有办法获取这些信息?

memory analyser screenshot

【问题讨论】:

    标签: java sockets heap-dump inetaddress eclipse-memory-analyzer


    【解决方案1】:

    内存分析器不支持所有类型的toString 方法 - 仅适用于基本类型。您必须查询确切的字段。例如:

    SELECT x.remoteAddress.holder.addr.holder.hostName.toString() + ":" + x.remoteAddress.holder.port FROM sun.nio.ch.SocketChannelImpl x 
    

    【讨论】:

    • 谢谢。但是,我根本没有看到 holder.hostname 和 holder.port。
    猜你喜欢
    • 1970-01-01
    • 2021-04-13
    • 2015-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多