为什么Eclipse内存分析器不显示InetSocketAddress字符串值?

问题描述 投票:1回答:1

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

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

当我在Eclipse中实时调试应用程序时,可以使用相同的字符串-java.nio.channels.SocketChannel [已连接的本地= / 127.0.0.1:3033远程= / 127.0.0.1:54379]有没有办法获取此信息?

memory analyser screenshot

java sockets heap-dump inetaddress eclipse-memory-analyzer
1个回答
0
投票

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

SELECT x.remoteAddress.holder.addr.holder.hostName.toString() + ":" + x.remoteAddress.holder.port FROM sun.nio.ch.SocketChannelImpl x 
© www.soinside.com 2019 - 2024. All rights reserved.