修改后,C ++文件会给出分段错误错误

时间:2019-05-14 10:25:17

标签: c++ segmentation-fault ubuntu-14.04 buffer-overflow llrp

我在CentOS 7系统(64位)上使用LLRP API编写了一段C ++代码以与RFID阅读器连接,并且运行良好。我将那个非常.cpp的文件复制到了我的Ubuntu 14.04桌面(也是64位)上,并在“ make”创建文件后成功运行。

当我尝试编辑.cpp文件时,就会出现此问题。即使插入或删除单个字符/空格/注释也会导致“分段错误(核心转储)”。

.cpp文件可以在编辑后通过“ make”成功保存和编译,但是使用./segmentation fault运行可执行文件时出现。

我正在使用简单的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 个答案:

没有答案