Find the answer to your Linux question:
Results 1 to 5 of 5
I need a definiton of what a symbol is in (symbol table) and or object file context. Thanks in advance!...
  1. #1
    Linux Newbie theKbStockpiler's Avatar
    Join Date
    Sep 2010
    Location
    Upstate NY
    Posts
    195

    What is a symbol in object file context?

    I need a definiton of what a symbol is in (symbol table) and or object file context.

    Thanks in advance!

  2. #2
    Linux Engineer hazel's Avatar
    Join Date
    May 2004
    Location
    Harrow, UK
    Posts
    955
    When a program is compiled, variable names are replaced by their (virtual) addresses. The names aren't necessary for the program to run, but they are essential for debugging. So the compiler stores them and their corresponding addresses in the symbol table.
    "I'm just a little old lady; don't try to dazzle me with jargon!"

  3. #3
    Trusted Penguin Cabhan's Avatar
    Join Date
    Jan 2005
    Location
    Seattle, WA, USA
    Posts
    3,230
    This also applies to shared libraries. Imagine that I have a library (we'll call it libfoo.so) and I am writing a program that dynamically links with it. Suppose that my program wants to call the bar() function defined in libfoo.so. The linker needs to know where the bar() function is actually defined inside libfoo.so. So the symbol table maps the "bar" symbol to some address.

    The way that a modern program might work, then, would be that the first time my program calls the bar() function, it actually jumps to a fake address inside of ld.so (a shared library that acts as the linker). At this point, ld.so looks at the symbol tables of the libraries that I've linked with, finds the bar() function, and replaces the fake address with the actual address. Then, in the future, my program will go to bar() directly, and not go through ld.so.

    I hope this helps.
    DISTRO=Arch
    Registered Linux User #388732

  4. #4
    Linux Newbie theKbStockpiler's Avatar
    Join Date
    Sep 2010
    Location
    Upstate NY
    Posts
    195

    Thank you both for the great replies.

    So it would seem that "symbol" is used as a synonym for the name of a variable function or types. I did eventually find this web page that has an indirect definition on "symbol". As far as term usage I would say that this one is one of the most elusive to find and I image symbol was used because aliases was already taken , still absurd though. A word is not a symbol. Word !=Symbol.

    Thanks again for your help!



    Symbols

  5. #5
    Linux Guru Rubberman's Avatar
    Join Date
    Apr 2009
    Location
    I can be found either 40 miles west of Chicago, or in a galaxy far, far away.
    Posts
    8,970
    Yeah. You got two great answers from Hazel and Cabhan. A symbol is related to some address, either variable or function or other discrete chunk of memory in the program, such as string literals and whatnot.
    Sometimes, real fast is almost as good as real time.
    Just remember, Semper Gumbi - always be flexible!

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
...