c++ - 如何调试 C++ 内存错误?

标签 c++

valgrind 是否与 STL 分配器一起工作?我以以下方式将 STL vector 与纯 C 库一起使用:

double some_C_functions(int, double*);

std::vector<double> v;
.....
double result = some_C_functions(v.size(), &v[0]);

如果 C 函数试图超过指针怎么办? valgrind 能否检测到错误?

最佳答案

Valgrind 应该仍然能够检测到这一点,因为它 Hook 到内存管理中,对于 C 或 C++,内存管理仍然进入同一个堆。显然,很难(呃)检测到错误的读取。

关于c++ - 如何调试 C++ 内存错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7363410/

相关文章:

c++ - 为什么需要前向声明?

c++ - 对于 C++14 中不确定值和未定义行为的使用,C++ 标准是否发生了变化?

c++ - fontconfig 找不到字体

C++ 和 .sys 文件

java - 从 Java 到 C++ 的快速数组转换

c++类默认属性

c++ - 我如何将 boost::array 转换为 boost::shared_ptr

c++ - 数组 C++ 中的快速排序

c++ - 我可以使用指针分配以安全的方式检测线程的开始吗?

c++ - 使用 C++ 如何在 mac osx Finder 中显示覆盖图标