有時(shí)候,面對(duì)一個(gè)bug,左思右想就是無法理解為什么。 我就有過這樣的經(jīng)歷,耗時(shí)整個(gè)一個(gè)晚上,后來還是放棄了。不得不在所有可能的點(diǎn)都加上日志,部署等待再次報(bào)錯(cuò),真的很讓人抓狂!
而實(shí)際上,解決一個(gè)bug的關(guān)鍵就是復(fù)現(xiàn)(reproduce),真正解決bug也許就是改動(dòng)一兩個(gè)字符的事情。
因此,如果能夠知道出錯(cuò)函數(shù)被調(diào)用的時(shí)候的參數(shù)值,以及整個(gè)函數(shù)調(diào)用鏈條,那么對(duì)于復(fù)現(xiàn)和理解這個(gè)bug,就相當(dāng)有用了。 今天,給大家安利一個(gè)很不錯(cuò)的Fundebug小程序bug監(jiān)控插件,它可以監(jiān)控函數(shù)的調(diào)用以及記錄函數(shù)參數(shù)值。
Fundebug提供網(wǎng)站、微信小程序和小游戲的bug監(jiān)控服務(wù)。我看了一下,前端監(jiān)控和游戲監(jiān)控做得也不錯(cuò),有機(jī)會(huì)可以試用一下。 微信小程序插件的接入和接入百度統(tǒng)計(jì)一樣簡(jiǎn)單,在此我就不費(fèi)口舌了。 值得注意的是,F(xiàn)undebug的官方文檔有寫到: 插件默認(rèn)僅收集出錯(cuò)信息,保護(hù)隱私,收集systemInfo和userInfo需要開發(fā)者進(jìn)行配置。 同理,如果想要監(jiān)控函數(shù)調(diào)用和記錄函數(shù)參數(shù)值,需要手動(dòng)配置。
造個(gè)錯(cuò)看看效果,我在getPhoneNumber函數(shù)的第一行故意獲取不存在的值:
因?yàn)閰?shù)e的值中根本沒有number,所以就容易理解出錯(cuò)的原因了。 |
工作日 8:30-12:00 14:30-18:00
周六及部分節(jié)假日提供值班服務(wù)