+ -
当前位置:首页 → 问答吧 → 小弟问个无聊的问题....................

小弟问个无聊的问题....................

时间:2010-09-27

来源:互联网

ubuntu9.10下面编译程序成功,并且能够运行,可是按下Ctl+C的时候出现这样的一些东西:
*** glibc detected *** ./IQBoard: double free or corruption (!prev): 0x0934b180 ***
======= Backtrace: =========
/lib/tls/i686/cmov/libc.so.6[0xf43ff1]
/lib/tls/i686/cmov/libc.so.6[0xf456f2]
/lib/tls/i686/cmov/libc.so.6(cfree+0x6d)[0xf4879d]
/usr/lib/libX11.so.6(XFreeGC+0xac)[0x12c0ac]
/usr/lib/libX11.so.6(XCloseDisplay+0x64)[0x125144]
./IQBoard[0x8049410]
[0xe4e400]
/lib/libglib-2.0.so.0(g_poll+0x2b)[0xb5b54b]
/lib/libglib-2.0.so.0[0xb4e56b]
/lib/libglib-2.0.so.0(g_main_loop_run+0x1bf)[0xb4eb9f]
/usr/lib/libgtk-x11-2.0.so.0(gtk_main+0xb9)[0x672419]
./IQBoard[0x8049a42]
/lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe6)[0xeefb56]
./IQBoard[0x80491d1]
======= Memory map: ========
00110000-0023a000 r-xp 00000000 08:01 3515 /usr/lib/libX11.so.6.2.0
0023a000-0023b000 ---p 0012a000 08:01 3515 /usr/lib/libX11.so.6.2.0
0023b000-0023c000 r--p 0012a000 08:01 3515 /usr/lib/libX11.so.6.2.0
0023c000-0023e000 rw-p 0012b000 08:01 3515 /usr/lib/libX11.so.6.2.0
0023e000-0023f000 rw-p 00000000 00:00 0
0023f000-0025a000 r-xp 00000000 08:01 3605 /usr/lib/libatk-1.0.so.0.2809.1
0025a000-0025b000 r--p 0001b000 08:01 3605 /usr/lib/libatk-1.0.so.0.2809.1
0025b000-0025c000 rw-p 0001c000 08:01 3605 /usr/lib/libatk-1.0.so.0.2809.1
0025c000-0025e000 r-xp 00000000 08:01 132611 /lib/tls/i686/cmov/libdl-2.10.1.so
请问是怎么回事。其中IQBoard是可运行程序的文件名,用到的gcc选项有: -lX11 -lpthread `pkg-config --cflags --libs gtk+-2.0`
在ctl+c的信号中有做处理,但只是简单的调用exit而已。按下ctl+c信号的时候就出现上面那些东西。是不是gcc环境的时候出来些问题呢。
我gcc是这样写的:
gcc -Wall -g -c board.c -o board.o lpthread `pkg-config --cflags --libs gtk+-2.0`
gcc -Wall -g main.c board.o -o IQBoard -lX11 -lpthread `pkg-config --cflags --libs gtk+-2.0`

作者: cr4315   发布时间: 2010-09-27