Всем привет
Хотелось бы получить разъяснения станности работы программы.
Моя программа - демон, сидит в памяти и прекрасно работает, но время от времени происходит крушение по 11 сигналу. Вот что говорит отладчик:
-------------
Program terminated with signal 11, Segmentation fault.
Reading symbols from /usr/lib/mysql/libmysqlclient.so.10...done.
Loaded symbols for /usr/lib/mysql/libmysqlclient.so.10
Reading symbols from /lib/i686/libpthread.so.0...done.
Loaded symbols for /lib/i686/libpthread.so.0
Reading symbols from /lib/i686/libc.so.6...done.
Loaded symbols for /lib/i686/libc.so.6
Reading symbols from /usr/lib/libz.so.1...done.
Loaded symbols for /usr/lib/libz.so.1
Reading symbols from /lib/libcrypt.so.1...done.
Loaded symbols for /lib/libcrypt.so.1
Reading symbols from /lib/libnsl.so.1...done.
Loaded symbols for /lib/libnsl.so.1
Reading symbols from /lib/i686/libm.so.6...done.
Loaded symbols for /lib/i686/libm.so.6
Reading symbols from /lib/ld-linux.so.2...done.
Loaded symbols for /lib/ld-linux.so.2
Reading symbols from /lib/libnss_files.so.2...done.
Loaded symbols for /lib/libnss_files.so.2
#0 0x400e8a21 in chunk_alloc (ar_ptr=0x4019d300, nb=16) at malloc.c:2878
2878 malloc.c: No such file or directory.
in malloc.c
(gdb) up
#1 0x400e8828 in __libc_malloc (bytes=8) at malloc.c:2811
2811 in malloc.c
Current language: auto; currently c
(gdb)
#2 0x0806d76d in __builtin_new (sz=8) at ../../gcc/cp/new1.cc:-1
-1 ../../gcc/cp/new1.cc: No such file or directory.
in ../../gcc/cp/new1.cc
Current language: auto; currently c++
(gdb)
#3 0x0806d8b0 in __builtin_vec_new (sz=8) at ../../gcc/cp/new2.cc:-1
-1 ../../gcc/cp/new2.cc: No such file or directory.
in ../../gcc/cp/new2.cc
(gdb)
#4 0x0804b2a1 in string::string (this=0x4095b90c, Str=@0x4095b9ac, Replace=0x4095b92c "615", Start=1, Length=2)
at string.inc:235
235 theString = new char [length + 1];
(gdb)
---------
Как видно, крушение происходит при выделении памяти, причем, как я понял, в библиотечной функции chunk_alloc(). Происходит это в произвольный момент, код, который тут показан, вызывается довольно часто, памяти на сервере достаточно.
Почему это проиходит и как с этим бороться?
Кто может дать внятные разъяснение и рекомендации?
|