Форум программистов, компьютерный форум CyberForum.ru

Runtime Error, Signal 6 - C++

Восстановить пароль Регистрация
 
EndWar
19 / 19 / 3
Регистрация: 17.05.2013
Сообщений: 72
15.09.2013, 19:01     Runtime Error, Signal 6 #1
вопрос скорее теоретический, чем практический
чем может быть вызван RE с возвращенным значением 6?
нашел англоязычный сайт с таблицей сигналов. там сказано, что этот сигнал вызывают библиотечные функции.. но в сторону каких функций хоть копаться? если бы был 11 код, я бы сразу понял что копать надо в сторону распределения динамической памяти.. а тут... черт ногу сломишь, если учесть что кроме cin,cout,new и delete ничего не используется..
буду рад любым умным советам)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.09.2013, 19:01     Runtime Error, Signal 6
Посмотрите здесь:

Runtime Error C++
C++ Почему runtime error
runtime error C++
C++ Укажите на ошибку - при запуске runtime error
C++ Ошибка компиляции Runtime error
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
15.09.2013, 19:14     Runtime Error, Signal 6 #2
очень интересный и увлекательный вопрос, но хотя бы какая ОС?
Судя по складности изложения неплохо бы приложить скриншот
EndWar
19 / 19 / 3
Регистрация: 17.05.2013
Сообщений: 72
15.09.2013, 19:24  [ТС]     Runtime Error, Signal 6 #3
alex_x_x,
"Status:
Runtime error at test 11.t, got signal 6" - результат тестирования кода.. больше информации об ошибке нет
При проверке используется компилятор g++ версии 4.x на 64-х битной платформе, работающей под управлением операционной системы семейства Unix.
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
15.09.2013, 19:38     Runtime Error, Signal 6 #4
`ABRT'
6. Process abort.
http://stackoverflow.com/questions/3...gabrt-signal-6
abort() sends the calling process the SIGABRT signal, this is how abort() basically works.

abort() is usually called by library functions which detect an internal error or some seriously broken constraint. For example malloc() will call abort() if its interal structures are damaged by a heap overflow.
вообщем запускаем из под gdb и ловим backtrace
либо тоже самое с coredump

Хотя все зависит от того, что у вас за юникс, если чтото специфическое, то и нужно копать в их сторону
EndWar
19 / 19 / 3
Регистрация: 17.05.2013
Сообщений: 72
15.09.2013, 21:30  [ТС]     Runtime Error, Signal 6 #5
alex_x_x, gdb не сильно поможет, я полагаю
дело в том, что тест, на котором ломается программа и возникает RE №6, неизвестен, известен только результат.. поэтому тема и носит "теоретический" характер, чтобы понять в какую сторону копать.. т.к. все тесты, которые провожу самостоятельно - все поглощаются успешно программой..
данную ссылку видел, но она не сильно помогла.. разве что появился новый вопрос: из комментариев по ссылке я сделал вывод, что ошибка может быть так же связана с динамикой. правильно ли я понял?
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
15.09.2013, 21:50     Runtime Error, Signal 6 #6
EndWar, из-за много чего может быть, например из-за необработанного эксепшена
http://codepad.org/zEN4wf9n

Цитата Сообщение от EndWar Посмотреть сообщение
что ошибка может быть так же связана с динамикой. правильно ли я понял?
в случае с аллокацие/деаллокацией памяти может быть два варианта:
1) libc отлавливает, что программа делает, чтото не то, тогда она вызывает abort() и получается SIGABRT
2) libc не отлавливает и программа получает SIGSEGV

C++
1
2
3
4
5
int main () {
    int* a = new int;
    delete a;
    delete a;
}
Bash
1
2
3
4
5
6
7
8
7fbad5970000-7fbad5971000 rw-p 00000000 00:00 0                                                 
7fbad5971000-7fbad5972000 r--p 0001e000 08:02 327698                     /lib64/ld-2.11.1.so    
7fbad5972000-7fbad5973000 rw-p 0001f000 08:02 327698                     /lib64/ld-2.11.1.so    
7fbad5973000-7fbad5974000 rw-p 00000000 00:00 0                                                 
7fff2fdbf000-7fff2fdd4000 rw-p 00000000 00:00 0                          [stack]                
7fff2fdff000-7fff2fe00000 r-xp 00000000 00:00 0                          [vdso]                 
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]             
[1]    20604 abort      ./a.out
C++
1
2
3
int main () {
    delete (int*)0x1234;
}
Bash
1
2
в•°в”Ђвћ¤  ./a.out                             
[1]    19654 segmentation fault  ./a.out
EndWar
19 / 19 / 3
Регистрация: 17.05.2013
Сообщений: 72
19.09.2013, 14:54  [ТС]     Runtime Error, Signal 6 #7
мм, на будущее, если кто то заглянет сюда в тему, то 6ой Runtime Error может возникать в случае abort от оператора new при выделении слишком большого количества памяти на куче. возможно дело в переполнении? но хз
спасибо пользователю alex_x_x за участие в обсуждении
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.09.2013, 19:11     Runtime Error, Signal 6
Еще ссылки по теме:

C++ Acm.timus Runtime error (access violation)
Ошибка во время исполнения runtime-error C++
C++ Runtime error при выборе одного из пунктов программы

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
19.09.2013, 19:11     Runtime Error, Signal 6 #8
Цитата Сообщение от EndWar Посмотреть сообщение
оператора new при выделении слишком большого количества памяти на куче. возможно дело в переполнении
так это нормально, когда не хватает памяти - new бросает ексепшен bad_alloc
если его никто не обрабатывает - стандартная библиотека вызывает abort
Yandex
Объявления
19.09.2013, 19:11     Runtime Error, Signal 6
Ответ Создать тему
Опции темы

Текущее время: 03:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru