将IBM C++编译器从xlc_R 10.0升级到11.1后出现的问题

Problems after upgrading IBM C++ compiler from xlc_R 10.0 to 11.1

本文关键字:问题 0升 编译器 C++ IBM xlc      更新时间:2023-10-16

一切都编译得很好,但在运行时,它崩溃了,没有任何核心转储、异常或日志线索。插入调试行后,我发现它就在的这段代码附近

if( MISC_TABLE_ID != tableID )
{
OrbSchemaStructure orbSchemaStruct;
orbSchemaStruct.tableName = tableView;
orbSchemaStruct.columnName = colName;
orbSchemaStruct.dataType   = tsFact->convertDBDataTypeToEVDataType( toString( col.type() ) );
orbSchemaStruct.primaryKeyComponent = pkComponent;
schemaStructureDeque.push_back( orbSchemaStruct );  //crashes after this line
}

它发生在这个区块的最后一行,也就是push_back发生的地方。

而CCD_ 1恰好是类型为CCD_。

OrbSchemaStructure是一个在idl中定义的结构,如下所示:

struct OrbSchemaStructure
{
string        tableName;
string        columnName;
unsigned long dataType;
boolean       primaryKeyComponent;
};

处理deques的方式有什么变化吗?我是不是错过了什么?

在把这个问题写为过于本地化之前,如果我遗漏了任何信息,或者我找不到合适的地方,请告诉我。

我正在使用omniORB 4.0.4 btw.

在AIX上的omniORB中使用新的AIX 11.1 C++编译器进行编译并将其与二进制文件链接时,它已经停止崩溃。