2

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

所以目前我假设一个非法的内存访问,其中数据被一个线程或类似的东西覆盖。

不幸的是,它只发生在一些更大的数据集上,所以没有办法将整个事情简化为简单的东西。因此,为了找到问题的根本原因,我尝试了 Intel Inspector 2019 - 但它运行缓慢,无法使用。虽然应用程序通常会在使用这些特定数据进行大约 15 分钟的密集计算后显示问题,但在运行该检查器的情况下,我需要等待超过一天 - 并且不确定是否发生崩溃,因为检查器会显着改变整个时间。

所以我的问题是:有没有人有更好的想法/更好的工具来追踪这种非法内存访问的原因?

欢迎安迪的想法!

4

1 回答 1

0

您可以使用应用程序验证程序。在 Basics 选项下选择 Heaps(with Full) 并在 WinDbg 下运行您的程序。您可以找到崩溃发生的确切位置。注意:它会很慢,但会有所帮助。

于 2020-02-28T13:04:24.720 回答