乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      程序員調(diào)代碼訪談:Marc-André Cournoyer

       weijianian 2016-08-07


      『程序員調(diào)代碼訪談』是Karim Hamidou 發(fā)起的一個程序員訪談系列,受訪者分享他們遇到的最難/最有意思的Bug,以及如何解決。

      本文的受訪者是Marc-AndréCournoyer。


      你是誰?

      我是一名軟件開發(fā)者兼企業(yè)家。我來自加拿大的魁北克。我創(chuàng)建了OSS(譯注:一個Ruby Web 服務(wù)器),寫了一本書,出售了一些業(yè)務(wù)?,F(xiàn)在我主要編寫代碼,在Coded教學(xué)。

      你遇到最困難/有趣的bug是什么,你是如何解決?

      最近,我為我的代碼俱樂部編寫了一個虛擬機,但不明白它為什么不能工作。

      虛擬機的工作原理和CPU一樣。它有一個指針指向當(dāng)前正在執(zhí)行指令。通常該指針被稱為程序計數(shù)器(pc)。

      虛擬機工作原理是執(zhí)行一條指令并跳轉(zhuǎn)到下一條。我就是那樣編寫的。指令的執(zhí)行在一個很大的switch-case循環(huán)中完成。然后,增加程序計數(shù)器的值跳轉(zhuǎn)到下一條指令(指令長度為2個字節(jié),所以pc+=2)。

      當(dāng)然,有些指令也可以調(diào)整程序計數(shù)器值。特別是用于控制流的實現(xiàn)(比如if)。這些指令能夠?qū)⒊绦蛴嫈?shù)器的值設(shè)置成內(nèi)存中的某個地址。如果條件為真,程序指針將會指向內(nèi)存中對應(yīng)代碼塊的地址。這是CPU實現(xiàn)所有控制流結(jié)構(gòu)的方式。

      這里有個bug。記得之前說過,執(zhí)行完一條指令,我就增加程序計數(shù)器的值。那意味著每當(dāng)執(zhí)行一條if語句,虛擬機都將跳轉(zhuǎn)到對應(yīng)內(nèi)存地址+2的位置。多移動了兩個字節(jié)。

      解決方案是在執(zhí)行指令之前增加程序計數(shù)器的值。


      有什么要補充的?

      以下是我用偽機器代碼解決bug的過程。

      1.遇到bug受阻。

      2.用頭撞擊鍵盤。

      3.停止編碼,離開電腦。

      4.回到電腦前,嘗試些新的改動。

      5.如果bug解決,跳轉(zhuǎn)到第7步。

      6.跳轉(zhuǎn)到第2步。

      7.喝酒慶祝。

      每當(dāng)發(fā)現(xiàn)bug,我努力地想要忽略它,保持自信,但都是徒勞。


      原文來源:Debuggers

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多