ericco@ssl.berkeley.edu (Eric C. Olson) (11/20/90)
Is there a good reason for executable files to have symbol tables in them? I've been poking around various pieces of executable code, and I've found references in the symbol table (I think) to routines like printf, etc. I know on SunOS4.0 a special symbol called "__DYNAMIC" is used to indicate that shared libraries are needed. I don't think that there is anything like this in TOS. Does this mean that one could load program into memory, and then call functions withun them as *subroutines*, if you knew the functions interface, and used compatiable compilers, etc? Thanks, Eric -- Eric ericco@ssl.berkeley.edu
sstreep@next.com (Sam Streeper) (11/21/90)
In article <ERICCO.90Nov19095024@soc1.ssl.berkeley.edu> ericco@ssl.berkeley.edu (Eric C. Olson) writes: > >Is there a good reason for executable files to have symbol tables in >them? Assembly language debugging is much easier with symbols because function names and variables appear by name rather than address. Most commercial executables won't have the symbol table as it just swells the executable size, though. Not all Atari languages will leave the symbol table in the executable, and not all debuggers understand it, either. Laser C and Devpac assembler both do the right thing, for what it's worth. If you're looking for an excellent assembly language debugger, I recommend MonST, which is packaged with Devpac. (The Laser debugger is also an excellent source debugger, and a passable assembly debugger as well). >Does this mean that one could load program into memory, and then call >functions withun them as *subroutines*, if you knew the functions >interface, and used compatiable compilers, etc? Yuck. You _could_ do this, if you were a little crazy... -sam