.symtab section is now broken ?

Aurelien NEPHTALI aurelien.nephtali at wanadoo.fr
Sun Oct 3 09:40:26 PDT 2004


I have coded some tools that read ELF binaries. Thet used to work 1 or 2 years
ago but now they don't. These tools parse an ELF file to get addresses of
malloc(),free(),etc into the PLT to put breakpoint on them.

The problem comes from the .symtab section. I'm using this struct to read

typedef struct          s_symhdr
  unsigned int          st_name;
  unsigned int          st_value;
  unsigned int          st_size;
  unsigned char         st_info;
  unsigned char         st_other;
  unsigned short        st_shndx;
}                       t_symhdr;

Before, the field 'st_value' contained the symbol's address into the PLT,
now it's null, ie (readelf output):

 71: 00000000    41 FUNC    GLOBAL DEFAULT  UND malloc

I was suspecting the new gcc so I installed gcc 2.95 but it's the same problem.

Is there a reason ? What to do to still get the value I want ?

I have tested on NetBSD 1.6.1 and it works fine.


NEPHTALI 'dak' Aurelien
TEK2 - Promo 2008

More information about the freebsd-current mailing list