[解決済み] デバッグせずにIllegal Instructionエラーの原因となったアセンブリ命令を見つけることができる
2022-02-25 01:48:51
質問
アセンブリで書いたプログラムを実行すると、次のようなメッセージが表示される。
Illegal instruction
というエラーが発生します。どの命令がエラーを引き起こしているのか、デバッグせずに知る方法はないでしょうか?つまり、あるマシンでコンパイルして、別のマシンで実行するのです。コンパイルしているマシンはSSE4.2をサポートしていないので、私のプログラムをテストすることはできません。しかし、プログラムを実行するマシンは、SSE4.2命令をサポートしています。
おそらく、アセンブラ(YASM)にSSE4.2命令を認識させるために、gccで行うのと同じように
-msse4.2
フラグを使用します。それとも、それが原因ではないとお考えですか?YASMにSSE4.2命令を認識させる方法について何か思いつきませんか?
を罠にかけるべきかもしれません。 シギル シグナルを送信し、SA_SIGINFO をデコードして、プログラムがどのような不正な操作をしているかを確認します。
どのように解決するのですか?
実は、不正な命令エラーが発生するのは、プログラムに不正なオペコードが含まれているからではなく、プログラムにバグ(例えば、バッファオーバーフロー)があり、プログラムがプレーンデータやコード内のランダムアドレスにジャンプするが、オペコードの開始位置にはジャンプしないためであることがよくあります。
関連
-
[解決済み】エラー:cの入力の最後に期待される宣言またはステートメント
-
[解決済み】C言語におけるファイルスコープでの可変長配列の変更
-
[解決済み】 error: too few arguments to function `printDay' (C言語)
-
[解決済み】ヒープ割り当てで初期化されていない値が作成された
-
[解決済み】C言語でint64_t型を表示する方法
-
[解決済み] エラー:整数が期待されるところで集約値が使用された
-
[解決済み】malloc():メモリ破壊
-
[解決済み】未定義参照 makefile が間違っているのかも?
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み】マルチコアアセンブラとはどのようなものですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Valgrind - strcpyのサイズ1の無効な書き込み
-
[解決済み] c - 初期化がキャストなしでポインタから整数を作る、さらに2つのコンパイラーエラー
-
[解決済み】組み込み関数「malloc」の暗黙の宣言の非互換性
-
[解決済み】 error: too few arguments to function `printDay' (C言語)
-
[解決済み】エラー。非スカラー型への変換を要求された
-
[解決済み】エラー:不明な型名'bool'
-
[解決済み】スタックスマッシュを検出しました
-
[解決済み】int型配列へのポインタのスカラ・イニシャライザの過剰要素
-
[解決済み] Cプログラムで「配列の添え字が整数でない」。
-
[解決済み】警告:式の結果が未使用の場合