15

Linuxカーネルによってエクスポートされたシンボルのリストを確認したい。だから私はコマンドを起動します、

# cat /proc/kallsyms
0000000000000000 D per_cpu__irq_stack_union
0000000000000000 D __per_cpu_start
0000000000004000 D per_cpu__gdt_page
0000000000005000 d per_cpu__exception_stacks
000000000000b000 d per_cpu__idt_desc
000000000000b010 d per_cpu__xen_cr0_value
000000000000b018 D per_cpu__xen_vcpu
000000000000b020 D per_cpu__xen_vcpu_info
000000000000b060 d per_cpu__mc_buffer
000000000000c570 D per_cpu__xen_mc_irq_flags

これは私が得た出力です。私の質問は、この出力の各フィールドの意味は何ですか?最初のフィールドは住所のように見えますが、2番目のフィールドの参照は取得できませんでした。2番目のフィールドの値D、d、t、T、sの意味を誰かが私に説明できますか?

4

1 に答える 1

19

nm2番目の列の文字は、 :からの出力で使用するのと同じ意味を持ちます。

D dシンボルは初期化されたデータセクションにあります。

S sシンボルは、小さなオブジェクトの初期化されていないデータセクションにあります。

T t記号はテキスト(コード)セクションにあります。

大文字の記号はグローバル/エクスポートされます。小文字はローカルのエクスポートされていない記号です。

于 2012-04-09T08:53:25.043 に答える