プロジェクト

全般

プロフィール

バグ #3708

未完了

SimpleIOサンプルのConnectorComp.cppにおける初期化処理の修正

n.kawauchi さんが7年以上前に追加. 約5年前に更新.

ステータス:
解決
優先度:
通常
担当者:
対象バージョン:
-
開始日:
2016/11/15
期日:
進捗率:

100%

予定工数:

説明

下記投稿への対応

[openrtm-users 03328] Ubuntu 14.04,OpenRTM C++ 1.1.xでSimpleIO ConnectorCompを実行するとinvalid pointerコアダンプが発生する

環境:
Ubuntu 14.04.5 LTS Linux 4.4.0-36-generic gcc 4.8.4 omniORB 4.1.6-2
OpenRTM-aist C++版 ソースコード OpenRTM-aist-1.1.2.tar.gz
をベースに記述いたします.
初回コンパイルを終えると,
examples/SimpleIO/以下で./run.shを実行するとサンプルプログラムが実行されるかと思います.
このときConnectorCompの実行時に, Name Server: localhost:9876
Subscription Type: flush push policy: skip count: connect: ConsoleIn ->
ConsoleOut *** Error in `(略)/examples/SimpleIO/.libs/lt-ConnectorComp':
free(): invalid pointer: 0x000000000040864b *** のようにinvalid
pointerエラーが発生します.
具体的には,ConnectorComp.cppの275行目, ReturnCode_t ret; if
(connect_origin == "in") { ret = pin[(CORBA::ULong)0]->connect(prof); }
のconnect時にエラーが発生しています.
表面的な原因を調査しましたところ, OpenRTM-aist
1.0.2でSimpleIOを実行した際にはエラーは発生せず,
同226行目 prof.connector_id = (char*)""; の部分が,OpenRTM-aist
1.0.xでは, prof.connector_id = ""; となっていました.
1.1.0や1.1.2でも同じく(char*)を削除するとエラーなく実行できました.

他の形式にエクスポート: Atom PDF