当前位置: 首页 > 面试题库 >

为Apache ANT启用Javac调试

燕宏胜
2023-03-14
问题内容

只是一个简单的问题。对于ANT构建,如果我debuglevel完全省略该参数,它将使用所有调试信息进行编译吗?还是将其包含debuglevel="lines,vars,source"在javac任务中会更好?我想启用最大程度的调试。这是一个片段:

<javac srcdir="${dir.source}"
     destdir="${dir.classes}"
     deprecation="${javac.deprecation}"
     debug="${veracode.release.mode}"
     debuglevel="lines,vars,source" <-- should I leave this line out? -->
     optimize="${javac.optimize}">

问题答案:

简短的回答:是的,你可以离开debuglevel属性了,只要你设置debug属性true

javac Ant task文档中:

调试

指示是否应使用调试信息编译源;默认为关闭。如果设置为off,则-g:none将在支持该功能的编译器的命令行上传递(对于其他编译器,将不使用命令行参数)。如果设置为true,则debuglevel属性的值确定命令行参数。

debugLevel

要附加到-g命令行开关的关键字列表。所有这些实现都将被忽略,除了Modern,Classic(ver> =
1.2)和jikes之外。合法值是无或以下关键字的逗号分隔列表:行,变量和源。
如果未指定debuglevel,则默认情况下,-g将不添加任何内容。
如果未打开调试,此属性将被忽略。

因此,设置debugtrue和忽略debugLevel与传递标志-g(不附加任何选项)相同。根据javac文档,传递-g没有附加任何内容的标志等效于指定源,行和var。



 类似资料:
  • 我使用的是Couchbase SDK和Spring boot 2.6.x版本。我使用的是spring spring-data-couch base:jar:4 . 4 . 0,它又有com . couch base . client:Java-client:jar:3 . 3 . 0依赖项。问题是,当尝试执行cluster.query()方法时,我需要查看正在执行什么查询。我需要启用调试日志。然而

  • 问题内容: javac 的(局部变量调试信息)选项究竟提供了什么作为输出。 做一些测试,没有附加信息(例如-g:source,lines和-g:source,lines,vars之间没有区别。 请问有人举了这些局部变量调试信息的例子吗? 问题答案: 从javadocs: -g生成所有调试信息,包括局部变量。默认情况下,仅生成行号和源文件信息。 这在编译时不会产生可见的输出,但是会在运行时用于调试。

  • 这是我的bash脚本(“compile_java.sh”): 这就是我尝试调用bash脚本(我使用Ubuntu): 这就是“错误”信息: 谁能给我一个提示吗?

  • 从一些有经验的java程序员那里,我想问一下使用 和

  • 问题内容: 我正在尝试在中指定JDK的另一个版本maven-compiler-plugin。当-target和-source参数设置为1.5时,一切正常。但是,当我尝试使用1.6 JDK时,maven报告了一个错误。有人遇到过这个问题吗? 错误: 执行Javac失败,但无法解析错误:javac:无效标志:-s用法:javac,可能的选项包括:-g生成所有调试信息-g:none不生成调试信息 谢谢。

  • 我试图在< code > maven-compiler-plugin 中指定另一个版本的JDK。当< code>-target和< code>-source参数设置为1.5时,一切正常。但是当我尝试使用1.6版JDK时,maven报告了一个错误。有人面临过这个问题吗? 错误: 执行 javac 失败,但无法解析错误: javac: 无效标志: -s 用法: javac(如果可能)选项包括: -g