仅记录个人使用中遇到的问题,可能不会很多,以后慢慢补充

Valgrind问题总结

  • 1.Conditional jump or move depends on uninitialised value(s)
  • 2.xxx blocks are still reachable in loss record xxx of xxx
  • 3.still reachable: xxx bytes in xxx blocks
  • 4.Invalid free() / delete / delete[]
    • 4.1非法释放野指针
    • 4.2重复释放内存
    • 4.3此问题补充
  • 5.Invalid write of size xxx
  • 6.FILE DESCRIPTORS: xx open at exit.
  • 7.xx bytes in 1 blocks are definitely lost in loss record xx of xx

1.Conditional jump or move depends on uninitialised value(s)

某些变量未初始化,检查一下数组/class/struct有没有赋初值,或者说看看初始化的大小是否为正确的大小,下面信息会提示在哪个函数里面。

2.xxx blocks are still reachable in loss record xxx of xxx

程序员创建的内存块没有被主动释放,注意使用后的malloc/calloc内存要free,这种情况一般不会造成什么大问题。当然,另一个层面上的"still reachable"的意思是程序中的某个指针丢失,无法指向原来的内容,则无法释放,才是真正意义上的内存泄漏。

3.still reachable: xxx bytes in xxx blocks

和上面的情况类似,可能是malloc或者calloc后未释放(free),或者打开的文件忘了fclose,具体情况可以在valgrind运行命令后加上-show-reachable=yes看看问题出在哪里

4.Invalid free() / delete / delete[]

这个时候就分两种情况了。

4.1非法释放野指针

非法释放野指针的话就会有这样的提示在第三行:by 0xyyyyyyyy: mem_free_wild_pointer (in 你的程序路径),不知道野指针是啥的自己百度。

4.2重复释放内存

重复释放内存的提示稍有不同:by 0xyyyyyyyy: mem_double_free (in 你的程序路径),这个报错的意思就是你double free(即重复释放同一块内存)了,检查一下重复free的情况,只free一次即可。

4.3此问题补充

此报错下面还有一部分,就是类似于Address 0xxxxxxxx is 0 bytes inside a block of size 1 free'd这种提示,无伤大雅。

5.Invalid write of size xxx

动态内存越界,下面还有Address 0xxxxxxxxx is 0 bytes inside a block of size 1 alloc'd,可以检查一下数组下标之类的。

6.FILE DESCRIPTORS: xx open at exit.

文件指针未关闭,类似这样提示的不用管:

Open file descriptor 0: /dev/pts/4
<inherited from parent>

真正有问题的提示,下面还会给一堆信息告诉你在哪,一般从下往上开始读,比如:

Open file descriptor 3: test.txt
at xxxxxxxx
by xxxxxxxx
by xxxxxxxx
......

7.xx bytes in 1 blocks are definitely lost in loss record xx of xx

这个是说下面提示信息中的内存"definitely lost"(肯定泄露),一般也是类似于malloc了没有free

Linux:开发:valgrind报错问题总结(2022新)相关推荐

  1. Linux Lernel Panic 报错解决思路

    Linux Kernel Panic 报错解决思路 作为系统管理员面对server重启都起不来,那是一个相当烦躁,接显示器查看经常会碰到遇到这样的字眼"Kernel Panic" ...

  2. linux 编译报错 not a directory,Linux常见英文报错中文翻译

    Linux常见英文报错中文翻译(菜鸟必知) 1.command not found 命令没有找到 2.No such file or directory 没有这个文件或目录 3.Permission ...

  3. Linux Kernel Panic报错解决思路

    Linux虽然没有蓝屏现象,不过Kernel报错有时也会让人头疼.有时重启后正常,linux系统运行一段时间后又down了,总不能出现问题就reboot啊.我从网上搜集一下资料,整理了出来,希望大家能 ...

  4. Linux安装Apache报错:Cannot find a valid baseurl for repo: base/7/x86_64解决方案

    Linux安装Apache报错:Cannot find a valid baseurl for repo: base/7/x86_64解决方案 参考文章: (1)Linux安装Apache报错:Can ...

  5. linux 启动rabbitmq 报错:

    linux 启动rabbitmq 报错: Job for rabbitmq-server.service failed because the control process exited with ...

  6. 阿里云主机安装开发工具包报错处理

    环境: 阿里云主机系统版本:Centos6.2 x64 错误: 安装开发工具包报错,使用163yum源: # yum  groupinstall   "Development tools&q ...

  7. 在Linux执行命令报错”Arg list too long”的原因分析

    http://www.yunweipai.com/archives/558.html 在Linux执行命令报错"Arg list too long"的原因分析 吞拿鱼手卷 于 3 ...

  8. Linux常见英文报错中文翻译(菜鸟必知)

    Linux常见英文报错中文翻译(菜鸟必知) 1.command not found 命令没有找到 2.No such file or directory 没有这个文件或目录 3.Permission ...

  9. 【报错解决】linux网络编程报错storage size of ‘serv_addr’ isn’t known解决办法

    linux网络编程报错storage size of 'serv_addr' isn't known解决办法 报错如下: server.c:18:21: error: storage size of ...

最新文章

  1. 在UE5创造一个多山的松树森林场景学习教程
  2. 完整代码+实操!手把手教你操作Faster R-CNN和Mask R-CNN
  3. 【控制】《现代控制理论》谢克明老师-目录
  4. VC++ MFC单文档应用程序SDI下调用glGenBuffersARB(1, pbo)方法编译通过但执行时出错原因分析及解决办法:glewInit()初始化的错误...
  5. 知乎的 Flink 数据集成平台建设实践
  6. matlab 的均值t检验,用MATLAB做T检验(ttest)
  7. 开车走吗?朋友......
  8. 飞秋文件传输模拟实现代码
  9. 阿里文娱技术专家战獒: 领域驱动设计详解之What, Why, How?
  10. python两个字典合并、相同key值保留_Python两个字典key相同的值组成新字典?
  11. 李彦宏、王海峰等成为工程院院士候选人选
  12. python构建huffman树_python:哈夫曼树,PythonHuffuman
  13. 《Effective STL中文版》译序
  14. RNN、LSTM、GRU
  15. 技巧:使用User Control做HTML生成(转)
  16. Apache Tomcat选择哪个版本好?
  17. 局域网搭建git服务器
  18. 解决外网下载速度过慢问题
  19. MySOL(狂殴26K字只为博君一赞)
  20. 云服务器系统结构图,云服务器系统结构图

热门文章

  1. 明朝那些事(三言二拍)
  2. CDH框架搭建【小白易上手】
  3. stc89c52rc单片机点亮LED------汇编
  4. 读书笔记:《成为技术领导者 掌握全面解决问题的方法》
  5. jQuery伪类选择器
  6. C,数组声明、初始化,不初始化会如何?
  7. matplotlib 中颜色、线型、标记说明
  8. 网络安全、安全服务、加密原理及加密流程
  9. 新电脑改win7系统如何调整bois的方法总结
  10. html 抽奖的页面,html网页抽奖