This is the mail archive of the gdb@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]

dwarf2read.c:read_partial_die question


Hi,

I modified read_partial_die with my -file-list-exec-source-files patch.

I have this,
   4875  case DW_AT_name:
   4876
   4877    /* Prefer DW_AT_MIPS_linkage_name over DW_AT_name.  */
   4878    if (part_die->name == NULL)
   4879      part_die->name = DW_STRING (&attr);
   4880    break;
   4881  case DW_AT_comp_dir:
   4882    if (part_die->dirname == NULL)
   4883      part_die->dirname = DW_STRING (&attr);
   4884    break;

So, the question is, part_die->name is NULL and part_die->dirname is
NULL. Is this OK? Why would the name or the dirname of the file be NULL?


This is the comment in the testcase (twice.exp) that is producing this
behavior
       # Test that GDB can still detect whether we have line numbers
       # even if we're executing code in an include file.

This is what the dwarf2 spec says,
   A DW_AT_comp_dir attribute whose value is a null-terminated string
   containing the current
   working directory of the compilation command that produced this
   compilation unit in
   whatever form makes sense for the host system.
   The suggested form for the value of the DW_AT_comp_dir attribute on
   UNIX systems is
   hostname:pathname. If no hostname is available, the suggested form is
   :pathname.

Basically, it doens't say anything about it being NULL.

So, what I want to know is, is it valid that the value of part_die->dirname is
NULL and that the value of part_die->name is NULL?

Thanks,
Bob Rossi


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