• <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>

            唐吉訶德

              C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
              5 Posts :: 75 Stories :: 3 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(2)

            我參與的團隊

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            終于把《讓程序在崩潰時體面的退出》這個系列的6篇文章全部發表出來了。
                    這6篇文章分別是:
                    《讓程序在崩潰時體面的退出之Unhandled Exception
                    《讓程序在崩潰時體面的退出之CallStack
                    《讓程序在崩潰時體面的退出之Dump文件
                    《讓程序在崩潰時體面的退出之SEH
                    《讓程序在崩潰時體面的退出之SEH+Dump文件
                    《讓程序在崩潰時體面的退出之終極解決方案(SEH+Dump+Unhandled Exception Filter)
                      WINCE-如何通過map文件定位異常地址

            調試技巧 —— 如何利用windbg + dump + map分析程序異常

                    對這些東西的研究起始于項目中一個Prototype的開發。這個Prototype就是給我們的產品加上Log信息。既然是Log信息,那么在應用程序崩潰的時候也要記錄發生了什么而導致程序崩潰,而且這個信息對于開發人員來說是非常重要的。為此,在網上搜索了大量的資料來看,英文的中文的,再加上MSDN和那本磚頭書《Windows via C/C++》,總算是把Windows下軟件開發中對致命異常的處理給搞清楚了。按照我以前的習慣,把學到的新知識從新梳理總結了一下,寫成了這6篇系列文章。
                    現在文章發表完了,這篇文章只是一個總結,而不是終結。因為在學習和寫文章的過程中,還有一些問題沒有徹底搞明白,比如SEH中的EXCEPTION_CONTINUE_EXECUTION和SEH與C++中的EH的混合使用。
                    SEH中的EXCEPTION_CONTINUE_EXECUTION
                    不管是MSDN還是《Windows via C/C++》,對SEH中的EXCEPTION_CONTINUE_EXECUTION解釋都一樣:Exception is dismissed. Continue execution at the point where the exception occurred.。也就是說返回到出現異常的地方重新執行。而且《Windows via C/C++》還專門寫了一個例子來說明??墒俏野凑諘系睦訉懗鐾瑯拥拇a,執行的結果卻跟書上不一樣:首先,代碼執行結果并不是期望的那樣;其次,出現異常的那行代碼后面的代碼并沒有執行。在網上搜索了一通,得到的答案是:返回到出現異常的地方重新執行是返回到匯編指令的那個地方,而不是C++代碼的那一行,如果這個指令用到了寄存器內的內容,那么由于寄存器內容沒有被修改,所以執行結果依然是錯的。但是這只是解釋了第一問題,對于第二個問題依然沒有答案。如果有時間的話,我會繼續對這個問題進行研究。
                    SEH與C++中的EH的混合使用
                    SEH是結構化的,不支持面向對象。而C++中的try/catch又只能捕捉到預定義的異常。各有優缺點,要想捕捉到所有異常,就要2個都用。那么代碼的可讀性和可維護性就會很差。不過,有網友看到我的文章后告訴我了一篇文章的地址,那篇文章就是講怎么樣將SEH的異常轉換成C++中的異常。這是一個非常好的方法。有空的話,我也會對這方面進行一下研究。
            posted on 2013-07-25 14:53 心羽 閱讀(251) 評論(0)  編輯 收藏 引用 所屬分類: 調試
            精品久久久久久国产| 久久本道伊人久久| 精品久久综合1区2区3区激情| 欧洲人妻丰满av无码久久不卡| 久久久久亚洲AV无码观看 | 97精品伊人久久大香线蕉| 亚洲国产成人久久综合野外| 性做久久久久久久久老女人| 亚洲av成人无码久久精品| 国产91色综合久久免费| 精品国产乱码久久久久久浪潮| 午夜精品久久久内射近拍高清 | 午夜欧美精品久久久久久久| 97久久精品无码一区二区| 久久精品国产国产精品四凭 | 国产午夜精品久久久久九九电影| 国内精品久久久久久久久电影网 | 国产成人综合久久久久久| 久久综合视频网| 99久久精品国内| 一本色道久久综合| 国产精品久久久久久| 欧美久久一区二区三区| a高清免费毛片久久| 久久国产AVJUST麻豆| 日本精品久久久久中文字幕8 | 日本精品久久久久影院日本 | 久久93精品国产91久久综合| 久久狠狠爱亚洲综合影院| 91久久精品国产91性色也| 无码人妻久久久一区二区三区 | 97超级碰碰碰碰久久久久| 亚洲欧洲久久久精品| 免费国产99久久久香蕉| 久久婷婷五月综合97色| 女人高潮久久久叫人喷水| 久久久精品久久久久久| 亚洲国产精品久久久久网站 | 久久精品国产色蜜蜜麻豆| 国产美女久久久| 72种姿势欧美久久久久大黄蕉|