2014-09-09 2 views
0

Итак, я пишу приложение для встроенной системы (Linux on ARM), и все работает нормально, пока я не решит добавить еще один класс в начале основной функции. Похоже, что это (не может опубликовать фактический код здесь):Неизвестная ошибка приложения

int main() 
{ 
    Someclass class1; 
    .... 
} 

И после этого приложения просто возвращают код 1 (общая ошибка) с самого начала. Если я удалю его, все будет хорошо. Мне кажется, что у меня закончилось пространство стека, но в этом случае система должна выбросить SIGSEV или SIGSTKFLT. Но не было ничего, кроме кода ошибки 1. Я попытался получить stderr следующим образом:

./app 2> error.log 

Но ничего не было.

Пробовал отладки с использованием удаленного GDB:

Клиент:

не удается получить доступ к памяти по адресу 0x3030204

не удается получить доступ к памяти по адресу 0x3030200

Сервер:

Удаленная отладка с хост xxxxxx

readchar: Got EOF

Удаленная сторона имеет прекращенное соединение.

Детали:

I`m wirting на C++ 11 (TR1) (конкретного проекта), компиляции с GCC 4.4.6 (также в рамках конкретных проектов), отладки с помощью GDB 7.4

Решено Большое спасибо всем, кто ответил, мне удалось решить эту проблему, и это была моя ошибка - я не инициализировал библиотеки устройств правильно, прежде чем вызывать класс-оболочку (позже они были инициализированы и, следовательно, они работали). Еще раз спасибо.

+0

Информация о ваших классах может помочь. вы с системой C++ включены? –

+0

Я тебя совершенно не понимаю. Если вы говорите о стандартных библиотеках C++ - да, они есть. – user3177112

+0

вы можете использовать 'ldd' в исполняемом файле? удовлетворяются ли все зависимости? –

ответ

0

Наиболее очевидное место для поиска было бы в конструкторе класса, который вызывается при вызове main.

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