C++;:检查函数是否在某些界限之外更改了内存 有没有一个工具来检测C++函数调用是否改变了特定地址范围之外的内存内容?< /P>

C++;:检查函数是否在某些界限之外更改了内存 有没有一个工具来检测C++函数调用是否改变了特定地址范围之外的内存内容?< /P>,c++,gdb,C++,Gdb,我知道可以使用gdb设置内存观察点;但它们只监视特定位置的变化。相反,我想知道函数调用是否改变了它不应该改变的任何数据。你可以使用像valgrind这样的内存检查器,但据我所知,这样的工具不会捕捉到我的函数更改内存的情况,我知道它不应该更改,但它是由我的应用程序分配的。你查看过valgrind吗?你的意思是要检查函数是否修改了它所使用的某个有效对象不应该被允许修改吗?如果是这样的话,您可能希望了解范围、可见性和常量正确性。1。valgrind将是我已经提到的内存检查选项,对吗?2.我知道函数应该

我知道可以使用
gdb
设置内存观察点;但它们只监视特定位置的变化。相反,我想知道函数调用是否改变了它不应该改变的任何数据。你可以使用像
valgrind
这样的内存检查器,但据我所知,这样的工具不会捕捉到我的函数更改内存的情况,我知道它不应该更改,但它是由我的应用程序分配的。

你查看过valgrind吗?你的意思是要检查函数是否修改了它所使用的某个有效对象不应该被允许修改吗?如果是这样的话,您可能希望了解范围、可见性和常量正确性。1。valgrind将是我已经提到的内存检查选项,对吗?2.我知道函数应该通过指针访问操作某些内存块,我想确保它只修改这个内存块。看看lackey valgrind工具,你可以让它跟踪内存访问: