【发布时间】:2012-09-26 21:24:37
【问题描述】:
我正在为我的 Java 项目编写 GDB 包装器。有没有办法确定 GDB 中的目标应用程序何时等待用户输入?
【问题讨论】:
-
也许我很密集,但由于这是针对您的 Java 项目,是否应该将其标记为 that 而不是 C?
-
Dennis Meng,我添加了 java 标签。
我正在为我的 Java 项目编写 GDB 包装器。有没有办法确定 GDB 中的目标应用程序何时等待用户输入?
【问题讨论】:
基本上,您需要将标准 I/O 重定向到 POSIX 系统下的伪终端。我将在下面概述如何做到这一点。
编写一个单独的独立“启动器”程序:
在您的 Java 控制程序中:
然后您可以检测到正在调试的程序正在等待用户输入,例如将pty文件描述符的master端转换为NIO Channel,设置为非阻塞模式和monitor the master pty for writing with a Selector。
您需要单独的代码路径来支持 Microsoft Windows。
【讨论】: