这是来自正在运行的JVM的jstack输出
"FooThread" prio=10 tid=0x00007f159c2ca000 nid=0x6e21 waiting on condition ..snipped
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at com.myco.impl.QueueFooThread.run(Unknown Source)
我希望QueueFooThread中的行号显示为Catalina流程的此框架
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1548)
在编译/引导期间我应该怎么做才能启用此功能?感谢
答案 0 :(得分:3)
这可能不是一个完整的答案,但将-g
(调试)选项传递给javac
可使调试器(jdb
)显示源信息,包括行号。我不确定它是否适合您的情况。
答案 1 :(得分:1)
使用调试选项编译源代码。 E.g。
<javac target="1.5" source="1.5" classpathref="class.path" srcdir="${src}" destdir="${build}" debug="true" encoding="UTF-8"/>
答案 2 :(得分:0)
编译代码时需要启用调试。 注意:对于库,它们必须在编译时启用调试。
答案 3 :(得分:0)
使用调试信息进行编译当然是最好的。但如果它不是你的来源,你总是可以用像jad这样的东西进行反编译。这对行号没有帮助,但是如果你做了一些有根据的猜测,那么它仍然可以用在紧要关头。