Файл C++ дает ошибку ошибки сегментации после любых изменений
Я написал фрагмент кода C++ для соединения с RFID-ридером с использованием LLRP API в системе CentOS 7 (64-битная версия), и он работал отлично. Я взял этот самый файл.cpp и скопировал его на свой рабочий стол Ubuntu 14.04 (в том числе 64-битный), и после "make" -ing файл успешно запускается.
Проблема возникает, когда я пытаюсь отредактировать файл.cpp. Даже вставка или удаление одного символа / пробела / комментариев приводит к "ошибке сегментации (дамп ядра)".
Файл.cpp может быть успешно сохранен и скомпилирован с помощью "make" после редактирования, но при запуске исполняемого файла с использованием./ происходит ошибка сегментации.
Я использую простой gedit и vim ничего другого. Я предполагаю, что проблема связана с тем, как обе операционные системы обрабатывают текстовые символы. Есть какие-нибудь подсказки?
Больше наблюдений ---
Согласно предложениям, я попытался, удалив все коды и сохранил только -
int main()
{
}
И код прошел успешно. Так в чем же может быть проблема сейчас?
* БОЛЬШЕ ДЕТАЛЕЙ *
Following is the code snippet that is under suspicion -
/*
* Check to make sure the message is of the right type.
* The type label (pointer) in the message should be
* the type descriptor for READER_EVENT_NOTIFICATION.
*/
if(&CREADER_EVENT_NOTIFICATION::s_typeDescriptor != pMessage->m_pType)
{
goto fail;
}
printf("Hello from check\n");
/*
* Now that we are sure it is a READER_EVENT_NOTIFICATION,
* traverse to the ReaderEventNotificationData parameter.
*/
pNtf = (CREADER_EVENT_NOTIFICATION *) pMessage;
printf("Hello from check 2\n");
printf("Hello from check 3");
pNtfData = pNtf->getReaderEventNotificationData();
if(NULL == pNtfData)
{
goto fail;
}
Выход -
2902Z-001 / RFID / example #./example1 -v 169.254.209.30 124 5 INFO: Подключение к 169.254.209.30.... 6 7 INFO: Подключено, проверка статуса.... 8 9 Привет из проверки Привет из проверки 2 Ошибка сегментации (ядро сброшено)
Очевидно, что существует некоторая проблема между "Hello check 2" и "Hello check 3"
Это случай возможного переполнения буфера?