• <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 閱讀(2011) 評論(0)  編輯 收藏 引用

            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            <2025年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            常用鏈接

            留言簿(1)

            隨筆檔案

            Friend

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

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            www.久久热| 久久99这里只有精品国产| 天天综合久久久网| 久久综合狠狠综合久久激情 | 国产精品无码久久久久| 日韩欧美亚洲综合久久 | 国产一区二区精品久久凹凸| 久久九九免费高清视频| 亚洲AV无码成人网站久久精品大| 国产欧美久久一区二区| 久久精品视频一| 粉嫩小泬无遮挡久久久久久| 亚洲欧洲中文日韩久久AV乱码| 久久精品国产网红主播| 无码精品久久一区二区三区| 国产精品久久一区二区三区 | 久久午夜福利电影| 国产午夜福利精品久久2021| 成人综合久久精品色婷婷| 国产亚洲美女精品久久久久狼| 99精品久久精品一区二区| 精品无码久久久久久国产| 久久国产精品99久久久久久老狼| 精品国产乱码久久久久久呢| 久久亚洲中文字幕精品一区| www亚洲欲色成人久久精品| 精品久久久久久无码中文字幕一区 | 国产精品天天影视久久综合网| 91麻豆国产精品91久久久| 久久综合视频网站| 欧美一级久久久久久久大片| 久久精品国产亚洲Aⅴ香蕉| 99久久精品费精品国产一区二区| 久久99热这里只有精品国产| 亚洲а∨天堂久久精品9966| 亚洲国产精品成人久久蜜臀 | 久久久久人妻精品一区| 色狠狠久久AV五月综合| 18岁日韩内射颜射午夜久久成人| 超级碰碰碰碰97久久久久| 一本一本久久a久久综合精品蜜桃|