【问题标题】:eclipse remote debuggingeclipse远程调试
【发布时间】:2010-01-20 20:43:35
【问题描述】:

我向 Eclipse 添加了一个 Java 项目,并从命令行运行它。由于它是预先构建的,我没有构建它。项目 OfBiz 已启用远程调试。我需要在 Eclipse 中编译项目,然后才能远程调试它吗?

【问题讨论】:

    标签: java eclipse remote-debugging


    【解决方案1】:

    不,您不需要重新编译,但您必须使用以下选项启动应用程序:

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

    这里的1044端口当然可以改。 如果您的应用程序正在运行,请打开调试对话框并使用“远程 Java 应用程序”/新建将 eclipse 调试器附加到应用程序的 JVM

    编辑:我忘了提到这要求预编译的应用程序是从外部启动的。如果你不想从 Eclipse 内部启动它,你必须重新编译,否则 Eclipse 找不到要执行的“主”类。

    【讨论】:

    • 如果代码已经在优化'on'和行号'off'的情况下编译,如果附上源代码,单步执行代码可能看起来很奇怪。 Eclipse 会计算包括 cmets 等在内的行数,而调试器会按优化后的原样报告行号。
    • 好反对,如果是这样,那么他将不得不重新编译。我想知道如果我进入运行时库为什么没有发生这种情况,它们没有优化吗?
    • 调试信息与行号是分开的。这些库经过优化,但仅出于此目的而保留了行号。