繁体   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