2017-01-27 18 views
0

私はCentOS 7.3.1611でRedhawk 2.0.4を実行しています。 Vita49Libraries(3.0.0)、SourceVita49(3.0.1)、およびSinkVita49(3.0.1)をソースからコンパイルしてインストールしました。 SourceVita49またはSinkVita49コンポーネントをIDEのサンドボックスにドラッグすると、次のエラーが発生します。RedHawk Vita49セグメンテーションフォルト(CentOS7)

コンポーネントSinkVITA49_1が起動するのを待つ間にエラーが発生しました。 起動待ちの間にコンポーネントが終了しました。 SinkVITA49_1終了コードSIGSEGV(11)

コンポーネントSourceVITA49_1が起動するのを待つ間にエラーが発生しました。 起動待ちの間にコンポーネントが終了しました。 GitHubのhereに見ると終了コードSIGSEGVで終端 SourceVITA49_1(11)

私はFedora24下Vita49Librariesの "クラッシュ" に関する問題を参照してください。

Fedora24のこの問題は、私が見ているのと同じセグメンテーション違反であることを確認できますか?

CentOS7でVITA49コンポーネントを実行する方法を知っている人はいますか?

答えて

0

参照されているgithubの問題で報告されているのと同じ問題があるようです。あなたは、ドッキングウィンドウを経由して、次の手順で複製することができます。私はそれを試していないが、私は、ドッキングウィンドウの実行-it --rm --privileged --cap-」EL6コンテナと同じ手順を実行している想像

# Run the redhawk 2.0.4 container for el7 with escalated privileges so we can get a core dump and trace it 
[[email protected] ~] docker run -it --rm --privileged --cap-add CAP_PTRACE axios/redhawk:2.0-el7 

# Clone and build 
[[email protected]] git clone https://github.com/RedhawkSDR/VITA49Libraries.git 
[[email protected]] pushd VITA49Libraries/cpp/ 
[[email protected]] ./reconf && ./configure && make -j && sudo make install && popd 

[[email protected]] git clone https://github.com/RedhawkSDR/SinkVITA49.git 
[[email protected]] pushd SinkVITA49/cpp/ 
[[email protected]] ./reconf && ./configure && make -j && sudo make install && popd 

# Set core dump size to unlimited. 
[[email protected]] ulimit -c unlimited 

# Hop into python and launch component 
[[email protected]] python 
>>> from ossie.utils import sb 
>>> snk = sb.launch('rh.SinkVITA49') 

# It will crash 
[[email protected] ~]$ ls 
core.4287 SinkVITA49 VITA49Libraries 

# Install gdb and trace out the issue 
[[email protected] ~]$ sudo yum install gdb 
[[email protected] ~]$ gdb /var/redhawk/sdr/dom/components/rh/SinkVITA49/cpp/SinkVITA49 core.4287 

# leads us to 

... 
#1 0x00007f254971204e in std::string::assign(std::string const&)() from /lib64/libstdc++.so.6 
#2 0x00007f254c802055 in operator= (__str="", this=0x7f254ca396f0 <_leapSecondsFile>) at /usr/include/c++/4.8.2/bits/basic_string.h:547 
#3 _init() at vrt_src/cpp_src/vrt/lib/VRTConfig.cc:84 
#4 0x00007f254c802f25 in vrt::VRTConfig::getLeapSecondsFile() at vrt_src/cpp_src/vrt/lib/VRTConfig.cc:141 
#5 0x00007f254c7ae0b5 in vrt::LeapSeconds::getDefaultInstance() at vrt_src/cpp_src/vrt/lib/LeapSeconds.cc:195 
#6 0x00007f254c7fad3d in vrt::TimeStamp::TimeStamp (this=0x7f254ca39640 <vrt::TimeStamp::NO_TIME_STAMP>, tsiMode=<optimized out>, tsfMode=vrt::FractionalMode_None, tsi=<optimized out>, tsf=9223372036854775808, sr=nan(0x8000000000000)) 
    at vrt_src/cpp_src/vrt/lib/TimeStamp.cc:84 
#7 0x00007f254c781d35 in __static_initialization_and_destruction_0 (__initialize_p=1, __priority=65535) at vrt_src/cpp_src/vrt/lib/TimeStamp.cc:28 
... 

# Which is the static initialization within the TimeStamp file. 

CAP_PTRACE axios/redhawk:2.0 "を追加すると、コアダンプは実行されません。

+0

https://isocpp.org/wiki/faq/ctors#static-init-orderを参照してください。_leapSecondsFileは静的初期設定では非常に扱いにくいstd :: stringです。 CentOS 7にはおそらく、いくつかの異なる初期化順序を生成するより新しいコンパイラがあります。 –

+0

あなたの側でこれを再現していただきありがとうございます。今はCentOS 6にとどまります。 –

関連する問題