在Visual Studio中查找非法内存访问

问题描述 投票:2回答:1

我有一个(复杂的)多线程应用程序,使用某些特定的数据会导致崩溃。崩溃发生在随机位置,很明显崩溃的原因不是原因。

因此,我现在假设一个非法的内存访问,其中的数据被一个线程或类似的东西覆盖。

不幸的是,它仅在某些较大的数据集上发生,因此无法将整个过程分解为简单的东西。因此,要找到问题的根本原因,我尝试了Intel Inspector 2019-但速度慢是无法使用的。尽管应用程序通常在使用这些特定数据进行大约15分钟的密集计算后会显示该问题,但在运行该检查器的同时,我需要等待一天以上的时间-并不确定崩溃是否会发生,因为检查器会大大改变整个时间。

所以我的问题是:有没有人有更好的主意/更好的工具来追踪此类非法内存访问的原因?

欢迎安迪的想法!

c++ c visual-studio visual-studio-2015 intel-inspector
1个回答
0
投票

您可以使用应用程序验证程序。在“基本”选项下选择“堆(带有完整)”,然后在WinDbg下运行程序。您可以找到崩溃发生的确切位置。注意:这会很慢,但会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.