亚洲免费乱码视频,日韩 欧美 国产 动漫 一区,97在线观看免费视频播国产,中文字幕亚洲图片

      1. <legend id="ppnor"></legend>

      2. 
        
        <sup id="ppnor"><input id="ppnor"></input></sup>
        <s id="ppnor"></s>

        二級C++技巧:C++中使用斷點(diǎn)寫調(diào)試方法

        字號:

        C/C++ code:
            f9 --- 設(shè)置/取消斷點(diǎn)
            f10 --- 單步執(zhí)行
            f11 --- 比f10的步幅小,f10在函數(shù)的調(diào)用時,直接跳過,在f11下,會進(jìn)入函數(shù)體!
            f5 --- 執(zhí)行到下一個斷點(diǎn)!
            了解調(diào)試,首先要知道"斷點(diǎn)"這個概念.斷點(diǎn)就是程序運(yùn)行中可能會中斷的地方,方便開發(fā)者在程序運(yùn)行的過程中查看程序當(dāng)前的運(yùn)行狀態(tài),比如變量的值,函數(shù)的返回值等等.究竟怎么使用斷點(diǎn)呢?
            1.F9在當(dāng)前光標(biāo)所在的行下斷點(diǎn),如果當(dāng)前行已經(jīng)有斷點(diǎn),則取消斷點(diǎn).
            F5調(diào)試狀態(tài)運(yùn)行程序,程序執(zhí)行到有斷點(diǎn)的地方會停下來.
            F10單步執(zhí)行程序.
            CTRL+F10運(yùn)行到光標(biāo)所在行.
            F11和F10的區(qū)別是,如果當(dāng)前執(zhí)行語句是函數(shù)調(diào)用,則會進(jìn)入函數(shù)里面.
            SHIFT+F11跳出當(dāng)前所在函數(shù).
            特別說明:
            a.有的地方不能下斷點(diǎn).比如空行,基本類型定義語句(不初始化),等等非執(zhí)行語句.比如
            int i; // 此行不能下斷點(diǎn)
            int j=0;// 這里可以下
            CStringstr;// 這里可以下
            intk = Max(i,j);// 這里可以下
            b.不是所有斷點(diǎn)都會(斷).比如下斷點(diǎn)的語句在程序里面沒有被執(zhí)行.
            c.此外,ALT+F9還可以下條件斷點(diǎn),不過這個不常用,有興趣的可以自己研究:)
            2.如何調(diào)試Release版的程序?
            有些程序在debug下運(yùn)行的很好,但在release下卻總是失敗,默認(rèn)情況下release是不能調(diào)試的. 怎么解決呢?
            其實(shí)"debug"和"release"都只是一個代號而已,各自對應(yīng)一組不同的編譯選項(xiàng).
            在release的默認(rèn)設(shè)置下,ALT+F7 ,調(diào)出工程設(shè)置對話框,切換到link選項(xiàng)卡,勾選"Generate debug info",然后再切換到C/C++選項(xiàng)卡,在"Optimizations"里面選"Disable(Debug)",在下面的"Debug info"里面選"Program Database for Edit and Continue".然后點(diǎn)OK保存設(shè)置,重新編譯程序,下斷點(diǎn)即可.
            3.上面兩點(diǎn)已經(jīng)能應(yīng)付很多種情況了,但是有時候即使在debug下也不能下斷點(diǎn),我以前也曾經(jīng)遇到過這種問題,一個調(diào)了層的dll,就是不能下斷點(diǎn).其實(shí)還除了上面的方法,還有一種最底層的實(shí)現(xiàn)技術(shù):使用匯編.
            細(xì)心的人可能會發(fā)現(xiàn),有時候在調(diào)試狀態(tài)下當(dāng)程序出現(xiàn)異常的時候,光標(biāo)會指向匯編代碼,而這個代碼就是int 3,這其實(shí)是一個中斷.
            在你的代碼的任意地方加上
            __asm
            {
            int 3
            };
            用debug編譯,然后直接運(yùn)行程序.當(dāng)程序執(zhí)行到上述代碼的時候,就會出現(xiàn)一個框,告訴你說一大堆信息,說程序錯了,下面有"調(diào)試"、"終止"、"忽略",不用理,點(diǎn)調(diào)試就可以進(jìn)入跟蹤了。