【问题标题】:Not a debuggee or not listening for a debugger to attach不是被调试者或没有监听调试器附加
【发布时间】:2015-03-04 22:25:17
【问题描述】:

我想将调试器附加到一个名为 Mamute 的 github 项目。 run.sh 连接应用程序。 cat run.shreads:

#!/bin/bash

SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

MAMUTE_DIR=$SCRIPT_DIR

TIMESTAMP=BUILD_TIMESTAMP

WEB_INF=${SCRIPT_DIR}/WEB-INF

java -cp ${WEB_INF}/classes/:${WEB_INF}/lib/* \
    -Ddeploy.timestamp=$TIMESTAMP \
    -Dvraptor.webappdir=${MAMUTE_DIR} \
    ${MAMUTE_OPTS} \
    br.com.caelum.vraptor.server.Main \
    not-grunt

我不知道“java -cp XXX”是什么意思。我知道这是一个 Web 应用程序,所以我尝试附加到 PID,就像我使用 Visual Studio 在 Windows 中调试某些东西一样。

使用“gksu /usr/bin/netbeans”启动 netbeans 后,我转到顶部菜单 > 调试器 > 附加调试器 >

  • Java 调试器 (JPDA)
  • 进程附加(按 pid)
  • 交通 = 本地
  • PID = XXXX(运行“lsof -i :8080”得到XXXX)

单击附加。错误:

不是被调试者或没有监听调试器附加。

我正在运行 Debian。

【问题讨论】:

标签: java debugging netbeans debian


【解决方案1】:

在这里你可以在调试模式下运行mamut,在run.sh的java命令中添加以下选项

-Xdebug -Xrunjdwp:transport=dt_socket,address=1000,server=y,suspend=n

然后您必须在 netbeans 中选择 dt_socket 传输选项附加调试器。

请注意,如果suspend 为'n',应用程序将立即启动并且不会等待调试器附加到它。如果为“y”,则应用程序将暂停,直到您附加到它为止。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-10
    • 1970-01-01
    相关资源
    最近更新 更多