2012-04-09 8 views
12

Ich möchte die Liste der vom Linux-Kernel exportierten Symbole überprüfen. So feuern ich den Befehl,Linux-Kernel exportierte Symbole

# 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 

Dies ist die Ausgabe ich habe. Meine Frage ist, was bedeutet jedes Feld in dieser Ausgabe? Das erste Feld sieht wie die Adresse aus, ich habe keine Referenz für das zweite Feld bekommen. Kann mir jemand die Bedeutung der Werte, D, d, t, T, s im zweiten Feld erklären?

Antwort

18

Die Zeichen in der zweiten Spalte die gleiche Bedeutung haben sie von nm in der Ausgabe zu tun:

D d Das Symbol in dem initialisierten Datenabschnitt ist.

S s Das Symbol befindet sich in einem nicht initialisierten Datenbereich für kleine Objekte.

T t Das Symbol befindet sich im Abschnitt Text (Code).

Großbuchstaben werden global/exportiert; Kleinbuchstaben sind lokale nicht exportierte Symbole.

Verwandte Themen