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