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

1 つの投稿 / 0 new
nagamatsu-jsk
オフライン
Last seen: 7年 7ヶ月 前
登録日: 2016-08-31 20:38
Ubuntu 14.04,OpenRTM C++ 1.1.xでSimpleIO ConnectorCompを実行するとinvalid pointerコアダンプが発生する

東京大学稲葉岡田研究室の永松と申します.

ただいまSimpleIOでOpenRTMの勉強をさせて頂いていたのですが,
気づいたことがあり報告させていただきます.

環境:
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*)を削除するとエラーなく実行できました.

私の理解が及んでいるのはここまでです.
このエラーの原因をご存知の方や,
prof.connector_id = (char*)""; に (char*)が追加された理由や経緯などをご存じの方はいらっしゃいますでしょうか.

以上,よろしくお願いいたします.

未定義

ダウンロード

最新バージョン : 2.0.1-RELESE

統計

Webサイト統計
ユーザ数:2195
プロジェクト統計
RTコンポーネント307
RTミドルウエア35
ツール22
文書・仕様書2

Choreonoid

モーションエディタ/シミュレータ

OpenHRP3

動力学シミュレータ

OpenRTP

統合開発プラットフォーム

産総研RTC集

産総研が提供するRTC集

TORK

東京オープンソースロボティクス協会

DAQ-Middleware

ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク