- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用 JDI 调试另一个正在运行的 java 应用程序。
我所做的有效:
使用 Eclipse 运行两个应用程序。调试器使用以下 VM 选项启动:
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=4000
另一个应用程序连接到端口 4000 处的套接字,并遵循正常过程(断点等)来获取局部变量的值。
工作正常并给我带来了值(value)。
我现在想做的事情:
我没有使用 Eclipse 启动两个进程,而是在 Eclipse 中启动一个进程,并且该 Process
使用 ProcessBuilder
使用以下参数启动另一个进程:
String[] args1 = {getJavaDir(),"-cp",classpath,"-Xdebug", "-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=4000", "processII.Main2"};
ProcessBuilder builder = new ProcessBuilder(args1);
builder.directory(directory);
Process process = builder.start();
进程成功启动。但是,当我尝试通过第一个进程访问它时,出现以下错误:
com.sun.jdi.connect.IllegalConnectorArgumentsException: Argument invalid
在网上查了一下,关于异常是什么的信息很少。
如果您能帮助我找出问题所在,我将不胜感激!
最佳答案
当调试 JVM 的连接器参数出现错误时,会抛出此异常。我认为您的调试参数必须一起放在同一个参数中,而不是两个单独的参数(将 -Xdebug
与 -Xrunjdwp...
放在同一个参数上),尝试使用:
String[] args1 = {getJavaDir(),"-cp",classpath,"-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=4000", "processII.Main2"};
ProcessBuilder builder = new ProcessBuilder(args1);
builder.directory(directory);
Process process = builder.start();
希望这有帮助,
关于java - JDI - IllegalConnectorArgumentsException : Argument invalid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24177068/
当我尝试在我的设备上调试时,有时会出现错误并且调试器不会在任何断点处停止。此外,该应用程序甚至无法正常启动,它只是在有点黑屏的情况下卡住,顶部有应用程序图标和名称。 错误是 Eclipse 中的弹出窗
我刚刚开始了解一些用于创建自定义调试器的 JDI。我一直在尝试将引用对象转换为真实对象,这样我就可以在不使用调用的情况下访问它们的字段或方法。我将 jar 从目标虚拟机包含到项目中,这样我就可以访问所
我正在使用 JDI 重新编码方法中的变量状态。根据教程,我没有找到如何获取 objectReference 值,例如 List、Map 或我的自定义类。它只是可以获得PrimtiveValue。 St
我正在创建一个 MethodEntryRequest,我想将此请求仅应用于两个类模式的方法,例如:- "java.*" 和 “太阳。*”。为此,我编写了以下代码。 MethodEntryRequest
我希望使用 java debug interface 构建调试器. 我的目标是设置断点并获取变量的值。 我找到了this回答接近我正在寻找的内容,我知道我必须使用以下接口(interface):- V
我已经声明并初始化了这些哈希表: Hashtable ht = new Hashtable(); ht.put("due", 2); ht.put("tre", 3); ht.put
在JDI中,有一个API可以从JPDA使用的JVM中处理的事件中排除事件。这是使用以下方法完成的: addExclusionFilter(String)排除某些模式;例如addExclusionFil
所以我正在尝试将自己投入到 JDI 中。通过首先使用 VM 命令启动被调试程序,我已经成功地将我的调试器应用程序 Hook 到我的被调试程序中: -agentlib:jdwp=transport=dt
我正在使用 JDI 来调试程序。我正在尝试更改某个对象引用中字段的值。我有 Field 对象,因为我可以通过 找到它 ObjectReference.referencetype().allFields
com.sun.jdi 是一个包,可让您获取有关正在运行的 VM 的信息、添加断点、查看堆栈帧等。 如何获取另一个实例的封闭实例?例如,下面是一些创建内部类 Garfield.Lasagna 的 4
一段时间以来,每个项目中都出现了附加的错误消息。错误发生在调试时,在调试器停止时的断点处。 Step over 和 Step into 然后不工作(一直按 step over 或 into 弹出错误消
我正在使用 JDI 调试另一个正在运行的 java 应用程序。 我所做的有效: 使用 Eclipse 运行两个应用程序。调试器使用以下 VM 选项启动: -Xdebug -Xrunjdwp:trans
我正在将我的应用程序从 JDK 7 迁移到 JDK 8。在执行过程中,我遇到了一个异常 com.sun.jdi.InvocationException occurred invoking method
我在包 com.sun.jdi 中找到了一些专为调试而设计的类,例如 VirtualMachine , 但我不能使用它,因为 Sun JDK7 中似乎不存在包。 如何使用这个包? 顺便说一句。 lib
我正在运行 Eclipse for Java。我创建了一个 XML 文件的 DOM 版本。现在我想更改文件中元素的属性。我在控制 DOM 的类中调用了一个调用方法的方法,在调试时出现了一个对话框,提示
我的代码有错误: xmldata = mContext.getResources().getStringArray(R.array.map1); for(int y = 0; y 13
我一直在编写一个使用 JDI 的 Java 客户端在远程 JVM 中创建和修改对象(通过连接到在远程 JVM 中运行的 JDWP 基于代理的服务器)。我的项目的要求之一是我无法挂起远程 JVM 中的所
我想了解如何使用 jdi 调试 java 代码,但我不知道在哪里可以获得它的源代码。是jdk里的吗?我用eclipse导入了jdk中的src.zip,但似乎没有包含jdi的信息,在哪里可以找到它? 最
我在调试时遇到了这个 eclipse 错误: org.eclipse.jdi.TimeOutException: Timeout occurred while waiting for packet 2
我正在寻找潜在的 JDI API,以便在 JVM 执行期间的任意点暂停 JVM。看着 BreakPointRequest createBreakpointRequest 方法需要一个特定的位置。是否有
我是一名优秀的程序员,十分优秀!