【发布时间】:2012-01-15 05:33:58
【问题描述】:
我在 linux 中使用 c,当我运行 main.c 时出现以下错误:
* 检测到 glibc /asde/pasc/source/cl/weasdashanges/webasdnges: malloc(): 内存损坏: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 命令告诉它在每次写入该位置时中断
【问题讨论】:
-
@kerek SB 我知道,但这不是我的问题。
标签: c linux memory-management memory-leaks g++