[解決済み] Gnuアセンブラ(GAS)のCFIディレクティブは何のためにあるのですか?
2022-07-26 16:18:06
質問
すべての行の後に.CFIディレクティブがあるようですが、また、これらのディレクティブは多種多様です。
.cfi_startproc
,
.cfi_endproc
など。
その他はこちら
.
.file "temp.c"
.text
.globl main
.type main, @function
main:
.LFB0:
.cfi_startproc
pushq %rbp
.cfi_def_cfa_offset 16
movq %rsp, %rbp
.cfi_offset 6, -16
.cfi_def_cfa_register 6
movl $0, %eax
leave
ret
.cfi_endproc
.LFE0:
.size main, .-main
.globl func
.type func, @function
func:
.LFB1:
.cfi_startproc
pushq %rbp
.cfi_def_cfa_offset 16
movq %rsp, %rbp
.cfi_offset 6, -16
.cfi_def_cfa_register 6
movl %edi, -4(%rbp)
movl %esi, %eax
movb %al, -8(%rbp)
leave
ret
.cfi_endproc
.LFE1:
.size func, .-func
.ident "GCC: (Ubuntu 4.4.1-4ubuntu9) 4.4.1"
.section .note.GNU-stack,"",@progbits
これの目的がわからなかった。
どのように解決するのですか?
の略のような気がします。 通話フレーム情報 の略で、コールフレームを管理するためのGNU ASの拡張機能です。から デベロッパーワークス :
<ブロッククオート一部のアーキテクチャでは、例外処理は を処理する必要があります。 フレーム情報ディレクティブで管理する必要があります。これらの これらのディレクティブはアセンブリで使用され 例外処理を指示します。これらの ディレクティブは Linux on POWER で利用可能です。 POWERでは、何らかの理由(例えばコードベースの移植性)で は、何らかの理由(例えば、コード・ベースの移植性など)により GCCが生成した例外処理 の情報が十分でない場合に利用できます。
例外処理の必要性に応じて、いくつかのプラットフォームで生成されるようです。
これらを無効化したい場合は David の回答 .
最新
-
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 実装 サイバーパンク風ボタン