[解決済み] gccでC/C++のソースからアセンブラ出力を得るにはどうしたらいいですか?
2022-03-21 03:56:23
質問
どのようにすればよいのでしょうか?
何かがどのようにコンパイルされるかを分析したい場合、生成されたアセンブリコードをどのように取得すればよいですか?
どのように解決するのですか?
を使用します。
-S
を gcc (または g++) に追加してください。
gcc -S helloworld.c
これはプリプロセッサ (cpp) を helloworld.c の上で実行し、最初のコンパイルを行った後、アセンブラが実行される前に停止します。
デフォルトでは、これはファイル
helloworld.s
. 出力するファイルは
-o
オプションで指定します。
gcc -S -o my_asm_output.s helloworld.c
もちろん、これはオリジナルのソースがある場合のみ有効です。
結果としてのオブジェクトファイルしか持っていない場合の代替手段としては
objdump
を設定することで
--disassemble
オプション(または
-d
を省略した形)。
objdump -S --disassemble helloworld > helloworld.dump
このオプションは、オブジェクトファイルに対してデバッグオプションが有効になっている場合に最も効果的です(
-g
を使用し、かつ、そのファイルが削除されていない場合。
実行中
file helloworld
は、objdumpを使用することで得られる詳細なレベルについて、いくらかの示唆を与えてくれるでしょう。
関連
-
[解決済み】「The breakpoint will not currently be hit」を改善するには?このドキュメントにはシンボルが読み込まれていません。" という警告はどうすれば改善されますか?
-
[解決済み】Eclipse IDEでC++エラー「nullptrはこのスコープで宣言されていません」が発生する件
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] 1ビットのセット、クリア、トグルはどのように行うのですか?
-
[解決済み] static_cast, dynamic_cast, const_cast, reinterpret_cast はいつ使うべきですか?
-
[解決済み] C言語では「?」演算子は何をするのですか?
-
[解決済み] C++11では、標準化されたメモリモデルが導入されました。その意味するところは?そして、C++プログラミングにどのような影響を与えるのでしょうか?
-
[解決済み] 難読化Cコードコンテスト2006。sykes2.cの解説をお願いします。
-
[解決済み】C/C++の"-->"演算子とは何ですか?
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C-stringを使用すると警告が表示される。"ローカル変数に関連するスタックメモリのアドレスが返される"
-
[解決済み】C++のGetlineの問題(オーバーロードされた関数 "getline "のインスタンスがない
-
[解決済み] string does not name a type Errorが発生するのはなぜですか?
-
[解決済み】文字列関数で'char const*'のインスタンスを投げた後に呼び出されるterminate [閉店].
-
[解決済み】「std::operator」で「operator<<」にマッチするものがない。
-
[解決済み] 式はクラス型を持つ必要があります。
-
[解決済み】C++ - 適切なデフォルトコンストラクタがない [重複]。
-
[解決済み] 配列のベクトルを扱う正しい方法
-
[解決済み] Collatz予想の検証を行うC++のコードは、なぜ手書きのアセンブリよりも高速に動作するのでしょうか?
-
[解決済み】GCCを使用して読みやすいアセンブリを作成しますか?