summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHannes Domani <ssbssa@yahoo.de>2022-04-11 17:53:50 +0200
committerHannes Domani <ssbssa@yahoo.de>2022-04-11 19:38:10 +0200
commit8b27d76d9e699f10b9f7d90b6d2cdf16e5bdf109 (patch)
tree53649811eb25c2004d9bdbfcb0d0c703cd3d7b3e
parente4405d097d465efe60f42992bcd2067ca530eb45 (diff)
downloadbinutils-gdb-8b27d76d9e699f10b9f7d90b6d2cdf16e5bdf109.tar.gz
PDB: array
-rw-r--r--gdb/windows-nat.c20
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;