2017-05-15 9 views
0

デバッグが正常に動作しません。REDHAWKコンポーネントのデバッグ

私はREDHAWKのバージョン2.1.0を使用しています。カスタムコンポーネントを作成しようとしています。

実行バージョンとリリースバージョンを取得できます。

ここでは、入力を受け取り、2倍して出力ストリームにプッシュする、非常に基本的なカスタムコンポーネントを作成しました。今は、このコンポーネントをサンドボックスのデバッグモードで実行しようとしています。私だけが見ることができるこれは私がデバッグなしで私のコンポーネントを実行することを選択した場合

boost::shared_ptr<rh_logger::Logger>::operator->() at shared_ptr.hpp:653 

でコールスタックの最後のエントリで、すべてが動作します。それは乗算さえします。

どういうことが起こっているのかわかりません。明らかに、このスマートポインタクラスはポインタが有効であることを確認するアサーションチェックを行い、ゼロであるためクラッシュすることになります。 - >演算子であると、これはかなり危険です。 SIGSEGVはスローされているエラーですが、BOOST_ASSERTが失敗した場合にそれを引き起こすのだろうか?


オペレーティングシステムはCentOS 7 64ビットで、通常のデスクトップIntelプロセッサで動作していますが、どちらが覚えていないのですか。

私は、REDHAWKマニュアルの2.2部に記載されているように、リポジトリをダウンロードしてREDHAWKをインストールしました。

新しいコンポーネントはREDHAWK IDE(Eclipseベース)で作成されたので、私はプログラム言語としてC++を選択しました。共有ライブラリと思われ、実行すると、ComponentHostというプロセスが開始されます。

私は、プロジェクトメニューのコンポーネントを右クリックし、サンドボックス内のコンポーネントとしてデバッグを選択することで、サンドボックス内のコンポーネントを起動しようとしています。リリースモードでコンポーネントを実行すると、このように動作します。

+0

このものは本当に私にとってREDHAWKを殺しています。私はクラッシュするいくつかのコードで問題に遭遇しました。 – 0xbaadf00d

答えて

0

私は、[]で私のテストシステムと、それを絞り込む支援するために、Pythonのサンドボックスを経由してコンポーネントをデバッグすることができるよ、その変数だけのカップル:どのオペレーティングシステム

  1. ? [CentOS 7]
  2. ソースまたはRPMからREDHAWKをインストールしましたか? [RPM]
  3. これは新しいC++共有ライブラリベースのコンポーネント(エントリポイントタイプは "SharedLibrary")か実行可能( "実行可能")ですか? [both]
  4. コンポーネントをどのように起動していますか?起動する引数として "debugger = 'gdb'"を指定してPythonサンドボックスを使用しますか?他の打ち上げの議論?

もう1つの可能なデバッグ方法は、コンポーネントを正常に起動し、別の端末ウィンドウからGDBをアタッチすることです。

まず、コンポーネントのプロセスを見つける:

  • それは共有ライブラリの場合:それは( "コンポーネントの実行ファイルの名前である")、実行可能なら

    ps -o pid,comm -C ComponentHost

  • ps -o pid,cmd -C <name>

目的のコンポーネントがどのプロセスであるかは明らかです。同じサンドボックスから複数の共有ライブラリコンポーネントを実行している場合、それらはすべて同じComponentHostインスタンスの一部になります。

次に、GDBをプロセスにアタッチ:サンドボックスは、GDBのアタッチ方法

gdb -p <pid>

これは本質的です。しかし、それを独立して実行することで、デバッガを接続する前に好みのフローを最初に設定することができます。

+0

ええ、私はこのようにすることを考えました。私はgdbのきちんとしたフロントエンドを提供するので、私はKDevelopを使ってデバッグを行うと思っていました。スタートアップ呼び出しで必要なpythonコマンドを実行して、サンドボックス内のコンポーネントを起動することで、実行可能なものにすることさえできます。 – 0xbaadf00d

+0

(他のユーザーのスレッドのリンクからチェックインしてください)プレリリース版であるため、REDHAWK 2.1に移行しませんでした([repo](http://github.com/redhawksdr/)のタグによる) redhawk/releases/2.1.0)ので、ちょうど頭が上がっています)。 – Thomas

関連する問題