First-chance exception in KERNEL32.DLL 0xE06D7363 Microsoft C++ Exception

來源:互聯網
上載者:User
First-chance exception in KERNEL32.DLL 0xE06D7363 Microsoft C++ Exception2009-05-04 16:21

在VC中偵錯工具時,Output視窗有時會出現“First-chance exception in xxx.exe...”這樣的資訊。一般來說,這是由於程式中發生了異常,被VC捕獲而產生的輸出。

在調試器中運行程式時,如果程式產生異常,調試器會首先獲得通知(即First-chance
exception),而後此異常由產生它的程式負責捕獲。如果程式沒有捕獲此異常,那麼調試器會再次被通知(即Second-chance
exception,Last-chance exception),並結束程式。

通常見到的“First-chance exception”一般是“0xC0000005: Access Violation”,“0xC00000FD: Stack Overflow”等,這些都說明程式中有缺陷,需要修正。

但是也有一些屬於正常的情況,例如“First-chance exception in
xxx.exe (KERNEL32.DLL): 0xE06D7363: Microsoft C++ Exception”。Windows
作業系統中廣泛使用了結構化異常(SEH)來處理特殊情況,許多和底層打交道的API都靠SEH來處理可能發生的意外。並且,這些API中都有捕獲SEH
的代碼,產生的異常不會對程式造成影響。但是由於上面提到的“First-chance exception,Second-chance
exception”機制,VC仍然會有輸出,但是我們完全可以忽略。如果你實在不喜歡這些輸出資訊,那你就必須禁用對特定異常的“First-
chance exception”捕獲。

First-chance exception in XX.exe(KERNEL32.DLL):0xE06D7363:Microsoft C++ Exception

    在VC中偵錯工具時,Output視窗有時會出現“First-chance exception in xxx.exe...”這樣的資訊。一般來說,這是由於程式中發生了異常,被VC捕獲而產生的輸出。有時在程式運行時並沒出錯,但是在調試時總是停到此處從而無法調試下面程式。

    有人說這是Visual自身Bug,需找好久才明白一點,並把我的解決辦法分享一下。在此首先要感謝

http://hi.baidu.com/wytzsjzly/blog/item/8db27122f1bdbbac4723e8c1.html和

http://topic.csdn.net/t/20060827/21/4979152.html中提到的方法。

   
在調試器中運行程式時,如果程式產生異常,調試器會首先獲得通知(即First-chance
exception),而後此異常由產生它的程式負責捕獲。如果程式沒有捕獲此異常,那麼調試器會再次被通知(即Second-chance
exception,Last-chance exception),並結束程式。

    通常見到的“First-chance exception”一般是“0xC0000005: Access Violation”,“0xC00000FD: Stack Overflow”等,這些都說明程式中有缺陷,需要修正。

    但是也有一些屬於正常的情況,例如“First-chance
exception in xxx.exe (KERNEL32.DLL): 0xE06D7363: Microsoft C++
Exception”。Windows
作業系統中廣泛使用了結構化異常(SEH)來處理特殊情況,許多和底層打交道的API都靠SEH來處理可能發生的意外。並且,這些API中都有捕獲SEH
的代碼,產生的異常不會對程式造成影響。但是由於上面提到的“First-chance exception,Second-chance
exception”機制,VC仍然會有輸出,但是我們完全可以忽略。如果你實在不喜歡這些輸出資訊,那你就必須禁用對特定異常的“First-
chance exception”捕獲。

    其方法如下:

-Start   debugging   your   program.
-Go   to   Debug   |   Exceptions...
-Choose   "e06d7363   Microsoft   C++   Exception "   from   the   bottom   of   the   "Exceptions "   list.
-Choose   "Stop   always "
-Click   "Change "
-Click   "OK "

Now
  your   debugger   will   stop   when   it   encounters   a  
first-chance   C++   exception,   and   you   can   examine   the   call
  stack,   etc,   and   investigate.   (You   may   need   to   restart
  the   debugging   session,   if   the   exception   has   taken  
place   before   you   get   this   setting   changed.)

    在number中選擇:E06D7363 Name:Microsoft   C++   Exception ,在Action中選擇“Stop alwaws”就會停到此處,選擇“Stop if not handled”就不會停到此處了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.