Symbol lookup for global symbols in shared libraries

Taimoor Mirza <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <CAO6-N=aXeoLnyaR6+NGuKUw27_pqisx8m_VVyVjLE2N-Zk1Kpg@mail.gmail.com>
Hi All,

I am facing a problem while trying to debug shared library using GDB.
My application code and shared library both have a global variable
with same name. My understanding was that as per work done under
http://sourceware.org/ml/gdb-patches/2007-05/msg00155.html, GDB's
global symbol lookup first searches for symbol in current objfile. It
works fine for same name functions but in case of variables, it always
uses application's global name variable.

After debugging GDB, I have noticed that symbol lookup code tries to
lookup in current Object file's global block but it finds symbol
without any symbol information (sym->ginfo.section is -1 and
aclass_index 12). It actually iterates through global block of object
file and only finds symbol of matching domain. It returns this found
symbol (with no symbol info) but while evaluating expression,
default_read_var_value function checks for symbol class of variable
and on finding LOC_RESOLVED, it again looks up for symbol data. But
this symbol lookup code uses
default_iterate_over_objfiles_in_search_order method to iterate over
object files. This method searches the objfiles in the order they are
stored internally and ignores CURRENT_OBJFILE. Because of this, it
finds symbol in application's objfile and always returns its value.

I have taken dump of debugging symbol data in attached syms.txt. I've
noticed that block #000 of my shared library (libSharedlib.so)
contains two entries for global variable (globalTest). Why is it so?
If I place a condition in GDB's lookup_block_symbol function to ignore
symbols with no section info while iterating through block's symbol
then everything works fine. Below are code snippets of application and
SO I am using:

Application:

#include <stdlib.h>
#include <stdio.h>
#include <dlfcn.h>

int globalTest = 0;

int foo(int a, int b)
{
   int s = a + b;
   printf("Main foo: %d and globalTest is %d\n", s, globalTest);
   return s;
}

int main(int argc, char **argv) {
  void *handle;
  int (*sum)(int,int);
  char *error;
  globalTest +=5;
  handle = dlopen
("/home/taimoor/Shared/sharedLib/Debug/libsharedLib.so", RTLD_LAZY);
  if (!handle) {
      fputs (dlerror(), stderr);
      exit(1);
  }

  sum = dlsym(handle, "foo");
  if ((error = dlerror()) != NULL)  {
      fputs(error, stderr);
      exit(1);
  }

  foo(1,2);
  printf ("%d and SharedLibraryTest globalTest is %d", sum(4,5), globalTest);
  dlclose(handle);
  return 0;
}



Shared Library:

#include <stdio.h>
int globalTest = 100;

int foo(int a, int b)
{
   int s = a + b;
   printf("%d and globalTest is %d\n", s, globalTest);
   return s;
}


Can anyone tell me if its some bug in GDB or I am doing something
wrong? I've used -Bsymbolic linker flag for my app and so.

Thanks,
Taimoor
syms.txt (text/plain, 22.4 KB)
Symtab for file ../src/SharedLibraryTest.c
Compilation directory is /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug
Read from object file /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug/SharedLibraryTest (0x9788f40)
Language: c

Line table:

 line 9 at 0x8048594
 line 10 at 0x804859a
 line 11 at 0x80485a5
 line 12 at 0x80485c3
 line 13 at 0x80485c6
 line 15 at 0x80485c8
 line 20 at 0x80485d2
 line 21 at 0x80485df
 line 22 at 0x80485f7
 line 23 at 0x80485fe
 line 24 at 0x8048616
 line 27 at 0x8048622
 line 28 at 0x804863b
 line 29 at 0x804864b
 line 30 at 0x8048662
 line 33 at 0x804866e
 line 34 at 0x8048682
 line 35 at 0x80486b2
 line 36 at 0x80486be
 line 37 at 0x80486c3
 line 0 at 0x80486c8

Blockvector:

