Файл C ++ дает ошибку ошибки сегментации после любых изменений - PullRequest
0 голосов
/ 14 мая 2019

Я написал фрагмент кода 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 / пример # ./example1 -v 169.254.209.30 124 5 ИНФОРМАЦИЯ: Подключение к 169.254.209.30 .... 6 7 ИНФОРМАЦИЯ: Подключен, проверка status .... 8 9 Привет из проверки Привет из проверки 2 Ошибка сегментации (ядро сброшено)

Итак, существует определенная проблема между «Привет чек 2» и «Привет чек 3»

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

...