当前位置: 首页 > 面试题库 >

识别Java jdwp调试器分配的(临时)端口

司徒胤
2023-03-14
问题内容

我正在使用以下JVM参数通过hostpot调试器启动JVM。

-Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=0

请注意,我将端口分配为零,以便JVM向操作系统请求临时端口。这对于我的用例至关重要,以确保JVM不会由于某些预定义端口的争用而无法启动。

结果,我的JVM启动,并且以下日志条目输出到stdout

Listening for transport dt_socket at address: XXXX

我想找到一种从JVM内部或外部标识调试端口的方法,因此我可以将其记录在状态管理服务器中。

此用例有哪些可用选项?我已经考虑了以下内容,有些不高兴:

  • JMX连接器 -使用JConsole连接到该进程,找到一些MBean,其中详细说明了使用哪个端口。但是,我找不到任何这样的MBean
  • RMI注册表 -是否可以使调试代理针对RMI注册表进行注册?我尚未找到任何可行的证据。
  • Java代理 -指定一个JVM代理,该代理可以拦截调试器的某些方面并获取端口详细信息,再次没有证据支持该想法的可行性。

问题答案:

从VM内部:

    Properties props = sun.misc.VMSupport.getAgentProperties();
    System.out.println(props.getProperty("sun.jdwp.listenerAddress"));

从外部应用程序:

    VirtualMachine vm = com.sun.tools.attach.VirtualMachine.attach(PID);
    try {
        Properties props = vm.getAgentProperties();
        System.out.println(props.getProperty("sun.jdwp.listenerAddress"));
    } finally {
        vm.detach();
    }

两者都不是标准的一部分。仅适用于OpenJDK / Oracle JDK。



 类似资料:
  • 问题内容: 我想问一下在调试过程中是否有可能以更有意义的方式识别对象。例如现在在Flex Builder调试面板中,例如: 对象(@ 12131241241) 理想情况下,我想拥有Object(@“ field1:field2”)…可以做到这一点。我相信在Java中,可以通过重写给定类的toString方法来实现…。在as3中尝试相同,但没有用 问题答案: 这里没有直接回答您的问题,但是周围有许多

  • 问题内容: 这可能是因为我累了,或者我是Postgres的新手。但是,我试图在函数中使用临时表,而postgres抱怨“关系不存在”。但是,如果我接受函数的主体并执行它,就可以正常工作。下面是我尝试创建的函数类型的示例。请记住,我已经剥离了所有有趣的内容,以至于几乎没有显示我的问题的最低限度。 我收到的投诉是关于插入声明的。实际的投诉是: postgres是否不支持函数中的临时表?还是有一些语法方

  • 当我使用Google chrome inspector查看下载的资源时,我注意到一条奇怪的警告信息(F12): 注意:显示了临时标题 我发现了一些可能相关的东西,网络面板:添加关于临时请求头的警告,但我不能完全理解它。可以在Chrome阻止请求以及无法加载XMLHttpRequest中找到相关问题。卸载的资源显示警告:显示临时标题。 与第一个问题类似,我的资源被阻止,但后来自动加载了相同的资源。与

  • 本文向大家介绍8085微处理器中的临时(临时)寄存器,包括了8085微处理器中的临时(临时)寄存器的使用技巧和注意事项,需要的朋友参考一下 临时寄存器也是8位寄存器,程序员根本无法访问。它被临时存储在8085微处理器内部,该微处理器是指令集的8位操作数。例如,当完成指令“ MVI M,34H”的提取时,指令寄存器IR寄存器将接收MVI M的操作码,而Temp寄存器将接收34H。 进行的算术和逻辑序

  • 问题内容: 我有一把吉他,我需要我的电脑能够分辨出正在演奏的音符,并识别出音调。可以在python中做到吗,也可以在pygame中做到吗?能够在pygame中做到这一点将非常有帮助。 问题答案: 要识别音频信号的频率,可以使用FFT(快速傅立叶变换)算法。据我所知,PyGame无法记录音频,也不支持FFT转换。 首先,您需要从声卡捕获原始采样数据。这种数据称为PCM(脉冲编码调制)。在Python

  • The allocation mechanisms within APR have a number of debugging modes that can be used to assist in finding memory problems. This document describes the modes available and gives instructions on activ