block #000, object at 0x97a47a0, 2 syms/buckets in 0x8048594..0x80486c8
 struct _IO_FILE {
     int _flags;
     char *_IO_read_ptr;
     char *_IO_read_end;
     char *_IO_read_base;
     char *_IO_write_base;
     char *_IO_write_ptr;
     char *_IO_write_end;
     char *_IO_buf_base;
     char *_IO_buf_end;
     char *_IO_save_base;
     char *_IO_backup_base;
     char *_IO_save_end;
     struct _IO_marker *_markers;
     struct _IO_FILE *_chain;
     int _fileno;
     int _flags2;
     __off_t _old_offset;
     short unsigned int _cur_column;
     signed char _vtable_offset;
     char _shortbuf[1];
     _IO_lock_t *_lock;
     __off64_t _offset;
     void *__pad1;
     void *__pad2;
     void *__pad3;
     void *__pad4;
     size_t __pad5;
     int _mode;
     char _unused2[40];
 } *stderr; unresolved
 struct _IO_FILE {
     int _flags;
     char *_IO_read_ptr;
     char *_IO_read_end;
     char *_IO_read_base;
     char *_IO_write_base;
     char *_IO_write_ptr;
     char *_IO_write_end;
     char *_IO_buf_base;
     char *_IO_buf_end;
     char *_IO_save_base;
     char *_IO_backup_base;
     char *_IO_save_end;
     struct _IO_marker *_markers;
     struct _IO_FILE *_chain;
     int _fileno;
     int _flags2;
     __off_t _old_offset;
     short unsigned int _cur_column;
     signed char _vtable_offset;
     char _shortbuf[1];
     _IO_lock_t *_lock;
     __off64_t _offset;
     void *__pad1;
     void *__pad2;
     void *__pad3;
     void *__pad4;
     size_t __pad5;
     int _mode;
     char _unused2[40];
 } *stderr; unresolved
 int foo(int, int); block object 0x97a4358, 0x8048594..0x80485c8 section .text
 int main(int, char **); block object 0x97a467c, 0x80485c8..0x80486c8 section .text
 int globalTest; unresolved
 int globalTest; static at 0x804a038 section .bss
  block #001, object at 0x97a4760 under 0x97a47a0, 4 syms/buckets in 0x8048594..0x80486c8
   typedef long long int __quad_t; 
   struct _IO_marker {
       struct _IO_marker *_next;
       struct _IO_FILE *_sbuf;
       int _pos;
   };

   typedef unsigned int unsigned int; 
   typedef long unsigned int long unsigned int; 
   typedef long long unsigned int long long unsigned int; 
   typedef long long int __off64_t; 
   typedef unsigned int size_t; 
   typedef int int; 
   typedef long int long int; 
   typedef long long int long long int; 
   typedef short unsigned int short unsigned int; 
   typedef signed char signed char; 
   typedef char char; 
   struct _IO_FILE {
       int _flags;
       char *_IO_read_ptr;
       char *_IO_read_end;
       char *_IO_read_base;
       char *_IO_write_base;
       char *_IO_write_ptr;
       char *_IO_write_end;
       char *_IO_buf_base;
       char *_IO_buf_end;
       char *_IO_save_base;
       char *_IO_backup_base;
       char *_IO_save_end;
       struct _IO_marker *_markers;
       struct _IO_FILE *_chain;
       int _fileno;
       int _flags2;
       __off_t _old_offset;
       short unsigned int _cur_column;
       signed char _vtable_offset;
       char _shortbuf[1];
       _IO_lock_t *_lock;
       __off64_t _offset;
       void *__pad1;
       void *__pad2;
       void *__pad3;
       void *__pad4;
       size_t __pad5;
       int _mode;
       char _unused2[40];
   };

   typedef void _IO_lock_t; 
   typedef unsigned char unsigned char; 
   typedef short int short int; 
   typedef long int __off_t; 
    block #002, object at 0x97a4358 under 0x97a4760, 3 syms/buckets in 0x8048594..0x80485c8, function foo
     int a; computed at runtime
     int b; computed at runtime
     int s; computed at runtime
    block #003, object at 0x97a467c under 0x97a4760, 5 syms/buckets in 0x80485c8..0x80486c8, function main
     int argc; computed at runtime
     char **argv; computed at runtime
     void *handle; computed at runtime
     int (*sum)(int, int); computed at runtime
     char *error; computed at runtime


