我在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”之间存在一些问题
这是否可能是缓冲区溢出?