Differences between revisions 6 and 7
Revision 6 as of 2013-09-06 11:50:41
Size: 1856
Editor: 134
Comment: Add upstream strategy
Revision 7 as of 2013-10-23 13:01:34
Size: 1821
Editor: 134
Comment: updated project page
Deletions are marked like this. Additions are marked like this.
Line 26: Line 26:
Current development is done on github branch vla.
 * https://github.com/ChristophTWeinmann/GDB/tree/vla
Current development can be tracked at:
 * http://intel-gdb.github.io/

The project was most recently described in this email.


This project aims to fix Fortran variable length arrays handling in gdb. It allows the user to evaluate VLA used in Fortran, C99, and Ada.


  • Changes in dwarf handling
    • Parse new dwarf attributes DW_AT_allocated, DW_AT_associated, and DW_AT_data_location in dwarf2.c and store them in struct main_type

    • Update copy_type_recursive to copy the newly added attributed

    • Dispatch new dwarf expression opcode DW_OP_push_object_address similar to DW_OP_GNU_push_tls_address in dwarf2expr.c

    • Extend read_array_type to parse attributes DW_AT_allocated, DW_AT_associated, DW_AT_bit_offset, DW_AT_bit_size, DW_AT_byte_size, DW_AT_count, DW_AT_lower_bound, DW_AT_byte_stride, {{{DW_AT_bit_stride, DW_AT_upper_bound, DW_AT_string_length as references and dwarf expressions in addition to constants.

Upstream Strategy

The current strategy is to split the VLA patches in three separated patch series:

  1. Support C99 VLA (GCC)
  2. Support C99 VLA (ICC)
  3. Support Fortran VLA
  4. Support Fortran variable length strings

As of now clang emits a bad location description for VLA and does to generate upper_bound/count attributes.

Ongoing Development

Current development can be tracked at:

Known implementations

There are at least two VLA implementations known to work with Fortran arrays/characters.


None: VariableLengthArray (last edited 2013-10-23 13:01:34 by 134)

All content (C) 2008 Free Software Foundation. For terms of use, redistribution, and modification, please see the WikiLicense page.