aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.ctf/cross-tu-cyclic-3.c
diff options
context:
space:
mode:
authorWeimin Pan <weimin.pan@oracle.com>2021-09-18 20:41:29 -0400
committerWeimin Pan <weimin.pan@oracle.com>2021-09-18 20:41:29 -0400
commitffb3f587933f20bf9e6e9a26ac547a8589fac081 (patch)
treefd933456aeadd7e7608c4bc93d233724d5a50675 /gdb/testsuite/gdb.ctf/cross-tu-cyclic-3.c
parent3733650765bf40c8be16fe0a7b8adc0831cbfe22 (diff)
downloadgdb-ffb3f587933f20bf9e6e9a26ac547a8589fac081.zip
gdb-ffb3f587933f20bf9e6e9a26ac547a8589fac081.tar.gz
gdb-ffb3f587933f20bf9e6e9a26ac547a8589fac081.tar.bz2
CTF: multi-CU and archive support
Now gdb is capable of debugging executable, which consists of multiple compilation units (CUs) with the CTF debug info. An executable could potentially have one or more archives, which, in CTF context, contain conflicting types. all changes were made in ctfread.c in which elfctf_build_psymtabs was modified to handle archives, via the ctf archive iterator and its callback build_ctf_archive_member and scan_partial_symbols was modified to scan archives, which are treated as subfiles, to build the psymtabs. Also changes were made to handle CTF's data object section and function info section which now share the same format of their contents - an array of type IDs. New functions ctf_psymtab_add_stt_entries, which is called by ctf_psymtab_add_stt_obj and ctf_psymtab_add_stt_func, and add_stt_entries, which is called by add_stt_obj and add_stt_func when setting up psymtabs and full symtab, respectively.
Diffstat (limited to 'gdb/testsuite/gdb.ctf/cross-tu-cyclic-3.c')
-rw-r--r--gdb/testsuite/gdb.ctf/cross-tu-cyclic-3.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.ctf/cross-tu-cyclic-3.c b/gdb/testsuite/gdb.ctf/cross-tu-cyclic-3.c
new file mode 100644
index 0000000..19947e8
--- /dev/null
+++ b/gdb/testsuite/gdb.ctf/cross-tu-cyclic-3.c
@@ -0,0 +1,3 @@
+struct A { struct B *foo; };
+static struct A *a __attribute__((__used__));
+static struct A *conflicty __attribute__((__used__));