gpt4 book ai didi

c - c 中的内存损坏

转载 作者:行者123 更新时间:2023-11-30 20:49:35 25 4
gpt4 key购买 nike

我在 linux 中使用 c,当我运行 main.c 时,出现以下错误:

* glibc detected /asde/pasc/source/cl/weasdashanges/webasdnges: malloc(): memory corruption: 0x08069098 **

来自 gdb 的回溯如下:它指向函数 dblogin,这很奇怪,因为我很确定这不应该是问题,因为我从未在那里进行过更改。

if ((login = dblogin()) == FAIL)        return 0;

并且此代码在更改之前运行良好。

 (gdb) backtrace
#0 0x0012d422 in __kernel_vsyscall ()
#1 0x002f7651 in raise () from /lib/tls/i686/cmov/libc.so.6
#2 0x002faa82 in abort () from /lib/tls/i686/cmov/libc.so.6
#3 0x0032e49d in ?? () from /lib/tls/i686/cmov/libc.so.6
#4 0x00338591 in ?? () from /lib/tls/i686/cmov/libc.so.6
#5 0x0033b395 in ?? () from /lib/tls/i686/cmov/libc.so.6
#6 0x0033c70b in calloc () from /lib/tls/i686/cmov/libc.so.6
#7 0x001f9cd6 in ?? () from /usr/lib/libsybdb.so.5
#8 0x001edd1a in dblogin () from /usr/lib/libsybdb.so.5
#9 0x0804de13 in ?? ()
#10 0x0804e01b in ?? ()
#11 0x0804bf9f in ?? ()
#12 0x002e3bd6 in __libc_start_main () from /lib/tls/i686/cmov/libc.so.6
#13 0x0804a031 in ?? ()

关于如何找出具体问题有什么想法吗?就像 gdb 命令告诉它在每次写入该位置时中断

最佳答案

使用valgrind找出程序中的内存泄漏。还要更多地使用您的调试器。

如果你想知道某个特定位置是如何被覆盖的,你可以使用gdbwatch命令

关于c - c 中的内存损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8419849/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com