• <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)  編輯 收藏 引用 所屬分類: 調試
            久久亚洲国产午夜精品理论片| 中文字幕乱码人妻无码久久| 69久久精品无码一区二区| 99久久免费国产特黄| 国产AⅤ精品一区二区三区久久| 青青草国产精品久久| 精品久久久一二三区| 2021久久国自产拍精品| 午夜视频久久久久一区| 久久ZYZ资源站无码中文动漫| 91精品国产91久久久久久蜜臀| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 久久精品嫩草影院| 亚洲欧洲久久久精品| 精品久久香蕉国产线看观看亚洲| 久久九九久精品国产| 久久久久免费看成人影片| 日韩十八禁一区二区久久| 国产成人精品久久二区二区 | 国产精品久久久久免费a∨| 久久国产精品-久久精品| 亚洲国产另类久久久精品黑人| 99久久无码一区人妻| 日产精品久久久久久久性色| 午夜精品久久久久久影视riav| 国产2021久久精品| 久久这里只有精品首页| 亚洲AV日韩精品久久久久| 四虎影视久久久免费观看| 久久精品草草草| 久久午夜夜伦鲁鲁片免费无码影视| 94久久国产乱子伦精品免费 | 久久久久久久91精品免费观看| 免费精品99久久国产综合精品| 久久夜色精品国产噜噜亚洲AV| 久久久久久曰本AV免费免费| 久久久久无码精品| 久久免费视频一区| 久久久久国色AV免费看图片| 久久影院午夜理论片无码 | 99久久婷婷免费国产综合精品|