Файл 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"

Это случай возможного переполнения буфера?

0 ответов

Другие вопросы по тегам