This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Dwarf2 Producer info


Hi

This is an obvious extension to plug a gap. 

I've some more changes to come that make use of this (specifically to
take account of broken g77) and also fix some longstanding array issues,
but I'm getting this easy one in the source before inflicting the
complex one on the world..  if anyone has a sharper eye than me for the
code formatting rules, please feel free to shout out!

Cheers 
David

2004-07-20  David Lecomber  <dsl@sources.redhat.com>

	* dwarf2read.c (set_cu_producer): New.


Index: dwarf2read.c
===================================================================
RCS file: /cvs/src/src/gdb/dwarf2read.c,v
retrieving revision 1.156
diff -p -r1.156 dwarf2read.c
*** dwarf2read.c	6 Jul 2004 19:29:30 -0000	1.156
--- dwarf2read.c	20 Jul 2004 22:12:07 -0000
*************** struct dwarf2_cu
*** 262,267 ****
--- 262,269 ----
    enum language language;
    const struct language_defn *language_defn;
  
+   const char* producer;
+ 
    /* The generic symbol table building routines have separate lists
for
       file scope symbols and all all other scopes (local scopes).  So
       we need to select the right one to pass to add_symbol_to_list().
*************** static char *skip_leb128 (bfd *, char *)
*** 739,744 ****
--- 741,748 ----
  
  static void set_cu_language (unsigned int, struct dwarf2_cu *);
  
+ static void set_cu_producer (const char*, struct dwarf2_cu *);
+ 
  static struct attribute *dwarf2_attr (struct die_info *, unsigned int,
  				      struct dwarf2_cu *);
  
*************** read_file_scope (struct die_info *die, s
*** 2362,2367 ****
--- 2366,2378 ----
        set_cu_language (DW_UNSND (attr), cu);
      }
  
+   attr = dwarf2_attr (die, DW_AT_producer, cu);
+   if (attr)
+     set_cu_producer (DW_STRING (attr), cu);
+   else 
+     set_cu_producer(NULL, cu);
+       
+   
    /* We assume that we're processing GCC output. */
    processing_gcc_compilation = 2;
  #if 0
*************** skip_leb128 (bfd *abfd, char *buf)
*** 5560,5565 ****
--- 5571,5582 ----
  }
  
  static void
+ set_cu_producer (const char* producer, struct dwarf2_cu *cu)
+ {
+   cu->producer = producer;
+ }
+ 
+ static void
  set_cu_language (unsigned int lang, struct dwarf2_cu *cu)
  {
    switch (lang)



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]