Previous: Transformations On Global Variables, Up: Transformations On Symbol Tables   [Contents][Index]


7.2.3 Transformations of Stabs in separate sections

For object file formats using stabs in separate sections (see Stab Sections), use objdump --stabs instead of nm to show the stabs in an object or executable file. objdump is a GNU utility; Sun does not provide any equivalent.

The following example is for a stab whose value is an address is relative to the compilation unit (see ELF Linker Relocation). For example, if the source line

static int ld = 5;

appears within a function, then the assembly language output from the compiler contains:

.Ddata.data:
…
        .stabs "ld:V(0,3)",0x26,0,4,.L18-Ddata.data    # 0x26 is N_STSYM
…
.L18:
        .align 4
        .word 0x5

Because the value is formed by subtracting one symbol from another, the value is absolute, not relocatable, and so the object file contains

Symnum n_type n_othr n_desc n_value  n_strx String
31     STSYM  0      4      00000004 680    ld:V(0,3)

without any relocations, and the executable file also contains

Symnum n_type n_othr n_desc n_value  n_strx String
31     STSYM  0      4      00000004 680    ld:V(0,3)