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)