c++ - 遇到值时中断

标签 c++ visual-studio-2010 debugging breakpoints

好吧,我要冒险了,因为我不确定这个功能是否存在,但如果不存在,它可能应该存在。这是我所知道的:

在代码的某处,读取了一大块数据。我正在尝试找到那部分代码。 (我们在这里谈论的是一个巨大的代码库——近 300 个项目中的数万个文件。甚至无法开始猜测代码行——每个文件 2000-3000 行并不少见,所以这是真正的针/haystack 领土。)我知道此数据包含特定的可识别字符串。我希望能够在任何内存块设置为该字符串时设置断点。

我不知道的是:

我不知道这个字符串存储在什么地方,甚至不知道它是否存储在任何地方,所以我无法在内存地址或变量上设置断点。我所知道的是,至少在很短的一段时间内(可能不超过一个函数的范围,或者甚至只是 for 循环的一次迭代),这个值存在于某处。字符串本身可能被代码忽略,只存储伴随的数据,但字符串必须在某个时刻存在于内存中。

我显然不能设置一个常规的断点,因为如果我知道把那个断点放在哪里,我就已经有了我需要的东西,就没有必要采取这样的措施了。我什至不知道这段代码出现在哪个项目中,更不用说哪个文件或该文件中的什么函数了——这就是我想要弄清楚的。

这只是一厢情愿吗?还是有一些简单的方法可以做这种事情?

最佳答案

使用 Microsoft(以前是 SysInternals)的 Process Monitor 来监控文件 I/O。如果您正确配置了符号(您的和 Microsoft 的),那么 Process Monitor 将显示与每个文件 I/O 操作关联的堆栈跟踪。

关于c++ - 遇到值时中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12675185/

相关文章:

c++ - 这部分代码是否需要互斥体?

c++ - GoogleTest 测试未开始

c# - 防止可聚焦控件窃取键盘输入

html - 使用一些 html 从 Qt 中打开默认邮件应用程序

c++ - 重置流的状态

c# - 在 Visual Studio 2010 中设计报表的教程?

c# - gridview 中的 ASP.NET C# 代码按钮

debugging - 如何从扩展程序登录 Firebug?

.net - Console.WriteLine 去哪里调试?

c - C 简介 : Addition and Looping