當人們談及舊時代的程式設計趣事時,Dave Plummer 總是繞不開的名字。作為 Windows 原生任務管理器的創造者,他在 上世紀 90 年代為Microsoft構建了這款至今仍被無數用戶依賴的系統工具。然而令人意外的是,這位程式員曾在這款軟件的代碼中,意外留下了自己的家庭電話號碼碼。 事情的起點是一個看似不可能的錯誤:Plummer 在開發任務管理器時發現,CPU 使用率有時會突然超過 100%——「如果計算正確,這本就不可能發生」。
在確認自己的代碼無誤後,唯一的可能性是來自核心層面的 Bug,因為任務管理器的數據正是從核心中提取的。然而在 90 年代Microsoft的核心部門「等級森嚴」,要讓核心開發人員重視這個問題並不容易。「核心是『天之驕子』們的地盤,」Plummer 回憶道,「而我只是一個畫 CPU 小圖標的 UI 程式員。可想而知,當我向核心團隊提出『這也是你們的 Bug』時,他們對我的處境可謂毫無同情心。
」
巧用電話號碼碼捕捉 Bug
為了定位這個極端罕見的問題,Plummer 在代碼中加入了一個斷言,規定 CPU 使用率不應超過 100%。如果條件不滿足,程式會在偵錯器中拋出錯誤並停止,以方便檢查問題所在。然而,這個 Bug 極其頑強——「它從沒在我或我團隊任何人的機器上觸發過」。於是 Plummer 想出了一個「最有可能抓住問題」的辦法:「我把自己的名字和家庭電話號碼碼寫進了斷言裡。這樣,不管公司裡誰在什麼時候、何地點、哪間辦公室遇到這個問題,他們都會看到我的聯繫方式,然後告訴我。
」 Plummer 很快忘記了自己埋下的這顆「彩蛋」。不久後,Windows 測試版正式發佈——用戶規模至少數千人,甚至可能達到數百萬。所有這些測試者的電腦裡,都潛藏著一行代碼:一旦出錯,就會彈出顯示他家庭電話的對話框。令人意外的是,雖然 Plummer 至今仍使用同一個家庭號碼碼,但從未有人打來過。至於那個讓 CPU 使用率超 100% 的 Bug,最終在一台實驗室機器上被捕獲,核心開發人員確認問題確實出在他們那邊並已修復。




