Previous: Transformations On Global Variables, Up: Transformations On Symbol Tables


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)