2016-04-27 82 views
1

我试图找到在总是似乎发生在某个页面限制(像0x06B12000地址)的库内的访问冲突的原因。在页面分配的Visual Studio断点

现在我正在尝试跟踪页面分配情况,以确定程序是否在某点出错,但VirtualAlloc似乎只在程序启动过程中被调用了几次,而不是稍后。

我错过了什么吗?

+0

尝试使用特定的工具进行工作。启用CRT调试堆可能是一个好的开始。 – SergeyA

+0

查看Microsoft的Application Verifier。它有选项来隔离不同页面中的分配,前后有保护空间(未分配页面)。 –

+0

我没有管理员权限在我的机器上。 – user5024425

回答

0

您可以通过“Break at Function”在malloc上设置断点。 Studio为其运行时库提供了一些源代码,因此您可以在其中进行调试。

一旦你命中这个断点,你可以添加一个条件,使它只有当返回的内存包含你正在寻找的地址时才触发。 类似于(res <= 0x....) && (0x.... < res + nSize)。这将适用于VS2010调试版本。

版本构建比较困难,因为一些局部变量只保存在寄存器中。