Udacity除錯課第五單元錯誤重現

2021-06-22 04:54:29 字數 973 閱讀 6939

定義

為什麼需要重現

對執行過程進行觀察,按需試驗,才能將缺陷隔離出來。

只有能將錯誤重現,才能證明最終修復了這個漏洞。 分類

以下錯誤好像都來自物理學

波爾錯誤

a repeatable bug; one that manifests reliably under a possibly unknown but well-defined set of conditions 來自物理學 乙個可重複的錯誤。就是說狀態未知,但可能出錯的狀態有限、每一種狀態都有定義。

海森錯誤——海森伯格是名字,也是錯誤? 物理學的測不准定理。試圖研究、隔離出來進行分析時,錯誤就消失或改變了行為。

蒙代爾錯誤mandel 起因複雜隱晦,行為接近於隨機

薛丁格錯誤 他的貓實驗。這種錯誤很難顯形,只能從**中分析出來,或程式以非常規方式執行才可能發現這種不該出現的錯誤。

如何重現

條件 -- 輸入資料

環境重現錯誤的步驟

資料分類

靜態資料

最簡單,因為檔案儲存良好,受控。不過要注意資料的安全性,隱私資料不要被人看到了。 可以考慮擴充套件

檔案呼叫的序列

結構化資料——比較複雜的資料結構

返回值全域性變數

呼叫函式(可能只要記錄部分)

使用者互動

捕捉-回放工具

時間隨機

操作環境

排程物理條件

除錯工具

統計相關

通過統計出錯和不出錯的執**況,分析出哪些特徵會影響到程式的執行。比如某個函式,某行**,某個變數值

使用phi相關係數

成功失敗

總數覆蓋

n11n10

未覆蓋n01

n00總數

phi = n11 * n00 − n10 * n01/sqrt((n10 + n11) * (n01 + n00) * (n10 + n00) * (n01 + n11))

Udacity除錯課筆記之簡化的哲學思考

乾貨無幾,水文續之。嗯,作為乙個完全沒有哲學概念的人來說,寫這麼一篇筆記,那絕對比水文還水了。接上一回簡化失敗,我們用delta 除錯法從大堆沙子輸入中淘到了,呃,炸藥。這些輸入放到熔爐裡,炸藥就會 所以我們需要學會使用 delta 自動地完成沙中淘炸藥的過程。從哲學的抽象層次來看,這堆炸藥就是 的...

Linux 第五單元總結

1.使用者理解 使用者就是系統使用者的身份 在系統中使用者儲存為若干竄字元 若干個系統配置檔案 使用者資訊涉及到的系統配置檔案 etc passwd 使用者資訊 使用者 密碼 uid gid 說明 家目錄 使用者使用的shell etc shadow 使用者認證資訊 etc group 組資訊 組名...

第五單元 陣列 總結

第一課 一維陣列的定義 cin h0 h1 h2 h49 程式中是不能用省略號來表示的。顯然這樣的程式 冗長繁瑣,程式設計效率差,因此引入陣列的概念。陣列 陣列就是一組相同型別的變數。他們往往都是為了表示同一批物件的統一屬性。例如,for i 0 i 49 i cin h i 陣列本身是變數,陣列經...