两天解决了两个问题,问题少,但还是蛮开心。不以短期为成败,看两年后的我。
第一个就是当我断点到这个类sun.nio.cs.StreamDecoder的时候发现,jdk1.6所带的src.zip源码里面没有,然后我花了一些时间去网上找了一个jdk1.7的源码,下载完之后发现里面有我想要的源码,非常高兴,立刻attachment:
引用完了之后我发现任何的断点都进入不了,顿时傻眼,然后就是无限的纠结.....
谷歌、百度、360、搜狗 + 中英 各种搜索,我再想是不是问题太简单了,基本没啥人说的很清楚。后来忍不住用我蹩脚的英语去Stack Overflow提问题,有两哥们回答,一个说我问的不清楚。。。。,还有个问我是什么版,在哪里下的,这还真是给我指引,我想是不是我要弄个1.7的jdk呢,我立刻跑去官网下载1.7的jdk,终于搞定 :)
第二个问题紧接着就来了,断点进去之后发现里面的很多临时变量根本都看不了,我靠,我这忙活了这么久就给我带来这个结果。。 我本来是看java是如何读文件的,结果到现在我都快忘记我一开始的初衷,但心又不甘,继续看搜索吧。。。
这个帖子让我明白了,原来是java的有些源代码在编译的时候可能就没有对这种局部变量进行调试级别的编译,然后看下javac -g的解释:
-g 生成所有的调试信息,包括局部变量。缺省情况下,只生成行号和源文件信息。
然后我找出sun.nio.cs.StreamDecoder源文件,编译完成之后,放入rt.jar包里面,局部变量出来了, 哇哈哈哈