diff options
author | Hannes Domani <ssbssa@yahoo.de> | 2022-04-11 17:53:50 +0200 |
---|---|---|
committer | Hannes Domani <ssbssa@yahoo.de> | 2022-04-11 19:38:10 +0200 |
commit | 8b27d76d9e699f10b9f7d90b6d2cdf16e5bdf109 (patch) | |
tree | 53649811eb25c2004d9bdbfcb0d0c703cd3d7b3e | |
parent | e4405d097d465efe60f42992bcd2067ca530eb45 (diff) | |
download | binutils-gdb-8b27d76d9e699f10b9f7d90b6d2cdf16e5bdf109.tar.gz |
PDB: array
-rw-r--r-- | gdb/windows-nat.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/gdb/windows-nat.c b/gdb/windows-nat.c index e7930e931ef..9a590bbab1f 100644 --- a/gdb/windows-nat.c +++ b/gdb/windows-nat.c @@ -3517,6 +3517,26 @@ static type *get_pdb_type_cached (pdb_line_info *pli, DWORD type_index) } break; } + + case SymTagArrayType: + { + DWORD tid, index_tid; + DWORD count; + if (pli->fSymGetTypeInfo (pli->p, pli->addr, type_index, + TI_GET_TYPEID, &tid) + && pli->fSymGetTypeInfo (pli->p, pli->addr, type_index, + TI_GET_ARRAYINDEXTYPEID, &index_tid) + && pli->fSymGetTypeInfo (pli->p, pli->addr, type_index, + TI_GET_COUNT, &count)) + { + type *element_type = get_pdb_type (pli, tid); + type *index_type = get_pdb_type (pli, index_tid); + type *range_type + = create_static_range_type (NULL, index_type, 0, count - 1); + return create_array_type (NULL, element_type, range_type); + } + break; + } } return ot->builtin_void; |