1. 程式人生 > >關於stack around the variable “” was corrupted問題

關於stack around the variable “” was corrupted問題

錯誤:stack around the variable “XX” was corrupted.,中文翻譯就是“在變數XX周圍的堆疊已損壞”。後面在上網看了很多技術資料,發現大多數網站都有這樣的文章:

Code:
  1. 把 project->配置屬性->c/c++->程式碼生成->基本執行時檢查 為 預設值 就不會報本異常。具體原因正在研究中。。。    
  2. 如果改為其他就有exception。    
  3. exception有時是有道理的    
  4. // step 1   
  5. STRINGC2& STRINGC2::operator += (const char x)   
  6. {   
  7. // if (x == 0) return *this;    
  8. char ptr[1]; // max is 1 digit    
  9. ptr[0] = x;   
  10. ptr[1] = '/0';   
  11. *this += ptr; // off to step 2 and back    
  12. return *this// step 4 crash   
  13. }   
  14. 這個也會導致上述exception。    
  15. 問題描述:    
  16. Problem   
  17. The following error message occurs when building on Test RealTIme environment with the cvisual7 TDP?    
  18. Run-Time Check Failure #2 - Stack around the variable 'xxx' was corrupted.     
  19. Cause     
  20. Stack pointer corruption is caused writing outside the allocated buffer in stack memeory.    
  21. Solution    
  22. This kind of error is detected by setting /RTC1 compiler option from menu Project -> Settings -> Configuration properties -> Build -> Compiler -> Compiler flags when using
     TDP cvisual7 in IBM® Rational® Test RealTime environment.. This enables stack frame run-time error checking. For example, the following code may cause the above error messge.    
  23. #include <stdio.h>   
  24. #include <string.h>    
  25. #define BUFF_LEN 11 // 12 may fix the Run-Time Check Failure #2   
  26. int rtc_option_test(char * pStr);    
  27. int main()   
  28. {   
  29. char * myStr = "hello world";   
  30. rtc_option_test(myStr);   
  31. return 0;   
  32. }    
  33. int rtc_option_test(char * pStr)   
  34. {   
  35. char buff[BUFF_LEN];   
  36. strcpy(buff, pStr); //cause Run-Time Check Failure #2 - Stack around   
  37. //the variable 'buff' was corrupted.   
  38. return 0;   
  39. }   

把“project->配置屬性->c/c++->程式碼生成->基本執行時檢查 設定為預設值,就沒有這樣的錯誤了。關於MSDN的解釋是在堆疊外面讀寫某資料。錯誤是名為RTC1的編譯器檢測的。又看了更多的技術文章,發現這樣的錯誤是程式設計師在專案到了一定大的時候,它佔用的堆疊量就比較大。我也深有體會。因為自己本來編寫一個類,執行時沒有錯,但是在新增成員屬性的時候,在其它方式不變的情況下就容易發生這樣的錯誤。所以據此我猜應該是VS2005(2008)在內部就限定了堆疊的大小,當專案足夠大的時候,就會溢位。

相關推薦

執行時錯誤:“stack around the variablewas corrupted

造冰箱的大熊貓@cnblogs 2018/11/1   引發問題的程式碼片段如下 WORD var; scanf ( "%d", &var );   包含上述程式碼的程式,編譯正常,執行時也正常接收使用者輸入的資料。但待到程式執行結束時提示“stack ar

關於stack around the variable “” was corrupted問題

錯誤:stack around the variable “XX” was corrupted.,中文翻譯就是“在變數XX周圍的堆疊已損壞”。後面在上網看了很多技術資料,發現大多數網站都有這樣的文章: Code: 把 project->配置屬性->c/c++->程式碼生成-&g

C++:Stack around the “tWindowString” was corrupted(堆疊損壞,即記憶體溢位)

最近除錯程式的時候出現了這樣一個問題 其中關鍵性的內容有兩個:出現error的位置和error資訊。 可以看到錯誤位置在mytree.cpp的377行,問題原因是Run-Time Check Failure #2 - Stack around the “tWindowString” w

關於“Run-Time Check Failure #2 - Stack around the variable 'xxx' was corrupted”問題

AS 篡改 fail height rup 技術 tac The png 問題如下圖示: 這是因為變量data相應的內存區被篡改造成的。 去掉篡改語句“*data32s = 10;”,問題即消失。關於“Run-Time Check Failure #2 - Stack a

Run-Time Check Failure #2 -Stack around the variable 'width' was corrupted

今天在處理文字檔案讀取時候遇到Run-Time Check failure問題,問題起因如下: 檔案頭中包含了影象的width, height, maxval資訊,我準備通過fscanf()函式將這三個值讀取出來,程式碼為: uint16_t width, height,

