我有一个问题,就是要查明谁在 Visual Studio 中的一个非常大的代码库中为变量分配内存。 例如: 我有一个结构
struct test
{
char *point;
}*obj;
obj = malloc(sizeof(struct test));
obj->point = malloc(100);
变量 obj
在整个代码中传递,并且在某些地方 obj->point 被重新分配而不释放旧内存。然而,这种情况发生在如此多的地点,以至于无法跟踪到底是哪个地点在做这件事。 visual studio 中是否有保留条件断点的地方,如果旧内存被新内存替换,我会收到通知
最佳答案
如果您想跟踪某个特定对象,则可以在&obj->point
上设置数据断点。每当此指针更改时,调试器都会停止应用程序。
在 Visual Studio 中,在创建 obj 时放置一个常规断点。转到断点窗口并选择“新建->新建数据断点”。对于地址,输入 &obj->point
并选择数据大小(4/8 表示 32/64 位)。
关于c - 在 visual studio 中跟踪变量的变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20344425/