簡體   English   中英

運行時錯誤檢查/ RTC

[英]Run-Time Error Checks /RTCs

我在應用程序的/ RTC中啟用了檢測堆棧損壞的問題。 該應用程序具有許多組件(dll),總LOC約為40K。 它有很多線程。

最初,我在執行18000次循環后就崩潰了。 但是啟用/ RTCs選項后,我得到的范圍是100 cyles。 崩潰總是發生在稱為“接收方線程”的線程中。 但是它在3個或4個位置始終崩潰。 當崩潰發生時,在某些情況下幾乎所有局部變量看起來都已損壞。 但是我無法確定根本原因,因為我看不到崩潰發生時的任何問題。

我該怎么辦才能縮小堆棧損壞的程度?
該代碼具有try catch語句,是否會阻止查明原因?

請幫我

謝謝!

編輯:您是否正在使用優化:

如果使用/ RTC編譯器選項中的任何一個在命令行上編譯程序,則代碼中的任何編譯指示優化指令都將無提示地失敗。 這是因為運行時錯誤檢查在發行版(優化)版本中無效。

您應該使用/ RTC進行開發; / RTC不應用於零售版本。 / RTC不能與編譯器優化一起使用(/ O選項(優化代碼))。 用/ RTC構建的程序映像比用/ Od構建的映像要大一些,也要慢一些(比/ Od構建要慢5%)。

如果不發布任何代碼,我只能建議通用工具。

我在Linux上使用valgrind --tool=helgrind進行這種操作,但是從您的問題中我猜測您在Windows上。

您可能會發現以下問題的答案很有用: 是否有Windows的Valgrind替代品?

(如果將代碼發布到您遇到問題的地方,或者指出您使用了哪些方法來保護似乎已損壞的變量(互斥變量等),這可能會有所幫助)

暫無
暫無

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

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