【问题标题】:Eclipse debug - line: not availableEclipse 调试 - 行:不可用
【发布时间】:2011-02-22 13:16:30
【问题描述】:

我似乎在谷歌上找不到任何东西告诉我为什么会这样以及解决方案是什么。我正在单步执行第三方代码(我有源代码),并且真的很想看到当前正在执行的行...

查看 javac 编译标志,我看到 -g:none 标志。如果设置了这个标志,这是否足以解释为什么我看不到行号?如果是这样,为什么有人会这样做,是否有性能影响?我是否需要自己重新编译 jar 以附加缺少的调试信息(如果可能)?

谢谢!

【问题讨论】:

    标签: java eclipse debugging


    【解决方案1】:

    查看 javac 编译标志,我看到 -g:none 标志。如果设置了这个标志,这是否足以解释为什么我看不到行号?

    是的,这就是原因。

    如果是这样,为什么有人会这样做?

    也许图书馆的作者想让他的罐子尽可能小。如果不使用-g:none 开关进行编译,性能不会有太大差异。

    【讨论】:

    • 罗杰。除了重新编译自己,我还能做些什么吗?使用此标志是否有性能提升?
    • 您唯一能做的就是自己构建 jar 并包含调试信息。
    【解决方案2】:

    我想这会影响性能,但调试信息肯定会使你的类文件变大。所以这是另一个动机。

    此外,想要保护其源代码的公司通常不会编译调试信息以降低反汇编(逆向工程)对如此积极的人的价值(这与一些公司混淆其字节码的原因相同)。

    很明显,如果您可以使用来源,那么上述观点是无关紧要的。如果代码是开源的,那么您自己编译库应该不会有太多麻烦(毕竟,每个其他贡献者都需要能够做到这一点!)。是的,这是您目前最好的选择。

    【讨论】:

    • 对,但我可能没有 RCS 访问源代码和所有汇编指令(ant 或 maven)- 只是一个源 jar。如果是这种情况,可能有必要查看项目是否有可以从中提取构建脚本的 svn 或 cvs 服务器...
    猜你喜欢
    • 2014-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多