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

DWARF-2 expression error in location list entries


   In dwarf2expr.c function execute_stack_op() there are two occurrences of
error() calls asserting :

         if (op_ptr != op_end && *op_ptr != DW_OP_piece)
            error (_("DWARF-2 expression error: DW_OP_reg operations must be "
                   "used either alone or in conjuction with DW_OP_piece."));

   A couple of us have looked for that first restriction in the DWARF3
standard and not found it.  I also went back to the DWARF2 standard
literally cited by the message and failed to find it there as well.  Can
anyone point out where to read the restriction these error() calls refer to?

   The expression we have in mind to add is to describe Fortran reference
parameters in location list entries like :

{ 0x4022720--0x4022724: DW_OP_regx  32 DW_OP_deref   }

Yes, we know that Gnu Fortran describes reference params in terms of passing
the underlying pointers by value instead of the original Fortran types by
reference, thereby avoiding this problem.  This is a case where we're trying
to be better instead of de facto standard.

						- Carl Burch
						  HP WDB Team

P.S. If anyone edits this file soon, you might want to fix the spelling of
"conjuction" in the message.


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