中央大学の小島と申します。
Corba::Namingクラスのエラー起こってしまうのをみつけたのでご報告します。
もしかしたら使用法が違うために生じたものかもしれませんが、 ソースコードも見てみたのですが、このような使い方(以下のコード)を意図している使い方だと思います。
エラーが生じるソースコードは以下のようになります。
int main(int argc,char *argv[]) { ORBA::ORB_var orb = CORBA::ORB_init(argc, argv);
RTC::CorbaNaming name(orb),name2(orb); name.init("127.0.0.1:9876"); name2.init("127.0.0.1:9876");
orb->destroy(); }
しかし、 RTC::CorbaNaming name(orb,"127.0.0.1:9876"),name2(orb,"127.0.0.1:9876"); とすると、問題が解決され、エラーは発生しないようです。
また、エラー時には、omniORBが以下のようなエラーを出していることがあることからも なんらかのバグであると推測されます。 Application check failed. This indicates a bug in the application using omniORB. See the comment in the source code for more info file: corbaOrb.cc line: 987 info: pd_destroyed
また、エラーが起きている場所はgdbでは調べきれなかったのですが、CorbaNamingのデストラクタが呼び出されたあとなど おかしな動作を行ってしまっているようです。
※バグ?報告 CorbaConsumer.hのoperator=() に、return *this;が足りず、返り値が設定されていないようです。
環境 Fedora6 OpenRTM-aist-0.4.2 omniORB 4.0.7
モーションエディタ/シミュレータ
動力学シミュレータ
統合開発プラットフォーム
産総研が提供するRTC集
東京オープンソースロボティクス協会
ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク
中央大学の小島と申します。
Corba::Namingクラスのエラー起こってしまうのをみつけたのでご報告します。
もしかしたら使用法が違うために生じたものかもしれませんが、
ソースコードも見てみたのですが、このような使い方(以下のコード)を意図している使い方だと思います。
エラーが生じるソースコードは以下のようになります。
int main(int argc,char *argv[])
{
ORBA::ORB_var orb = CORBA::ORB_init(argc, argv);
RTC::CorbaNaming name(orb),name2(orb);
name.init("127.0.0.1:9876");
name2.init("127.0.0.1:9876");
orb->destroy();
}
しかし、
RTC::CorbaNaming name(orb,"127.0.0.1:9876"),name2(orb,"127.0.0.1:9876");
とすると、問題が解決され、エラーは発生しないようです。
また、エラー時には、omniORBが以下のようなエラーを出していることがあることからも
なんらかのバグであると推測されます。
Application check failed. This indicates a bug in the application
using omniORB. See the comment in the source code for more info
file: corbaOrb.cc
line: 987
info: pd_destroyed
また、エラーが起きている場所はgdbでは調べきれなかったのですが、CorbaNamingのデストラクタが呼び出されたあとなど
おかしな動作を行ってしまっているようです。
※バグ?報告 CorbaConsumer.hのoperator=() に、return *this;が足りず、返り値が設定されていないようです。
環境
Fedora6
OpenRTM-aist-0.4.2
omniORB 4.0.7