小程序开发者工具卡在paused in Debugger,到底怎
上周去业主家复尺,主卧飘窗刚拆完保护膜,女主人指着窗扇说:「孩子老爱扒这儿看楼下,我总怕锁不住。」她老公在旁边举着手机补了一句:「你帮我看看这个,小程序开发者工具:paused in Debugger,我点继续也点不动,窗户的事先放放,这玩意儿卡一上午了。」 小程序开发者工具:paused in Debugger这类问题,现场见过不少。我说你先别点继续,你越点它越停。他愣住:「啊?不点继续点啥?」 具体来说,有人问,这paused in Debugger是不是我代码写崩了。我说多数时候不是崩,是调试器在某个断点上等你。你打开微信开发者工具,左边那一排图标里有个像小虫子的,点开,看断点列表。最常见的是你手滑在某一行的行号上点了一下,行号旁边多了个红点,程序跑到那儿就站住,等你发话。还有一种,是你开了“异常时暂停”,代码里某个请求报错,它自动给你按了暂停,这时候你点继续,它下一秒又撞上同一个错,又停。这步不能省。这就意味着你觉得它卡死,其实它每次都在同一个坑里等你。 他又问,那我怎么知道是哪种。我说你看调试器面板上那行灰字,如果是「Paused on breakpoint」,就是断点。这点直接影响结果。如果是「Paused on exception」,就是异常暂停。前者去断点列表把红点全勾掉,或者右键选“移除所有断点”。后者去设置里把“异常时暂停”关掉,或者干脆在Console里看红色报错,把那个错处理了再跑。别小看这一步,很多人就是在这儿来回点继续,点了一下午。 从实际操作来看,有人追问,那要是断点也清了、异常也关了,它还是paused in Debugger呢。我说这种情况我遇到过,多半是你用了真机调试,手机和电脑的连接断了,工具以为你还在调试,其实对面早没了。你把真机调试关掉,重新扫码。还有一个坑,行业里不太爱提:有些第三方插件或者你引的npm包,它自己带debugger语句,你代码里没有,它藏在依赖里。你搜自己的文件搜不到,得在调试器里看调用栈,一层层往上翻,才能找到那句不是你写的debugger。这就是个妥协点,你没法保证别人写的包干净,只能自己学会看调用栈。 对比一下,有人习惯直接关掉整个开发者工具再重开,觉得这样最省事。我说重开确实能跑起来,但你没找到原因,下次它还在。就像窗户锁不住,你拿胶带粘一下也能关,可孩子一扒还是开。你不如花两分钟看清楚是断点还是异常,把根儿上的事处理了。 换个角度看,结尾给你个具体动作。你现在把开发者工具切到调试器面板,看那行灰字写的什么。如果是断点,去左边断点列表点两下红点。如果是异常,去Console看领先条红色报错。看完还卡,就把调用栈最上面那几行截图发我。至于窗户,你让师傅把锁点调到窗扇中横位置,别装在角上,孩子够不着,也扒不开。 搞小程序开发者工具:paused in Debugger这事儿说难不难,但细节确实多。把上面几点做到位,大部分常见问题基本能避开。剩下的就是实际操作中慢慢摸索了。扫一扫关注微信公众帐号