瓦尔格林德内存分析器结果
Valgrind Memory Analyzer results
我是第一次使用Valgrind分析仪。
我有一个很长的程序,所以我不能发布代码。问题是我在运行程序时遇到分段错误,但不一致。我有一个循环,当我运行它进行少量迭代时,程序完成没有错误。当我尝试更多迭代时,我会在不同的地方出现分段错误,具体取决于循环的数量。我在 ubuntu 14.04 的 qt creator 3.0.1 中编写代码。该程序是用c ++编写的,并且还使用了一些opencv库。
当我运行Valgrind内存分析器时,我得到这个输出,但无法真正弄清楚问题是什么。此外,分析器以引号"**未知错误**"结束
Invalid write of size 4 in main in /home/esigalas/qt-workspace/builds/New-Train-SVM-build/main Address 0xffed6e770 is on thread 1's stack
1: main in /home/esigalas/qt-workspace/builds/New-Train-SVM-build/main
Invalid write of size 2 in main in /home/esigalas/qt-workspace/builds/New-Train-SVM-build/main
1: main in /home/esigalas/qt-workspace/builds/New-Train-SVM-build/main
Address 0x30c40d74 is 20 bytes after a block of size 3,392 alloc'd
1: malloc in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so
2: cv::fastMalloc(unsigned long) in /usr/local/lib/libopencv_core.so.2.4.9
3: cv::Mat::create(int, int const*, int) in /usr/local/lib/libopencv_core.so.2.4.9
4: cv::_OutputArray::create(int, int, int, int, bool, int) const in /usr/local/lib/libopencv_core.so.2.4.9
5: cv::Mat::copyTo(cv::_OutputArray const&) const in /usr/local/lib/libopencv_core.so.2.4.9
6: main in /home/esigalas/qt-workspace/builds/New-Train-SVM-build/main
这是一个很难回答的问题,因为您没有提供源代码。是否可以粘贴New-Train-SVM-build/main的源代码?
在任何情况下,调试由内存泄漏引起的分段错误的例程是删除您怀疑导致 seg 错误的所有代码并运行程序,直到 tou 确定不再有内存泄漏。例如,使用 linux 命令 top 检查内存大小是否增加,当您绝对确定程序中没有内存泄漏时,您开始以最少的步骤添加代码并运行程序,直到找到问题的确切原因。
相关文章:
- 为什么"do while"循环不断退出,即使条件计算结果为 false?
- valgrind-hellgrind与泄漏检查的结果不同
- 用C++20 fmt限制结果的总大小
- 如何返回一个类的两个对象相加的结果
- 使用QProcess执行命令,并将结果存储在QStringList中
- 如果我std::dynamic_pointer_cast并且底层dynamic_cast的结果为null,那么返回的sh
- 在没有定义返回类型的函数中返回布尔值,并将结果保存在无错误的char编译中-为什么
- 序列化,没有库的整数,得到奇怪的结果
- 使用取消引用的指针的多态性会产生意外的结果.为什么?
- 在更改for循环的第三部分后,未使用for循环结果
- 使用++运算符会导致意外的结果
- 为什么在逗号分隔符上下文中将预增量的结果强制转换为void
- C++Brute Force攻击函数不会返回结果
- 你好。。。id_public变量不应该给出结果为 81 和 86 吗?为什么它为两个派生类占用不同的内存位置?
- 算术运算的结果类似于:C浮点变量中的1/3
- ";结果类型必须是可从输入范围的值类型""构造的;创建std::vector时
- 密码登录程序将永远循环并显示不正确的结果
- 如何让C++'tally up'结果并制定计划?
- HTML词法分析器在c++中如何打印结果
- 瓦尔格林德内存分析器结果