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

河内のぶ n.kawauchi @ aist.go.jp
2016年 9月 1日 (木) 11:48:52 JST


永松様

産総研 河内です。
リリースパッケージ作成を担当しております。分かる範囲でお答えします。

サンプルコンポーネントのインストールではrun.shが含まれないため、動作
確認をしておりませんでした。こちらでは、パッケージにてインストールされ
たサンプルRTCを、rtshell(rtctree)を使ったテストスクリプトで実行し、
確認しました。

ご指摘の部分は、r2019で修正されました。RtORBのサポートのようですが、
修正内容の詳細は分かりません。

試しておりませんが、
  prof.connector_id = (char*)"";
これを、
  prof.connector_id = CORBA::string_dup("");
としてみるのはいかがでしょうか。

以上、よろしくお願いいたします。


On Wed, 31 Aug 2016 21:29:37 +0900
<nagamatsu @ jsk.imi.i.u-tokyo.ac.jp> wrote:

> 東京大学稲葉岡田研究室の永松と申します.
> ただいま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*)が追加された理由や経緯などをご存じの方はいらっしゃいますでしょうか.
> 以上,よろしくお願いいたします.
> 
> _______________________________________________
> openrtm-users mailing list
> openrtm-users @ openrtm.org
> http://www.openrtm.org/mailman/listinfo/openrtm-users




More information about the openrtm-users mailing list