• <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
              2010年7月23日

            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 @ 2010-07-23 16:22 MicroYang 閱讀(2011) | 評(píng)論 (0)編輯 收藏
              2007年4月25日
                 摘要: 關(guān)于C++的詭異,以及算法學(xué)習(xí)的開始  閱讀全文
            posted @ 2007-04-25 16:58 MicroYang 閱讀(1499) | 評(píng)論 (6)編輯 收藏
              2007年4月18日

            有子曰:其為人也孝弟,而好犯上者,鮮矣;不好犯上,而好作亂者,未之有也。君子務(wù)本,本立而道生。孝弟也者,其為仁之本與。

                                                                                                  --《論語今解·學(xué)而第一》

             若要達(dá)到一個(gè)目標(biāo),必須循其根本,根本如能確定(本立),那么便容易找出解決的方法(道生)。很多時(shí)候就是這樣的道理,遇到一個(gè)問題,要追究到底才是,更何況是我們做技術(shù)的,記得第一次看見這個(gè)“本立道生”的詞的時(shí)候是在候捷翻譯的《Inside C++ Object Model》這個(gè)是作為他的序言的標(biāo)題的。其實(shí)當(dāng)你真的了解很多細(xì)節(jié)的時(shí)候你才能真正的體會(huì)到技術(shù)的魅力,而不是代碼的奴隸!

             前幾天去微軟面試的時(shí)候,當(dāng)時(shí)那個(gè)主考官問我什么叫overload operator()?以及如何區(qū)分它和callback?當(dāng)時(shí)回答的時(shí)候,我是這么想的,我是沒有用過這個(gè)仿函數(shù)啦,但是我知道仿函數(shù)是怎么實(shí)現(xiàn)的,就是通過重載operator()的方法實(shí)現(xiàn)的,而至于callback那么肯定就是通過函數(shù)指針去實(shí)現(xiàn)了。當(dāng)時(shí)我的第一反應(yīng)就是可能這個(gè)performance算是一個(gè)吧,我就這么說了,這個(gè)operator()可能是作為inline展開了,節(jié)省了函數(shù)調(diào)用的時(shí)間,提高了性能。  但是如果是callback的話,就不可能是作為inline展開了。當(dāng)時(shí)也就這么回答了。主考官給我的回復(fù)是這樣的,其實(shí)至于performance這一塊來講了,也不是最主要的影響,關(guān)鍵的地方在于這個(gè)operator()可以保存調(diào)用的狀態(tài)或標(biāo)志什么的私有數(shù)據(jù),而callback只能用static的變量來取代,但是不好的還是static只能為所有的代碼服務(wù),而overload operator()可以為每一個(gè)obj保存私有數(shù)據(jù)部分。他說了,對(duì)的,顯然他說的是沒錯(cuò)。但是當(dāng)時(shí)心中還是對(duì)他關(guān)于performance的回答有點(diǎn)疑慮,當(dāng)時(shí)由于是在面試,也沒有多想下去,后來仔細(xì)想來,其實(shí)最關(guān)鍵的還是這個(gè)performance,眾所周知,如果一個(gè)class member function可以作成inline的屬性的,當(dāng)然編譯器有權(quán)利決定在調(diào)用點(diǎn)是否內(nèi)聯(lián)展開,其實(shí)在大多數(shù)的情況下面,試想如下的代碼情況:
             
            Class Compare
            {
            public:
                bool operator (
            int iFrst, int iSecond) const
               
            {
                
            // Do some thing
                return false// Or true
               
            }

            };


            // SortList(List& list, int iSize, const Compare& compareObj)
            SortList(list, 1000, com);

            如上面的所示,這個(gè)class的重載的operator()顯然就是帶有inline的屬性了,這個(gè)時(shí)候編譯器能做的是在能夠確定對(duì)象類型的時(shí)候如果這個(gè)代碼不是太大(當(dāng)然還要求你的編譯器內(nèi)聯(lián)選項(xiàng)容許狀態(tài))那么就會(huì)在調(diào)用點(diǎn)內(nèi)聯(lián)展開。但是如果是callback呢?肯定不是,因?yàn)樗玫搅撕瘮?shù)指針,即使是這個(gè)函數(shù)定義成了inline,這個(gè)時(shí)候也不會(huì)做內(nèi)聯(lián)展開的(這個(gè)時(shí)候會(huì)有生成一個(gè)類似全局的函數(shù)代碼塊,回掉的指針就指向這個(gè)塊,編譯器會(huì)維護(hù)這個(gè)代碼塊的唯一性)。所以,如果要是仿函數(shù)要求確保內(nèi)聯(lián)展開的會(huì),要唯一確保的是,代碼中的調(diào)用點(diǎn)應(yīng)該是可以確定類型的,能夠做內(nèi)聯(lián)展開。然后,這個(gè)仿函數(shù)大多數(shù)情況下是沒有多態(tài)以及繼承伴隨左右的,所以這個(gè)performance是很重要的區(qū)別之一,尤其是在你需要處理大量的同類數(shù)據(jù)的時(shí)候,比如上面的這個(gè)例子,如果iSize很大,甚至是上萬的,那么這個(gè)時(shí)候的performance估計(jì)差別就會(huì)太大了。也許你的CPU頻率更高,但是更多的是可能是這個(gè)沒有必要的損失。呵呵。

            小提示:如何判斷一個(gè)函數(shù)調(diào)用是否被內(nèi)聯(lián)展開?
            方法:1.你當(dāng)然可以生成匯編,自己去看。2.你可以在調(diào)用點(diǎn)設(shè)置斷點(diǎn),看看能不能跟進(jìn)去?(內(nèi)聯(lián)的debug不能跟進(jìn)去函數(shù),至少目前我所知道的編譯器是這樣的)。3.當(dāng)然更多的時(shí)候在調(diào)用點(diǎn)設(shè)置斷點(diǎn),然后查看匯編代碼才是最權(quán)威的,也是比較簡單的方法。
            posted @ 2007-04-18 15:30 MicroYang 閱讀(549) | 評(píng)論 (2)編輯 收藏
              2007年4月10日
                 摘要: 學(xué)習(xí)筆記,整理于03/2007  閱讀全文
            posted @ 2007-04-10 12:23 MicroYang 閱讀(343) | 評(píng)論 (0)編輯 收藏
              2007年4月6日
            本來是想做成技術(shù)類型的博客的,后來發(fā)現(xiàn)寫的大多都是些日常生活的感受,這段時(shí)間每天都在不斷的面試,準(zhǔn)備,瑣碎的事情淹沒了我整理的心緒,不過好像我是在為自己的懶惰找理由哦。今天早上接了一家公司的電話,他們覺得我還可以(其實(shí)這個(gè)不用他們證明,我本來就可以,哈哈),然后決定給我那個(gè)赴微軟的offer,其實(shí)薪水給的還是可以的,我也比較傾向這個(gè),但是還是考慮下,做個(gè)比較吧,對(duì)自己負(fù)責(zé),也對(duì)公司負(fù)責(zé)。反正被人家肯定了以后,心情自然不錯(cuò),BTW,今天下午還是去微軟面試,不過是另一家的。很擔(dān)心被那個(gè)前臺(tái)認(rèn)出來哦,換個(gè)馬甲先,開玩笑了。不過覺得自己面試還是有不少收獲的。畢竟以前的很多東西自己研究的也還是蠻深的。mark下,預(yù)祝自己順利。
            posted @ 2007-04-06 12:38 MicroYang 閱讀(1037) | 評(píng)論 (0)編輯 收藏
              2007年4月5日

            今天跑了一天,一直以來對(duì)算法很頭疼,其實(shí)真的沒有什么,只是自己很少用它去思考問題而已,人便懶樂,思維便也鈍了。無論今后如何,在哪兒工作,設(shè)計(jì),優(yōu)化都一定要多多考慮,不為了什么,就為了那份巧奪天工的瀟灑。回去的路上第一次發(fā)現(xiàn)(也許用注意更合適)一個(gè)很流氓的廣告,是我在找地鐵班次的時(shí)候看見的,掛在和地鐵標(biāo)示一樣醒目的地方,廣告上一樣是一串類似于站臺(tái)的節(jié)點(diǎn),只是左面的幾乎全是“胃痛”,最右面的是“胃舒服”,中間被一個(gè)藥片的符號(hào)給隔著。汗顏!!!

            posted @ 2007-04-05 21:23 MicroYang 閱讀(200) | 評(píng)論 (0)編輯 收藏
              2007年4月2日
                 摘要: 離職有日來,所閱面試題者無數(shù),正所謂,閱題無數(shù),面已成精;簡稱面筋  閱讀全文
            posted @ 2007-04-02 21:27 MicroYang 閱讀(1216) | 評(píng)論 (0)編輯 收藏
              2007年3月29日

            ——只要能忘記曾經(jīng),你就能自由。你就能重生。

            傳說中,鳳凰是人世間幸福的使者,每五百年,它就要背負(fù)著積累于人世間的所有不快和仇恨恩怨,投身于熊熊烈火中自焚,以生命和美麗的終結(jié)換取人世的祥和和幸福。同樣在肉體經(jīng)受了巨大的痛苦和輪回后它們才能得以更美好的軀體得以重生。這段故事以及它的比喻意義,在佛經(jīng)中,被稱為涅磐。 《涅磐無名論》中的記載如下:無名曰:夫至人空洞無象,而萬物無非我造。會(huì)萬物以成己者,其唯圣人乎!何則? 非理不圣,非圣不理,理而為圣者,圣人不異理也。故天帝曰:般若當(dāng)于何求?善吉曰:般若不可于色中求,亦不離于色中求。又曰:見緣起為見法,見法為見佛,斯則物我不異之效也。所以至人戢玄機(jī)于未兆,藏冥運(yùn)于即化,總六合以鏡心,一去來以成體。古今通,始終通,窮本極末,莫之與二。浩然大均,乃曰涅磐。經(jīng)曰:不離諸法而得涅磐。又曰:諸法無邊,故菩提無邊,以知涅磐之道,存乎妙契。妙契之致,本乎冥一,然則物不異我,我不異物,物我玄會(huì),歸乎無極,進(jìn)之弗先,退之弗后,豈容終始于其間哉!天女曰:耆年解脫,亦如何久。”?

            翻譯成我們現(xiàn)在的語言:無名者說,達(dá)到一定境界的人必有空寂靈昧的體驗(yàn),體驗(yàn)到空境,就不會(huì)在意世界萬象的事物,萬物由我心流出,執(zhí)萬物與我合一,只有圣人能做到!為什么這樣說呢?因?yàn)椴徽莆者@個(gè)真理就不能成為圣人,反之,不是圣人也不能知道這個(gè)真理,正因?yàn)檎莆樟诉@個(gè)真理才成為圣人,所以圣人與真理契合無間,凡是圣人都不能離開這個(gè)真理!這正如般若觀照所說的色心不二,相即相離,空即是色,色即是空的不二之理。從緣起法的角度來看,萬法為空,空為萬法,見佛即見法,見法即見空,諸法性空,即成見佛,物我兩忘,不一不異。所以通達(dá)空境的圣人總是勘玄機(jī)于先兆,隱未來于變化,將東南西北上下六合統(tǒng)攝一心,過去未來同成一體。古來今往都是一樣,窮本極末,沒有二致。將浩浩然物我一心,就是涅磐。這就是佛經(jīng)里說的不離諸法而得涅磐。又因?yàn)橹T法無邊,故求得解脫也無盡,由是推知,涅磐之道在于保持契會(huì)妙理之妙契,有了妙契,乃知萬法冥然一體的真理。萬物與我沒有本質(zhì)的差別,我與萬物實(shí)質(zhì)一樣,物與我玄妙會(huì)通,無極是它們最后歸宿。涅磐就是進(jìn)而不前,退而不后,無始無終,終始不在其間!天女說:耆年(舍利弗——引者注)的解脫也無終始。

            posted @ 2007-03-29 12:25 MicroYang 閱讀(312) | 評(píng)論 (0)編輯 收藏
              2007年3月28日

            ??? 今天終于離職了,下定決心好久了,出門的那一刻,沒有回頭,也許是來得太突然,總有種莫名的滋味。但是這樣的結(jié)局不正是我想要的嗎?一切都拋在了腦后。走在軟件園的小道上,桃花在微風(fēng)中搖曳著微笑,垂柳在鏡面里憐惜著自己,湖邊的美女石像微笑的向我招手,湖面微波蕩漾,也許這正是暗送秋波的來歷!呵呵 :) 值得駐足嗎?搖搖頭,繼續(xù)前進(jìn),因?yàn)槲业难劬Ω嬖V我:春天才剛剛開始!

            posted @ 2007-03-28 19:19 MicroYang 閱讀(292) | 評(píng)論 (1)編輯 收藏
            僅列出標(biāo)題  
            <2025年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            常用鏈接

            留言簿(1)

            隨筆檔案

            Friend

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

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            深夜久久AAAAA级毛片免费看| 久久精品国产91久久综合麻豆自制| 日韩欧美亚洲综合久久| 奇米综合四色77777久久| 99久久国产综合精品成人影院| 色偷偷91久久综合噜噜噜噜 | 久久青青色综合| 国产韩国精品一区二区三区久久| 人妻系列无码专区久久五月天| 久久亚洲私人国产精品| 欧美亚洲日本久久精品| 久久婷婷五月综合色高清| 精品久久久久一区二区三区| 久久久精品人妻一区二区三区四| 久久精品国产欧美日韩| 狠狠色婷婷综合天天久久丁香| av色综合久久天堂av色综合在| 99热热久久这里只有精品68| 久久亚洲欧美国产精品| 少妇人妻综合久久中文字幕| 久久国产成人| 国产日韩久久免费影院 | 日韩久久久久中文字幕人妻| 99久久精品费精品国产| 热99re久久国超精品首页| 久久精品国产网红主播| 亚洲国产精品无码久久一线 | 亚洲狠狠久久综合一区77777| 久久99热只有频精品8| 色综合久久无码五十路人妻| 怡红院日本一道日本久久 | 国产精久久一区二区三区| 国产韩国精品一区二区三区久久| 久久99国产综合精品免费| 久久久久99精品成人片欧美| 97热久久免费频精品99| 欧美黑人激情性久久| aaa级精品久久久国产片| 久久国产精品-国产精品| 中文字幕亚洲综合久久2| 精品视频久久久久|