问题标签 [jdwp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
464 浏览

java - 在 jdk 14 应用程序上启用 jdwp 导致协议错误不支持地址系列

对于在 linux 上运行的 JDK 14 应用程序,添加以下 JVM 参数

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005

导致以下错误

将地址从更改*:5005localhost:5005似乎可行,但它只绑定到本地主机。我知道一个适用*:5005于 JDK 12 的事实,但我找不到关于此的任何更改,事实上 JPDA 规范仍然提到了*jse 14 https://docs.oracle.com/en/java/javase/14/的选项docs/specs/jpda/conninv.html。有人知道我可以调查什么吗?它是我似乎无法找到文档的错误还是功能。

0 投票
1 回答
383 浏览

java - 如何检查是否有人连接到调试端口,或正在积极调试

我们有一个 Tomcat7 Java 11 应用程序,一些开发人员在该应用程序上并行工作。这在 DEV 稳定性中暴露了一些调试端口。有时,用户可能会连接到调试端口并最终忘记关闭连接,并使连接保持打开状态,一些活动的调试点导致应用程序暂停所有涉及该流程的处理。

我想知道以下选项是否可行:

  • 使用 JMX 甚至可以在 Tomcat 上轻松公开的自定义 Java 代码来检查是否有人正在积极调试(要明确,我不是说是否启用了调试选项,而是是否有人实际连接到该端口)
  • 获取用户的用户名或一些标识。也许是发起连接请求的机器?
  • 一段时间后自动关闭调试连接?
0 投票
1 回答
191 浏览

java - Is it possible to start java jdwp after JVM startup (aka: at runtime) without command line parameters?

I would like to enable debugging at some point on the current JVM without adding the command line parameters -agentlib:jdwp.

Is it possible to do so programmatically from within the current running JVM ? Without any third party libraries ?

Other command line parameters (such as -Djdk.attach.allowAttachSelf=true) can be considered.

causes :

0 投票
0 回答
349 浏览

android - Google Play 上的 Flutter 发布 apk 失败并显示“由于进程无法加载 jdwp 代理,因此未启动调试器”

找遍了整个互联网,没有找到解决方案。

所以,问题是:flutter 应用程序在 Android 上调试期间完美运行。一旦发布到 App Store 就会出现黑屏。我设法找到错误的日志消息:-'没有启动调试器,因为进程无法加载 jdwp 代理'。

有任何想法吗 ?

0 投票
1 回答
32 浏览

intellij-idea - 如何通过 jvmti 从远程调试器接收断点事件?

共享虚拟机中有一个jvm。其他开发者可能通过idea远程调试,导致断点挂机。

出于某种原因,我需要继续这个过程。

我用 jvmti 编写了一个代理程序,试图接收断点事件以清除它们。但是没有收到任何事件。

接收设置断点事件的正确方法是什么?或者任何其他方式来阻止远程挂断?

提前致谢。

0 投票
0 回答
14 浏览

java - 删除生产容器镜像中的 JDWP

我正在努力改进我们的生产环境,并偶然发现了一个有趣的情况。

我们将微服务打包到容器中,并有几种不同的部署环境——主干(用于开发)、集成(用于测试和验证)和生产。

最近,我一直在努力精简我们的容器,转向 alpine 基础镜像,并努力使我们所有服务的内容更加一致。我们已经开始做的一件事是使用仅包含运行应用程序代码所需的模块的定制 JRE。

在使用 JLink 构建要包含在基本映像中的 JRE 时,我将其配置为不包含该jdk.jdwp.agent模块,因为在生产中不需要它。在我的想法中(如果我在这里的想法错了,请纠正我),这减少了攻击面(通过减少生产中的东西)和图像的大小。

这里的挑战是,当我们使用这个基础镜像时,我们在开发过程中不能再在我们的主干环境中调试代码,这显然是非常有用的。

我的问题归结为以下几点:

  • 我是否过于谨慎地从基础映像中的 JRE 中删除 jdwp,并且不必要地阻碍了我们的开发团队(过早的优化?)
  • 如果这是正确的方法,我们如何解决它以使远程调试回到主干环境?我有一个单独的基本映像,其中包括具有调试支持的完整 JDK,但是如果我们将其用于主干而不是生产,我们就不会使用一致的配置进行开发/部署。这是个坏主意吗?
0 投票
0 回答
28 浏览

android - 无法建立与 Firebase 实时数据库的连接

我们正在尝试更新我们的 firebase 实时数据库,但更新失败且没有任何回调。使用我们的 android 应用程序的设备很少发生这种情况,我能够在 logcat 中发现这些设备的 firebase 连接失败。

这些日志是使用以下方法生成的: FirebaseDatabase.getInstance().setLogLevel(Logger.Level.DEBUG); 然后被写入文件。

在网上搜索这些日志,我得到了一些提示

  1. android 设备可能已植根
  2. 火力基地问题
  3. 防火墙/安全问题
  4. 网络提供商问题

但是我们无法知道相同的确切根本原因。

谁能提供一些见解或解决方案来解决这个问题?

下面附上日志。

0 投票
0 回答
20 浏览

java - 如何以编程方式检测当前 JVM 是否由远程调试器连接?

我面临的情况是当我在一个子线程中调试我的代码时,它的包装未来有一个超时,我总是在外部 future.get( timeout) 上得到一个 TimeoutException,我的想法是如果我能知道一个调试器连接好了,我可以动态放大timeoutfuture.get()的参数