• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 9,  comments - 9,  trackbacks - 0

            Normally, the break instruction exception can be triggered in following conditions:

            1.       Hardcode interrupt request, like: __asm int 3 (ASM), System.Diagnostics.Debugger.Break (C#), DebugBreak() (WinAPI).

            2.       OS enable memory runtime check, like Application Verifier can trigger after heap corruption, memory overrun.

            3.       Compiler can have some configuration to decide what should be filled to the uninitialized memory block and end of function(blank area, after retun..).  For example, Microsoft VC complier can fill 0xCC if enable /GZ.  0xCC is actually a opcode of __asm int 3.  So if some error cause the application run into such block, will trigger a break point.

            A quick summary of what Microsoft's compilers use for various bits of unowned/uninitialized memory when compiled for debug mode (support may vary by compiler version):

            Value     Name           Description 

            ------   --------        -------------------------

            0xCD     Clean Memory    Allocated memory via malloc or new but never 

                                     written by the application. 


            0xDD     Dead Memory     Memory that has been released with delete or free. 

                                     Used to detect writing through dangling pointers. 


            0xFD     Fence Memory    Also known as "no mans land." This is used to wrap 

                                     the allocated memory (surrounding it with a fence) 

                                     and is used to detect indexing arrays out of 

                                     bounds or other accesses (especially writes) past

                                     the end (or start) of an allocated block.


            0xCC                     When the code is compiled with the /GZ option,

                                     uninitialized variables are automatically assigned 

                                     to this value (at byte level). 



            // the following magic values are done by the OS, not the C runtime:


            0xAB  (Allocated Block?) Memory allocated by LocalAlloc(). 


            0xBAADF00D Bad Food      Memory allocated by LocalAlloc() with LMEM_FIXED,but 

                                     not yet written to. 


            0xFEEEFEEE               OS fill heap memory, which was marked for usage, 

                                     but wasn't allocated by HeapAlloc() or LocalAlloc(). 

                                     Or that memory just has been freed by HeapFree().

            Disclaimer: the table is from some notes I have lying around - they may not be 100% correct (or coherent).


            As others have noted, one of the key properties of these values is that is a pointer variable with one of these values is dereferenced, it will result in an access violation, since on a standard 32-bit Windows configuration, user mode addresses will not go higher than 0x7fffffff.


            For the related issue, we can use Application Verifier to enable heap page, which can break after memory overrun, heap corruption.


             

             

            posted on 2010-07-23 16:22 MicroYang 閱讀(2028) 評論(0)  編輯 收藏 引用
            <2025年7月>
            293012345
            6789101112
            13141516171819
            20212223242526
            272829303112
            3456789

            常用鏈接

            留言簿(1)

            隨筆檔案

            Friend

            • Catherine
            • 深海羚羊
            • 似雨打芭蕉,似風吹梧桐葉,帶著一絲冰冷,也帶著一絲清新------冰柔語絲

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            一本色道久久综合亚洲精品| 久久av无码专区亚洲av桃花岛| 国产精品99久久久久久猫咪 | 精品久久久久国产免费| 久久久精品无码专区不卡| 伊人久久大香线蕉无码麻豆| 亚洲精品乱码久久久久久久久久久久| 久久精品麻豆日日躁夜夜躁| 国产精品久久久天天影视香蕉| 久久综合鬼色88久久精品综合自在自线噜噜 | 久久精品中文字幕无码绿巨人 | 亚洲国产精品一区二区久久hs| 99久久免费只有精品国产| 精产国品久久一二三产区区别| 91亚洲国产成人久久精品网址| 日韩人妻无码一区二区三区久久99 | 久久一区二区三区免费| 99久久精品毛片免费播放| 中文精品99久久国产 | 综合久久国产九一剧情麻豆 | 久久午夜福利电影| 狠狠色丁香久久婷婷综合五月 | 一本伊大人香蕉久久网手机| 日日噜噜夜夜狠狠久久丁香五月| 久久综合色之久久综合| 日本精品久久久久中文字幕 | 无码8090精品久久一区| 国产精品无码久久四虎| 精品久久综合1区2区3区激情 | 日韩av无码久久精品免费| 亚洲第一永久AV网站久久精品男人的天堂AV | 国产精品久久久99| 久久成人精品| 亚洲国产成人久久精品99| 色婷婷综合久久久久中文字幕| 久久天天躁狠狠躁夜夜不卡| 精品免费久久久久国产一区| 久久人人爽人爽人人爽av| 青春久久| 国产色综合久久无码有码| 久久人爽人人爽人人片AV|