2013-08-16 3 views
0
приложение

C++ получает разбился с основным файлом с указанием ошибкиC++ сбой приложения

 
warning: no loadable sections found in added symbol-file system-supplied DSO at 0x7fff79e54000 
Core was generated by `./server'. 
Program terminated with signal 6, Aborted. 
#0 0x0000003b67230265 in raise() from /lib64/libc.so.6 
(gdb) bt 
#0 0x0000003b67230265 in raise() from /lib64/libc.so.6 
#1 0x0000003b67231d10 in abort() from /lib64/libc.so.6 
#2 0x0000003b6726a9bb in __libc_message() from /lib64/libc.so.6 
#3 0x0000003b6727247f in _int_free() from /lib64/libc.so.6 
#4 0x0000003b672728db in free() from /lib64/libc.so.6 
#5 0x00000000004060df in operator delete (p=0x20030190) at ../lib/m_string.cpp:43 
#6 0x0000000000403892 in TStr::~TStr (this=0x2102c980, __in_chrg=<value optimized out>) at ../lib/m_string.cpp:175 – 

мог в состоянии понять об этой проблеме. Вот ссылка, которую я подтвердил https://bugzilla.redhat.com/show_bug.cgi?id=959013

показывает, что размер файла vdso недостаточен. который находится в пути/proc/self/maps.

, пожалуйста, дайте мне знать, что это за проблема, и предложите исправить это.

+0

Не могли бы вы отредактировать вопрос, чтобы фактически включить обратную линию? –

+0

Вот обратная сторона проблемы. (GDB) BT # 0 0x0000003b67230265 в повышении() из /lib64/libc.so.6 # 1 0x0000003b67231d10 в прерывании() из /lib64/libc.so.6 # 2 0x0000003b6726a9bb в __libc_message() из/lib64/libc.so.6 # 3 0x0000003b6727247f in _int_free() из /lib64/libc.so.6 # 4 0x0000003b672728db in free() из /lib64/libc.so.6 # 5 0x00000000004060df в операторе delete (p = 0x20030190) at ../lib/m_string.cpp:43 # 6 0x0000000000403892 в TStr :: ~ TStr (this = 0x2102c980, __in_chrg = <значение оптимизировано>) на ../lib/m_string.cpp:175 С уважением, Ragu. – ragur

+1

Теперь вы должны показать, что вы делаете в файле 'm_string.cpp' в строке 43 (пожалуйста, покажите функцию * целиком), и, пожалуйста, ** отредактируйте вопрос **, чтобы сделать это. –

ответ

2

, какой вопрос этот

Любой сбой в malloc или free это верный признак предыдущей коррупции кучи.

Используйте Valgrind или AddressSanitizer (также включенные в GCC-4.8), чтобы найти основную причину.

Игнорировать vdso - как сказал Том Тромей, это не имеет никакого отношения к проблеме.

Смежные вопросы