Symtab for file /usr/include/i386-linux-gnu/bits/dlfcn.h
Compilation directory is /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug
Read from object file /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug/SharedLibraryTest (0x9788f40)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/include/dlfcn.h
Compilation directory is /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug
Read from object file /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug/SharedLibraryTest (0x9788f40)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/include/i386-linux-gnu/bits/sys_errlist.h
Compilation directory is /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug
Read from object file /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug/SharedLibraryTest (0x9788f40)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/include/i386-linux-gnu/bits/stdio_lim.h
Compilation directory is /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug
Read from object file /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug/SharedLibraryTest (0x9788f40)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/lib/gcc/i686-linux-gnu/4.6.1/include/stdarg.h
Compilation directory is /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug
Read from object file /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug/SharedLibraryTest (0x9788f40)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/include/wchar.h
Compilation directory is /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug
Read from object file /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug/SharedLibraryTest (0x9788f40)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/include/_G_config.h
Compilation directory is /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug
Read from object file /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug/SharedLibraryTest (0x9788f40)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/include/alloca.h
Compilation directory is /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug
Read from object file /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug/SharedLibraryTest (0x9788f40)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/include/i386-linux-gnu/bits/pthreadtypes.h
Compilation directory is /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug
Read from object file /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug/SharedLibraryTest (0x9788f40)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/include/i386-linux-gnu/sys/sysmacros.h
Compilation directory is /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug
Read from object file /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug/SharedLibraryTest (0x9788f40)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/include/i386-linux-gnu/bits/time.h
Compilation directory is /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug
Read from object file /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug/SharedLibraryTest (0x9788f40)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/include/i386-linux-gnu/bits/sigset.h
Compilation directory is /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug
Read from object file /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug/SharedLibraryTest (0x9788f40)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/include/i386-linux-gnu/bits/select.h
Compilation directory is /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug
Read from object file /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug/SharedLibraryTest (0x9788f40)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/include/i386-linux-gnu/sys/select.h
Compilation directory is /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug
Read from object file /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug/SharedLibraryTest (0x9788f40)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/include/time.h
Compilation directory is /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug
Read from object file /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug/SharedLibraryTest (0x9788f40)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/include/i386-linux-gnu/bits/typesizes.h
Compilation directory is /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug
Read from object file /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug/SharedLibraryTest (0x9788f40)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/include/i386-linux-gnu/sys/types.h
Compilation directory is /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug
Read from object file /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug/SharedLibraryTest (0x9788f40)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/include/i386-linux-gnu/bits/byteswap.h
Compilation directory is /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug
Read from object file /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug/SharedLibraryTest (0x9788f40)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/include/i386-linux-gnu/bits/endian.h
Compilation directory is /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug
Read from object file /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug/SharedLibraryTest (0x9788f40)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/include/endian.h
Compilation directory is /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug
Read from object file /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug/SharedLibraryTest (0x9788f40)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/include/i386-linux-gnu/bits/waitstatus.h
Compilation directory is /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug
Read from object file /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug/SharedLibraryTest (0x9788f40)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/include/i386-linux-gnu/bits/waitflags.h
Compilation directory is /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug
Read from object file /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug/SharedLibraryTest (0x9788f40)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/include/i386-linux-gnu/gnu/stubs-32.h
Compilation directory is /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug
Read from object file /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug/SharedLibraryTest (0x9788f40)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/include/i386-linux-gnu/gnu/stubs.h
Compilation directory is /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug
Read from object file /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug/SharedLibraryTest (0x9788f40)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/include/i386-linux-gnu/bits/wordsize.h
Compilation directory is /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug
Read from object file /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug/SharedLibraryTest (0x9788f40)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/include/i386-linux-gnu/sys/cdefs.h
Compilation directory is /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug
Read from object file /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug/SharedLibraryTest (0x9788f40)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/include/i386-linux-gnu/bits/predefs.h
Compilation directory is /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug
Read from object file /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug/SharedLibraryTest (0x9788f40)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/include/features.h
Compilation directory is /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug
Read from object file /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug/SharedLibraryTest (0x9788f40)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/include/stdlib.h
Compilation directory is /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug
Read from object file /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug/SharedLibraryTest (0x9788f40)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/include/stdio.h
Compilation directory is /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug
Read from object file /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug/SharedLibraryTest (0x9788f40)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/include/libio.h
Compilation directory is /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug
Read from object file /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug/SharedLibraryTest (0x9788f40)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/include/i386-linux-gnu/bits/types.h
Compilation directory is /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug
Read from object file /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug/SharedLibraryTest (0x9788f40)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/lib/gcc/i686-linux-gnu/4.6.1/include/stddef.h
Compilation directory is /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug
Read from object file /home/taimoor/Personal/Learning_Bench/Eclipse_CDT_Linux/WorkSpaces/GDB_Debugging/SharedLibraryTest/Debug/SharedLibraryTest (0x9788f40)
Language: c

Blockvector same as previous symtab


Symtab for file ../sharedLib.c
Compilation directory is /home/taimoor/Shared/sharedLib/Debug
Read from object file /home/taimoor/Shared/sharedLib/Debug/libsharedLib.so (0x9801288)
Language: c

Line table:

 line 11 at 0x2b847c
 line 12 at 0x2b848e
 line 13 at 0x2b8499
 line 14 at 0x2b84ba
 line 15 at 0x2b84bd
 line 0 at 0x2b84c3

Blockvector:

