尽管系统有大量可用内存,但在执行 malloc 时 fopen 在 RHEL 5.x 中崩溃

拉维

我有一个应用程序在过去 15 天内运行良好,以下函数被多次调用,但今天在 fopen 中崩溃了。我已经粘贴了下面的 bt,有人可以建议可能发生了什么错误,从回溯来看,它似乎不是内存损坏,因为所有线程数据和堆栈变量看起来都不错。是否与 RHEL 5.x 中的某些错误有关

>>(gdb) bt
>>#0  0x00fe4410 in __kernel_vsyscall ()
>>#1  0x0057ab10 in raise () from /lib/libc.so.6
>>#2  0x0057c421 in abort () from /lib/libc.so.6
>>#3  0x005b367b in __libc_message () from /lib/libc.so.6
>>#4  0x005bc8bd in _int_malloc () from /lib/libc.so.6
>>#5  0x005be247 in malloc () from /lib/libc.so.6
>>#6  0x005aa8ef in __fopen_internal () from /lib/libc.so.6
>>#7  0x005aa9bc in fopen@@GLIBC_2.1 () from /lib/libc.so.6
>>#8  0x0811cbff in file_timer_expiry (p_mod_ctx=0xb07e4c8, p_timer_ctx=0x7ce78368) 
>>#9  0x08117c33 in timer_handler (timerId=0xad54aa50, p_timer_info=0x7ce78368, p_module_context=0xb07e4c8)
>>#10 0x08397b43 in ProcessTimerTable (vc=0xae6edb8, nw=0xa89fd380)
>>#11 0x0839974c in Schedule (nw=0xa89fd380, f=0x832027e <BaseUpdate>, ctxt=0x9955e98)
>>#12 0x080730a1 in DriverWhile (p_info=0x95f68c8, W=0x84a698c, policy=2 '\002')
>>#13 0x080732e1 in start_id (args=0x95f68c8)
>>#14 0x006e7912 in start_thread () from /lib/libpthread.so.0
>>#15 0x0062747e in clone () from /lib/libc.so.6
>>#16 0x00000000 in ?? ()
受雇俄语

内部malloc实现崩溃是(在 99.99% 的情况下)堆损坏的结果。

很可能你的程序已经打印了一条消息,类似于

glibc detected ./a.out: double free or corruption (!prev): 0x0000000000c6ed50

到它运行的终端。

要查找堆损坏,请使用Valgrind或(更好的)Address Sanitizer(由最新版本的 GCC 和 Clang 支持)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

尝试创建 ofstream 或 fopen 时程序崩溃

来自分类Dev

尽管有足够的可用内存,但malloc()失败

来自分类Dev

预期“执行[启用RHEL rhel7-x86_x64-linux-custom] [执行]以在Chef运行中运行

来自分类Dev

尝试加载链表时 Malloc 崩溃

来自分类Dev

XCode 5.x + Maverick在文件操作时崩溃

来自分类Dev

为什么malloc()分配的内存比要求的多,并且如何在Mac OS X中禁用malloc?

来自分类Dev

如何将时区从RHEL 5.x恢复到RHEL 7.x?

来自分类Dev

我如何正确处理C中的malloc失败,尤其是当有多个malloc时?

来自分类Dev

我遇到了fopen_s的内存泄漏,但是没有“新”或“ malloc”的内容

来自分类Dev

在RHEL 5 + gvim中设置编程字体

来自分类Dev

使用一些 malloc-ed 内存而不是使用文件来虚拟化 fopen

来自分类Dev

malloc中的内存泄漏?

来自分类Dev

malloc中的内存泄漏

来自分类Dev

执行AsyncTask doInBackground()时在android中崩溃

来自分类Dev

php fopen在ubuntu文件系统中

来自分类Dev

TI LM4F120,GNU ARM GCC eabi和malloc:调用malloc时崩溃

来自分类Dev

释放后malloc时无系统调用

来自分类Dev

IF语句在RHEL 6中不起作用(在RHEL 5中工作)

来自分类Dev

RHEL 5中的LVM和RHEL 6中的LVM之间的差异

来自分类Dev

IF语句在RHEL 6中不起作用(在RHEL 5中工作)

来自分类Dev

X Storyboard打开时崩溃

来自分类Dev

如何配置RHEL5或RHEL6系统使用ldap进行身份验证?

来自分类Dev

使用malloc()进行内存分配时出错,只能向表中添加一项

来自分类Dev

当我尝试在 Android Kitkat 4.4.4 中启动时应用程序崩溃,但在 Android 5 和 6 版本中运行良好

来自分类Dev

在线程中执行malloc

来自分类Dev

如何知道尝试打开文件时是否有错误(在C中使用fopen时)

来自分类Dev

malloc()函数崩溃

来自分类Dev

iOS中NSMutableArray没有对象时应用崩溃

来自分类Dev

Autofac Dependency Resolver有时在控制器解析MVC 5时崩溃(DependencyResolutionException)

Related 相关文章

  1. 1

    尝试创建 ofstream 或 fopen 时程序崩溃

  2. 2

    尽管有足够的可用内存,但malloc()失败

  3. 3

    预期“执行[启用RHEL rhel7-x86_x64-linux-custom] [执行]以在Chef运行中运行

  4. 4

    尝试加载链表时 Malloc 崩溃

  5. 5

    XCode 5.x + Maverick在文件操作时崩溃

  6. 6

    为什么malloc()分配的内存比要求的多,并且如何在Mac OS X中禁用malloc?

  7. 7

    如何将时区从RHEL 5.x恢复到RHEL 7.x?

  8. 8

    我如何正确处理C中的malloc失败,尤其是当有多个malloc时?

  9. 9

    我遇到了fopen_s的内存泄漏,但是没有“新”或“ malloc”的内容

  10. 10

    在RHEL 5 + gvim中设置编程字体

  11. 11

    使用一些 malloc-ed 内存而不是使用文件来虚拟化 fopen

  12. 12

    malloc中的内存泄漏?

  13. 13

    malloc中的内存泄漏

  14. 14

    执行AsyncTask doInBackground()时在android中崩溃

  15. 15

    php fopen在ubuntu文件系统中

  16. 16

    TI LM4F120,GNU ARM GCC eabi和malloc:调用malloc时崩溃

  17. 17

    释放后malloc时无系统调用

  18. 18

    IF语句在RHEL 6中不起作用(在RHEL 5中工作)

  19. 19

    RHEL 5中的LVM和RHEL 6中的LVM之间的差异

  20. 20

    IF语句在RHEL 6中不起作用(在RHEL 5中工作)

  21. 21

    X Storyboard打开时崩溃

  22. 22

    如何配置RHEL5或RHEL6系统使用ldap进行身份验证?

  23. 23

    使用malloc()进行内存分配时出错,只能向表中添加一项

  24. 24

    当我尝试在 Android Kitkat 4.4.4 中启动时应用程序崩溃,但在 Android 5 和 6 版本中运行良好

  25. 25

    在线程中执行malloc

  26. 26

    如何知道尝试打开文件时是否有错误(在C中使用fopen时)

  27. 27

    malloc()函数崩溃

  28. 28

    iOS中NSMutableArray没有对象时应用崩溃

  29. 29

    Autofac Dependency Resolver有时在控制器解析MVC 5时崩溃(DependencyResolutionException)

热门标签

归档