Linux下運行Java項目時,出現No X11 DISPLAY variable was set, but this program performed an operation which requires it.的問題解決

per 出現 cnblogs -m performed program this exp code 在~/.bashrc環境變量文件最下方加入: export DISPLAY=:0.0 然後,刷新環境變量以使其生效: source ~/.bashrc

The request sent by the client was syntactically incorrect.(轉載)

gif div button btn brief submit label rect method 這個錯誤是SpringMVC報出來的,見到它意味著html/jsp頁面的控件名稱 和 controller裏函數的參數不符。 好比界面有個這樣的form &l

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server

att sed abs cte gist hang app caused ctp ? 版權聲明:本文為博主原創文章,轉載請註明出處 1.問題描述   搭建SSH框架,啟動時報錯如下: The last packet sent successfully to the ser

每日一水之 luogu2907 [USACO08OPEN]農場周圍的道路Roads Around The Farm

tin etime 輸入輸出 empty arm around class using top 題目描述 Farmer John‘s cows have taken an interest in exploring the territory around the far

FIRMWARE BUG – THE BIOS HAS CORRUPTED HW-PMU RESOURCES

process fun -h corrupted oot ted server ext and If you’re trying to install CentOS 7 on HP server and you receive the error from th

Entity Framework : The model backing the '' context has changed since the database was created

解決方案 als state exp 操作 enabled chan question migration 1.采用code first 做項目時,數據庫已經生成,後期修改數據庫表結構。再次運行時出現一下問題: Entity Framework : The model ba

The database cluster was initialized with RELSEG_SIZE 1048576, but the server was compiled with RELSEG_SIZE 8388608

database physical 都在 script back 對應關系 com 發現 logs   由於一次誤操作,將線上機器的數據庫程序目錄刪除,雖然不影響程序的正常使用,數據也未丟失,但後面如果出現服務器宕機或數據庫宕機,數據庫將無法啟動,而且數據庫對應的編譯參數也

freemind 運行就報錯~"The registry refers to a nonexistent Java Runtime Environment installation or the runtime is corrupted."

隨著 進行 freemind refers es2017 無法 希望 ges 生成 最近在安裝使用freemind的時候,安裝下來無法使用,打開後立馬報錯~ 錯誤原因: 更新jdk以後,註冊表裏面沒有隨著更新jdk的版本和位置; 絕對可行的方法: 1. 進入控制面板--程

The application was unable to start corretyy(0xc000007b) . Click OK to close the appliction

close image ima com bubuko cti mage info 分享 The application was unable to start corretyy(0xc000007b) . Click OK to close the appliction

錯誤400-The request sent by the client was syntactically incorrect

null row mvc 出了 ash get service fault ogre 出錯部分是學習SpringMVC 時學習https://my.oschina.net/gaussik/blog/640164,在添加博客文章部分出現了這個問題。 The request

Ajax使用formdata異步上傳文件,報錯the request was rejected because no multipart boundary was found

mgr The 使用 for ... 導致 文件 字符串 pos 基於jQuery的Ajaxs使用FormData上傳文件要註意兩個參數的設定 processData設為false 把processData設為false,讓jquery不要對formData做處理,如果pr

English trip -- VC(情景課)10 B Around the house 在家裏

音樂 reading ase pict src ike with ffffff rip Vocablulary focus 核心詞匯 cook play the guitar listen to music watch TV read magazines work in

[POI2014]DOO-Around the world

通過幾年的努力,Byteasar最終拿到了飛行員駕駛證。為了慶祝這一事實,他打算買一架飛機並且繞Byteotia星球赤道飛行一圈。但不幸的是赤道非常長所以需要中途加幾次油。現在已知赤道上面所有飛機場,所有飛機從飛機場起飛降落也可以加油。因為買飛機是個十分重大的決定,Byteasar決定尋求你的幫助。他將會讓你

springmvc 上傳檔案的時候.The request sent by the client was syntactically incorrect

 出現這個問題的原因,下面這篇文章已經講得很清楚的。 http://blog.csdn.net/kunkun378263/article/details/41863101 我遇到的場景是:MultipartFile上傳檔案,提交表單的時候除了上傳檔案還有幾個數字。我們知

The request was rejected because the URL contained a potentially malicious String ";"報錯解決,

去掉 URL 中討厭的 jsessionid 在Java開發的網站中,經常會出現在URL中包含有jsessionid,用來記錄session。 這是因為如果瀏覽器不支援cookie,JSP容器通過在URL中包含jsessionid來達到session的效果。 第一次訪問的時候伺服器不知道客戶