被一个BUG折磨了3个小时。我知道引起这个BUG的原因,是因为项目中某些配置文件中配置的程序包引用路径出错了,要解决这个问题很简单,只需要将这些配置文件中错误的程序包引用路径找出来并修改之就可以了。
我使用vscode的文件内容搜索功能来做这件事情,我用vscode打开整个项目,执行关键字搜索, 并将找到的错误程序包引用路径替换成正确的路径,本以为问题就这么轻松的解决了,可程序依然报错。
我开始怀疑这些错误的配置文件并不是都在我的项目之中,而是分布在电脑的其它位置,JB系列的IDE配置文件,你懂的。
我将处于C盘中的intellij idea的配置文件找出来分析查找匹配,并修改了部分嫌疑路径,然而问题依旧存在。
这很令人沮丧,我想尽了所有我想得到的办法,花了很多时间,可就是没有把记录着错误路径的配置文件找出来,我确定它们就在我电脑的某个角落里,可就是找不到它们。
我一遍又一遍的执行vscode的搜索功能,其中夹杂着肉眼的搜索,当时已不抱任何希望,这像是某种垂死的挣扎,明知没有希望,可就是不想放弃。
不经意间,我发现某个文件中有几个字母有点眼熟,仔细一看,这不正是我拼命想揪出来的那些路径中的关键字吗。我不敢相信,这很奇怪,为什么vscode这么牛逼的工具搜索不出来的内容,我肉眼却能看的到呢,除非vscode有BUG。
为了确认我的推测,我再次使用了vscode的搜索功能,依旧没搜出任何结果,我再三确认那个我肉眼发现的问题文件在vscode的搜索范围之内,那么,vscode真的有问题,我第一次发现编译器级别的工具有BUG,这在我年程序生涯绝无仅有,具有里程碑的意义。
为什么文件命名在搜索范围之内,并且文件内容也符合搜索条件,但是文件就是没有被匹配出来呢,可能项目中文件太多,目录太深,vscode偷懒了吧。我将搜索的目录范围缩小,只让vscode搜索问题文件相对集中的目录,几十个结果刷的就出来了。所以,vscode的这个搜索BUG的表面症状是当目录中文件过多时它会忽略掉某些文件。
找到这些有问题的配置文件,并执行批量替换,问题如我所预测的解决了。本来这个问题两个多小时之前就应该解决的,或者说这其实根本就不是个问题,然而某些意外来的出人意料,谁曾想到连vscode这种牛逼上天的工具都能出问题。
记得以前程序员行业中里流行着一个定律:当发现程序有问题时,先找自己的原因,别去怀疑编译器或者操作系统等工具,它们出问题的几率很低。
今天我遇到的这个问题算得上是在某种程度上违反了这个定律了吧。
另外,关于这个问题,我已提交至vscode的github上,然后写了这篇文章,把这件时间记录下来。