2013-07-20 2 views
1

Что может быть причиной для сбоя/выхода программы перед вводом функции main()?Моя программа выходит до ввода функции main()

Я работаю над проектом, который работал нормально. Я добавил код, который использует потоки boost, я обновил make-файлы (CMakeLists.txt), и все компилируется и связывается без проблем.

Когда я запускаю исполняемый файл, все, что я получаю, это приглашение.

Чтобы проверить, запускаются ли какие-либо программы, я добавляю cerr << "TEST" << endl в качестве первой инструкции в main(), и ничего не печатается.

Конечно, когда я пытаюсь напечатать эту строку, нить не создается.

Ввод точки останова в начале main() бесполезен.

система:
Windows 7, MinGW, GCC, CMake

+1

Каков был код? – Rapptz

+1

Возможно, вы захотите использовать 'gdb' :) – spinus

+1

Скорее всего, причина в некоторой статической инициализации или попытка загрузить не найденную DLL. –

ответ

4

Проблема, вероятно, в конструктор некоторого глобального классового varible в. Они будут вызваны до main.

0

Еще один возможный случай - выход был кеширован, а процесс аварии после ввода main, пожалуйста, добавьте вывод флеш-памяти здесь после строки с выводом, или вы можете перепечатать его 1000 раз, чтобы убедиться, что он не кэшируется.

В этом случае простой способ - запустить его в отладчике, он будет кэшировать ошибку.

+2

'cerr', как правило, не буферизуется именно по этой причине. И в любом случае «endl» должен очистить поток, после чего сообщение будет отправлено и будет выводиться (запрет сбоя всей ОС). – cHao

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