block #000, object at 0x985b918, 1 syms/buckets in 0x2b847c..0x2b84c3
 int foo(int, int); block object 0x985b850, 0x2b847c..0x2b84c3 section .text
 int globalTest; unresolved
 int globalTest; static at 0x2ba010 section .data
  block #001, object at 0x985b8dc under 0x985b918, 3 syms/buckets in 0x2b847c..0x2b84c3
   typedef unsigned char unsigned char; 
   typedef signed char signed char; 
   typedef long int long int; 
   typedef unsigned int unsigned int; 
   typedef short unsigned int short unsigned int; 
   typedef short int short int; 
   typedef long unsigned int long unsigned int; 
   typedef int int; 
   typedef long long int long long int; 
   typedef long long unsigned int long long unsigned int; 
   typedef char char; 
    block #002, object at 0x985b850 under 0x985b8dc, 3 syms/buckets in 0x2b847c..0x2b84c3, function foo
     int a; computed at runtime
     int b; computed at runtime
     int s; computed at runtime


Symtab for file /usr/include/i386-linux-gnu/bits/sys_errlist.h
Compilation directory is /home/taimoor/Shared/sharedLib/Debug
Read from object file /home/taimoor/Shared/sharedLib/Debug/libsharedLib.so (0x9801288)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/include/i386-linux-gnu/bits/stdio_lim.h
Compilation directory is /home/taimoor/Shared/sharedLib/Debug
Read from object file /home/taimoor/Shared/sharedLib/Debug/libsharedLib.so (0x9801288)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/lib/gcc/i686-linux-gnu/4.6.1/include/stdarg.h
Compilation directory is /home/taimoor/Shared/sharedLib/Debug
Read from object file /home/taimoor/Shared/sharedLib/Debug/libsharedLib.so (0x9801288)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/include/wchar.h
Compilation directory is /home/taimoor/Shared/sharedLib/Debug
Read from object file /home/taimoor/Shared/sharedLib/Debug/libsharedLib.so (0x9801288)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/include/_G_config.h
Compilation directory is /home/taimoor/Shared/sharedLib/Debug
Read from object file /home/taimoor/Shared/sharedLib/Debug/libsharedLib.so (0x9801288)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/include/libio.h
Compilation directory is /home/taimoor/Shared/sharedLib/Debug
Read from object file /home/taimoor/Shared/sharedLib/Debug/libsharedLib.so (0x9801288)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/include/i386-linux-gnu/bits/typesizes.h
Compilation directory is /home/taimoor/Shared/sharedLib/Debug
Read from object file /home/taimoor/Shared/sharedLib/Debug/libsharedLib.so (0x9801288)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/include/i386-linux-gnu/bits/types.h
Compilation directory is /home/taimoor/Shared/sharedLib/Debug
Read from object file /home/taimoor/Shared/sharedLib/Debug/libsharedLib.so (0x9801288)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/lib/gcc/i686-linux-gnu/4.6.1/include/stddef.h
Compilation directory is /home/taimoor/Shared/sharedLib/Debug
Read from object file /home/taimoor/Shared/sharedLib/Debug/libsharedLib.so (0x9801288)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/include/i386-linux-gnu/gnu/stubs-32.h
Compilation directory is /home/taimoor/Shared/sharedLib/Debug
Read from object file /home/taimoor/Shared/sharedLib/Debug/libsharedLib.so (0x9801288)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/include/i386-linux-gnu/gnu/stubs.h
Compilation directory is /home/taimoor/Shared/sharedLib/Debug
Read from object file /home/taimoor/Shared/sharedLib/Debug/libsharedLib.so (0x9801288)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/include/i386-linux-gnu/bits/wordsize.h
Compilation directory is /home/taimoor/Shared/sharedLib/Debug
Read from object file /home/taimoor/Shared/sharedLib/Debug/libsharedLib.so (0x9801288)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/include/i386-linux-gnu/sys/cdefs.h
Compilation directory is /home/taimoor/Shared/sharedLib/Debug
Read from object file /home/taimoor/Shared/sharedLib/Debug/libsharedLib.so (0x9801288)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/include/i386-linux-gnu/bits/predefs.h
Compilation directory is /home/taimoor/Shared/sharedLib/Debug
Read from object file /home/taimoor/Shared/sharedLib/Debug/libsharedLib.so (0x9801288)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/include/features.h
Compilation directory is /home/taimoor/Shared/sharedLib/Debug
Read from object file /home/taimoor/Shared/sharedLib/Debug/libsharedLib.so (0x9801288)
Language: c

Blockvector same as previous symtab


Symtab for file /usr/include/stdio.h
Compilation directory is /home/taimoor/Shared/sharedLib/Debug
Read from object file /home/taimoor/Shared/sharedLib/Debug/libsharedLib.so (0x9801288)
Language: c

Blockvector same as previous symtab
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.