當前位置: 華文星空 > 知識

騰訊實習生面試,這兩道題目該怎麽回答?

2016-04-18知識

首先作為實習生考試這兩個題目非常不合適。

但是這兩個題目恰恰是真實套用中經常出現,而且非常難找的兩種bug,一個是多核多執行緒導致的難以重現的bug,還有一個是有可能的memory corruption。

俗話說,工欲善其事,必先利其器。我們一開始蓋一個木頭房子,有斧子鋸子就夠了,但是當我們要蓋摩天大樓的時候,你問我用斧子鋸子怎麽蓋,那就是玩我了。

好了下面介紹一下終極大殺器——Green Hills MULTI IDE with TimeMachine。

第一個問題的核心在於難以重現,這個問題在多核多執行緒的情況下非常常見,有一個極端的corner case導致的錯誤並且這個錯誤只有在某些不可控因素恰好遇到的時候會出現(比如兩個執行緒的某種執行順序)。當我們跳出圈子,扔掉debug知識和經驗,想到的第一點是什麽?如果我能重現這個bug不就簡單了?如果我能完美重現這個bug,就像拍視訊一樣,然後可以回去一幀一幀地回放,觀察程式執行過程中的每個細節,這bug就是個正常的bug而已。

TimeMa