すべてが正常にコンパイルされますが、実行時に、コアダンプ、例外、または何が起こっているかについてのログの手がかりなしでクラッシュします。デバッグ行を挿入した後、コードのこのセクションの周りにあることがわかりました
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 が発生するこのブロックの最後の行で発生しています。
schemaStructureDeque
たまたまDEQUE< OrbSchemaStructure >& schemaStructureDeque
DEQUE が std::deque の定義である型のオブジェクトです。
OrbSchemaStructure は、次のように idl で定義された構造体です。
struct OrbSchemaStructure
{
string tableName;
string columnName;
unsigned long dataType;
boolean primaryKeyComponent;
};
deques の処理方法に変更はありましたか? 何か不足していますか?
この質問をローカライズしすぎていると書き留める前に、情報が不足している場合、または適切な場所を探していない場合はお知らせください。
私はomniORB 4.0.4 btwを使用しています。