Eclipse在调试时跳过行

Naz*_*kin 4 java eclipse debugging android

我是java和eclipse的新手,我一直在尝试在设备上调试Android应用程序.这是一个带有jar文件引用的小项目.我读了类似的问题,但他们没有帮助.

我需要的是能够调试jar文件的源代码,所以我附上了源代码(我使用反编译器获得),我能够进入库的源代码,所以我认为我做得正确.但我无法成功调试这些源代码; 在调试模式下,它会跳过断点(只有源文件中附加到jar文件中的断点),当我尝试"进入代码"时,它会转到随机行,在调试时跳过行.

我使用的是最新版本的eclipse,android sdk和jdk.我不知道是什么导致了这个问题,我想知道.

在此先感谢,我希望我能够充分解释.

bob*_*bel 7

问题是,您无法反编译类文件以进行调试.因为反编译文件的行与原始Java源代码行不同(想象一下:真正的源代码有一些注释和其他不会编译成类文件的东西)!

因此,如果Eclipse向您显示当前的调试行42,那么它只会告诉您,调试器将向您42th显示类文件中的代码行.这与您反编译的java源文件不匹配.

但是,您可以使用选项添加行号作为注释来反编译类文件.注释中的这些行号可以与实际的堆栈跟踪行号进行比较.这可以帮助您想象一下这个问题.

编辑:正如Laurent B推荐的那样,您将能够使用JD-Eclipse重新调整代码,请参阅:http://mchr3k.github.io/jdeclipse-realign/

评论+1!:)

edit2:如果使用标志-g:none编译类文件,您将无法使用行号进行反编译:

-g:none
不生成任何调试信息.

因此,如果是这种情况:尝试找到jar文件的原始源代码!

  • +1添加行号作为评论,我今天学到了很多东西.见http://mchr3k.github.io/jdeclipse-realign/ (2认同)