問題タブ [illegal-instruction]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
142 参照

c++ - SIGILL の理解とトラブルシューティング

armv7 ベースのターゲット用に、erlang 用の rocksdb のコピー (gitlab.com/Vagabond1/erlang-rocksdb@8708fe8) を作成しました。iMX6 SoloX プロセッサです。cpuinfo は次のとおりです。

コンパイル済みをロードするプログラムがありますがliberocksdb.so、SIGILL でクラッシュします。バック トレースは次のとおりです。

分解は次のとおりです。

私はこの分野の専門家ではありませんが、私の知る限り、udiv私の CPU では命令が違法であるため、プログラムがクラッシュしました。私はARM開発者のウェブサイトをチェックしました.これはCortex M3命令であり、私のCPUはCortex M4であると信じているので、この命令が必要だと思いますか?

おそらく私の分析は間違っていて、これは何か別のものですか?

私のクロス コンパイルは、その CPU と rootfs のクロス ツールチェーンを使用して行われ、-march=armv7-a -marm -mfpu=neon -mfloat-abi=hard互換性のあるバイナリを提供する必要があるなどの引数が含まれていました。

ありがとう