Re: info on System.map

From: Adam (adam@eax.com)
Date: Thu May 11 2000 - 23:41:36 EDT

  • Next message: Christopher Thompson: "[PATCH] TSC, kernel 2.3.99-pre6"

    > i just wanted to know what is the significance of the
    > System.map file which is present in the /boot directory ? .I see
    > that it contains a list with three columns .
    > coul someone describe what each column represents.

    First one is address in memory where given "item" is located once
    kernel is loaded into memroy

    the last one is name of the "item"

    the middle denotes type of the "item", you can find definitions of
    all types in nm info page (be sure to look up the binutils man page
    not the just info-nized version of plain man page). For reference they
    are quoted below

    Thus they let you determine what the function is from address in
    memory. For example I believe 'ps' makes use of such information
    (though it probably rather uses /proc/ksyms nowdays) when it
    displays where given process is at given time

       * The symbol type. At least the following types are used; others
         are, as well, depending on the object file format. If lowercase,
         the symbol is local; if uppercase, the symbol is global (external).

        `A'
              The symbol's value is absolute, and will not be changed by
              further linking.

        `B'
              The symbol is in the uninitialized data section (known as
              BSS).

        `C'
              The symbol is common. Common symbols are uninitialized data.
              When linking, multiple common symbols may appear with the
              same name. If the symbol is defined anywhere, the common
              symbols are treated as undefined references. For more
              details on common symbols, see the discussion of -warn-common
              in *Note Linker options: (ld.info)Options.
              details on common symbols, see the discussion of -warn-common
              in *Note Linker options: (ld.info)Options.

        `D'
              The symbol is in the initialized data section.

        `G'
              The symbol is in an initialized data section for small
              objects. Some object file formats permit more efficient
              access to small data objects, such as a global int variable
              as opposed to a large global array.

        `I'
              The symbol is an indirect reference to another symbol. This
              is a GNU extension to the a.out object file format which is
              rarely used.

        `N'
              The symbol is a debugging symbol.

        `R'
              The symbol is in a read only data section.
        `R'
              The symbol is in a read only data section.

        `S'
              The symbol is in an uninitialized data section for small
              objects.

        `T'
              The symbol is in the text (code) section.

        `U'
              The symbol is undefined.

        `W'
              The symbol is weak. When a weak defined symbol is linked
              with a normal defined symbol, the normal defined symbol is
              used with no error. When a weak undefined symbol is linked
              and the symbol is not defined, the value of the weak symbol
              becomes zero with no error.

        `-'
              The symbol is a stabs symbol in an a.out object file. In
        `-'
              The symbol is a stabs symbol in an a.out object file. In
              this case, the next values printed are the stabs other field,
              the stabs desc field, and the stab type. Stabs symbols are
              used to hold debugging information; for more information, see
              *Note Stabs: (stabs.info)Top.

        `?'
              The symbol type is unknown, or object file format specific.

    -- 
    Adam
    http://www.eax.com      The Supreme Headquarters of the 32 bit registers
    

    - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/



    This archive was generated by hypermail 2b29 : Thu May 11 2000 - 23:51:19 EDT