开发者

Use a jar with source as source for jdb?

I have a executable jar with source compiled in and I want to debug it using jdb (no other debugger a开发者_开发问答vailable in this environment unfortunately).

I am able to debug it with

jdb -classpath "${JAR_FILE}:${CLASS_PATH}" ${MAIN_CLASS} ${ARGS}

How can I get jdb to use the source that is built into the jar file?

Notes: Java 6, AIX, ksh


If jdb is ignoring *.jar and *.zip entries for sourcepath, maybe you can whip up a batchfile to expand the source from the target jar into a temp directory and point sourcepath to that.

Something like this

MYDEBUGDIR=/temp/source/mydebug
jar -xf target.jar -C $MYDEBUGDIR
jdb -sourcepath ${MYDEBUGDIR} -classpath "${JAR_FILE}:${CLASS_PATH}" ${MAIN_CLASS} ${ARGS}
rmdir -r $MYDEBUGDIR

That way the debug source is in sync with the jar and it cleans up after itself.


It may not be possible, as stated in this (very old) post on the forums.


actually I managed to debug into a jar file without source code today, the steps are as follows:

  1. unzip jar file

  2. jdb -sourcepath [unzipped source folder] -classpath [the path for your main class]

  3. after jdb initializing, excute:

stop at <package>.<yourclass>:<linenunmber>
run <your main class, for example org.springframework.boot.loader.JarLauncher>
  1. after breakpoint triggered, you can step by step debug using jdb command


Haven't tried this personally, but perhaps the sourcepath option will allow JAR files: jdb -sourcepath ${JAR_FILE} ...

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