c - 在 visual studio 中跟踪变量的变化

标签 c visual-studio-2005 malloc free

我有一个问题,就是要查明谁在 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/

相关文章:

c - 在c中读取1/2/5字符串输入

c - 在 pelles c windows.h 中无法编译

c++ - Visual Studio 2012 中的小程序与 Visual Studio 2005 相比要慢得多

c - 每次执行计数排序都会使我的程序崩溃,无法发现 malloc/free 错误

C - 对包含结构类型的结构进行 malloc/free

c - 在头文件中声明结构

c - execlp() 系统调用输出错误

visual-studio-2005 - 如何在没有紧密链接的数据库连接的情况下使用 Crystal Reports?

c# - 如何从自定义成员资格提供程序中处理自定义对象

visual-c++ - 我必须链接什么才能避免 _aligned_alloc(MSVC 命令行)上的链接器错误?