[解決済み] C++のプログラムのアセンブリコードを見るにはどうしたらいいですか?
2022-05-07 22:09:43
質問
C++のプログラムのアセンブリコードを見るにはどうしたらいいですか?
そのための一般的なツールは何ですか?
どのように解決するのですか?
コンパイラに聞く
プログラムを自分で構築する場合、コンパイラにアセンブリソースを出力するよう依頼することができます。ほとんどの UNIX コンパイラでは
-S
のスイッチを入れてください。
-
GNUアセンブラを使用している場合、コンパイル時に
-g -Wa,-alh
は、ソースとアセンブリが混在した状態で標準出力に出力されます (-Wa
は、アセンブラにオプションを渡すようコンパイラドライバに要求します。-al
はアセンブリの一覧を表示するようにし-ah
が追加され、高レベルのソースが表示されます。)g++ -g -c -Wa,-alh foo.cc
-
Visual Studioの場合は
/FAsc
.
バイナリを覗く
コンパイル済みのバイナリがある場合。
-
使用
objdump -d a.out
UNIXの場合(cygwinでも動作します)。 -
dumpbin /DISASM foo.exe
をWindowsで表示します。
デバッガを使用する
デバッガはディスアセンブルを表示することもできる。
-
使用する
disas
コマンドをGDBで実行します。
使用方法set disassembly-flavor intel
インテル構文がお好みなら - または ディスアセンブルウィンドウ WindowsのVisual Studioの
関連
-
[解決済み】coutはstdのメンバではない
-
[解決済み】C-stringを使用すると警告が表示される。"ローカル変数に関連するスタックメモリのアドレスが返される"
-
[解決済み】C++の余分な資格エラー
-
[解決済み] 文字列の単語を反復処理するにはどうすればよいですか?
-
[解決済み] static_cast, dynamic_cast, const_cast, reinterpret_cast はいつ使うべきですか?
-
[解決済み] C++11では、標準化されたメモリモデルが導入されました。その意味するところは?そして、C++プログラミングにどのような影響を与えるのでしょうか?
-
[解決済み] Linux上で動作するC++コードのプロファイリングを行うにはどうすればよいですか?
-
[解決済み] Collatz予想の検証を行う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++ - 解放されるポインタが割り当てられていないエラー
-
[解決済み】C++コンパイルタイムエラー:数値定数の前に期待される識別子
-
[解決済み] error: 'if' の前に unqualified-id を期待した。
-
[解決済み】cc1plus:エラー:g++で認識されないコマンドラインオプション"-std=c++11"
-
[解決済み】ファイルから整数を読み込んで配列に格納する C++ 【クローズド
-
[解決済み】1つ以上の多重定義されたシンボルが見つかる
-
[解決済み】C++ - 適切なデフォルトコンストラクタがない [重複]。
-
[解決済み】警告 - 符号付き整数式と符号なし整数式の比較
-
[解決済み] gccでC/C++のソースからアセンブラ出力を得るにはどうしたらいいですか?
-
[解決済み】GCCを使用して読みやすいアセンブリを作成しますか?