簡體   English   中英

在Visual Studio 2010 C ++中進行調試時出現奇怪的異常

[英]Weird exception when debugging in visual studio 2010 c++

嘗試調試程序時遇到此錯誤。 似乎它甚至不能接受我傳遞給main函數的參數:

int main(int argc, char* argv[]){
    if(argc!=4) std::cout<<wrong input";
    else{
       //other codes
    }
    return 0;
}

我將斷點放在第一行(主功能行)上,它給了我以下錯誤:

'MESH.exe': Loaded 'C:\Users\Avan\Documents\NUS\Yr3_Sem2\CS3242\MESH\Debug\MESH.exe',       Symbols loaded.
'MESH.exe': Loaded 'C:\Windows\SysWOW64\ntdll.dll', Symbols loaded (source information stripped).
'MESH.exe': Loaded 'C:\Windows\SysWOW64\kernel32.dll', Symbols loaded (source information stripped).
'MESH.exe': Loaded 'C:\Windows\SysWOW64\KernelBase.dll', Symbols loaded (source information stripped).
'MESH.exe': Loaded 'C:\Windows\SysWOW64\msvcp100d.dll', Symbols loaded (source information stripped).
'MESH.exe': Loaded 'C:\Windows\SysWOW64\msvcr100d.dll', Symbols loaded (source information stripped).
First-chance exception at 0x00318c67 in MESH.exe: 0xC00000FD: Stack overflow.
Unhandled exception at 0x00318c67 in MESH.exe: 0xC00000FD: Stack overflow.
First-chance exception at 0x00318c67 in MESH.exe: 0xC0000005: Access violation reading     location 0x003a0000.
Unhandled exception at 0x00318c67 in MESH.exe: 0xC0000005: Access violation reading location 0x003a0000.
The program '[4800] MESH.exe: Native' has exited with code -1073741819 (0xc0000005).

因此,我認為錯誤是由於我向下傳遞輸入時產生的。 我已經在project-> properties-> debugging中設置了命令行輸入參數

該錯誤不斷指向chkstk.asm文件,我不知道它是什么。

; Find next lower page and probe
cs20:
    sub     eax, _PAGESIZE_         ; decrease by PAGESIZE
    **test    dword ptr [eax],eax     ; probe page.**
    jmp     short cs10

_chkstk endp

    end

指針繼續指向上面用**指示的行。 誰能告訴我可能出了什么問題?

好吧,鑒於它在抱怨一個堆棧溢出,我會看的第一件事是,如果你想分配了很多的東西在堆棧上。

例如,如果您的//other codes包含類似以下內容的//other codes

int bigarray[9999999999];

那可能是罪魁禍首。

我不會太擔心錯誤來自chkstk.asm ,這幾乎肯定是一些防御性代碼,用於檢查您是否耗盡了堆棧(因此chkstk用於check stack )並生成第一個-機會異常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM