mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-19 17:18:24 +08:00
libctf, ld: CTF dumper changes for consistency
In most places in CTF dumper output, we emit 0x... for hex strings, but in three places (top-level type IDs, string table offsets, and the file magic number) we don't emit the 0x. This is very confusing if by chance there are no hex digits in the output. Add 0x consistently to everything, and adjust tests accordingly. While we're at it, improve the indentation of the output so that subsequent lines in aggregate output are indented by at least as many columns as the colon in the type output. (Subsequent indentation is still 4 spaces at a time.) ld/ChangeLog 2021-01-05 Nick Alcock <nick.alcock@oracle.com> * testsuite/ld-ctf/array.d: Adjust for dumper changes. * testsuite/ld-ctf/conflicting-cycle-1.B-1.d: Likewise. * testsuite/ld-ctf/conflicting-cycle-1.B-2.d: Likewise. * testsuite/ld-ctf/conflicting-cycle-1.parent.d: Likewise. * testsuite/ld-ctf/conflicting-cycle-2.A-1.d: Likewise. * testsuite/ld-ctf/conflicting-cycle-2.A-2.d: Likewise. * testsuite/ld-ctf/conflicting-cycle-2.parent.d: Likewise. * testsuite/ld-ctf/conflicting-cycle-3.C-1.d: Likewise. * testsuite/ld-ctf/conflicting-cycle-3.C-2.d: Likewise. * testsuite/ld-ctf/conflicting-cycle-3.parent.d: Likewise. * testsuite/ld-ctf/conflicting-enums.d: Likewise. * testsuite/ld-ctf/conflicting-typedefs.d: Likewise. * testsuite/ld-ctf/cross-tu-cyclic-conflicting.d: Likewise. * testsuite/ld-ctf/cross-tu-cyclic-nonconflicting.d: Likewise. * testsuite/ld-ctf/cross-tu-into-cycle.d: Likewise. * testsuite/ld-ctf/cross-tu-noncyclic.d: Likewise. * testsuite/ld-ctf/cycle-1.d: Likewise. * testsuite/ld-ctf/cycle-2.A.d: Likewise. * testsuite/ld-ctf/cycle-2.B.d: Likewise. * testsuite/ld-ctf/cycle-2.C.d: Likewise. * testsuite/ld-ctf/data-func-conflicted.d: Likewise. * testsuite/ld-ctf/diag-cttname-null.d: Likewise. * testsuite/ld-ctf/diag-cuname.d: Likewise. * testsuite/ld-ctf/diag-parlabel.d: Likewise. * testsuite/ld-ctf/diag-wrong-magic-number-mixed.d: Likewise. * testsuite/ld-ctf/function.d: Likewise. * testsuite/ld-ctf/slice.d: Likewise. * testsuite/ld-ctf/super-sub-cycles.d: Likewise. libctf/ChangeLog 2021-01-05 Nick Alcock <nick.alcock@oracle.com> * ctf-dump.c (ctf_dump_format_type): Add 0x to hex type IDs. (ctf_dump_header): Add 0x to the hex magic number. (ctf_dump_str): Add 0x to the hex string offsets. (ctf_dump_membstate_t) <cdm_toplevel_indent>: New. (ctf_dump_type): Adjust. Free it when we're done. (type_hex_digits): New. (ctf_dump_member): Align output depending on the width of the type ID being generated. Use printf padding, not a loop, to generate indentation.
This commit is contained in:
31
ld/ChangeLog
31
ld/ChangeLog
@ -1,3 +1,34 @@
|
||||
2021-01-05 Nick Alcock <nick.alcock@oracle.com>
|
||||
|
||||
* testsuite/ld-ctf/array.d: Adjust for dumper changes.
|
||||
* testsuite/ld-ctf/conflicting-cycle-1.B-1.d: Likewise.
|
||||
* testsuite/ld-ctf/conflicting-cycle-1.B-2.d: Likewise.
|
||||
* testsuite/ld-ctf/conflicting-cycle-1.parent.d: Likewise.
|
||||
* testsuite/ld-ctf/conflicting-cycle-2.A-1.d: Likewise.
|
||||
* testsuite/ld-ctf/conflicting-cycle-2.A-2.d: Likewise.
|
||||
* testsuite/ld-ctf/conflicting-cycle-2.parent.d: Likewise.
|
||||
* testsuite/ld-ctf/conflicting-cycle-3.C-1.d: Likewise.
|
||||
* testsuite/ld-ctf/conflicting-cycle-3.C-2.d: Likewise.
|
||||
* testsuite/ld-ctf/conflicting-cycle-3.parent.d: Likewise.
|
||||
* testsuite/ld-ctf/conflicting-enums.d: Likewise.
|
||||
* testsuite/ld-ctf/conflicting-typedefs.d: Likewise.
|
||||
* testsuite/ld-ctf/cross-tu-cyclic-conflicting.d: Likewise.
|
||||
* testsuite/ld-ctf/cross-tu-cyclic-nonconflicting.d: Likewise.
|
||||
* testsuite/ld-ctf/cross-tu-into-cycle.d: Likewise.
|
||||
* testsuite/ld-ctf/cross-tu-noncyclic.d: Likewise.
|
||||
* testsuite/ld-ctf/cycle-1.d: Likewise.
|
||||
* testsuite/ld-ctf/cycle-2.A.d: Likewise.
|
||||
* testsuite/ld-ctf/cycle-2.B.d: Likewise.
|
||||
* testsuite/ld-ctf/cycle-2.C.d: Likewise.
|
||||
* testsuite/ld-ctf/data-func-conflicted.d: Likewise.
|
||||
* testsuite/ld-ctf/diag-cttname-null.d: Likewise.
|
||||
* testsuite/ld-ctf/diag-cuname.d: Likewise.
|
||||
* testsuite/ld-ctf/diag-parlabel.d: Likewise.
|
||||
* testsuite/ld-ctf/diag-wrong-magic-number-mixed.d: Likewise.
|
||||
* testsuite/ld-ctf/function.d: Likewise.
|
||||
* testsuite/ld-ctf/slice.d: Likewise.
|
||||
* testsuite/ld-ctf/super-sub-cycles.d: Likewise.
|
||||
|
||||
2021-01-05 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* testsuite/ld-scripts/sysroot-prefix.exp: Exclude some targets.
|
||||
|
@ -10,7 +10,7 @@
|
||||
Contents of CTF section .ctf:
|
||||
|
||||
Header:
|
||||
Magic number: dff2
|
||||
Magic number: 0xdff2
|
||||
Version: 4 \(CTF_VERSION_3\)
|
||||
#...
|
||||
Data object section: .* \(0x8 bytes\)
|
||||
@ -29,7 +29,7 @@ Contents of CTF section .ctf:
|
||||
|
||||
Types:
|
||||
#...
|
||||
[0-9a-f]*: .*\[10\] .*
|
||||
0x[0-9a-f]*: .*\[10\] .*
|
||||
#...
|
||||
[0-9a-f]*: .*\[10\] .*
|
||||
0x[0-9a-f]*: .*\[10\] .*
|
||||
#...
|
||||
|
@ -14,7 +14,7 @@
|
||||
CTF archive member: .*/B.c:
|
||||
|
||||
Header:
|
||||
Magic number: dff2
|
||||
Magic number: 0xdff2
|
||||
Version: 4 \(CTF_VERSION_3\)
|
||||
#...
|
||||
Parent name: .ctf
|
||||
@ -30,12 +30,12 @@ CTF archive member: .*/B.c:
|
||||
Function objects:
|
||||
|
||||
Variables:
|
||||
b -> 80000001: struct B \(size 0x[0-9]*\)
|
||||
b -> 0x80000001: struct B \(size 0x[0-9]*\)
|
||||
|
||||
Types:
|
||||
8[0-9a-f]*: struct B .*
|
||||
\[0x0\] \(ID 0x8[0-9a-f]*\) \(kind 6\) struct B \(.*
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct C \* c \(.*
|
||||
0x8[0-9a-f]*: struct B .*
|
||||
*\[0x0\] \(ID 0x8[0-9a-f]*\) \(kind 6\) struct B \(.*
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct C \* c \(.*
|
||||
|
||||
Strings:
|
||||
#...
|
||||
|
@ -14,7 +14,7 @@
|
||||
CTF archive member: .*/B-2.c:
|
||||
|
||||
Header:
|
||||
Magic number: dff2
|
||||
Magic number: 0xdff2
|
||||
Version: 4 \(CTF_VERSION_3\)
|
||||
#...
|
||||
Parent name: .ctf
|
||||
@ -30,13 +30,13 @@ CTF archive member: .*/B-2.c:
|
||||
Function objects:
|
||||
|
||||
Variables:
|
||||
b -> 80000001: struct B \(.*
|
||||
b -> 0x80000001: struct B \(.*
|
||||
|
||||
Types:
|
||||
8[0-9a-f]*: struct B \(.*
|
||||
\[0x0\] \(ID 0x8[0-9a-f]*\) \(kind 6\) struct B \(.*
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct C \* c \(.*
|
||||
\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 1\) int wombat:32 \(aligned at 0x[0-9a-f]*, format 0x1, offset:bits 0x0:0x[0-9a-f]*\)
|
||||
0x8[0-9a-f]*: struct B \(.*
|
||||
*\[0x0\] \(ID 0x8[0-9a-f]*\) \(kind 6\) struct B \(.*
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct C \* c \(.*
|
||||
*\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 1\) int wombat:32 \(aligned at 0x[0-9a-f]*, format 0x1, offset:bits 0x0:0x[0-9a-f]*\)
|
||||
|
||||
Strings:
|
||||
#...
|
||||
|
@ -13,7 +13,7 @@
|
||||
Contents of CTF section .ctf:
|
||||
|
||||
Header:
|
||||
Magic number: dff2
|
||||
Magic number: 0xdff2
|
||||
Version: 4 \(CTF_VERSION_3\)
|
||||
#...
|
||||
Type section: .* \(0xac bytes\)
|
||||
@ -29,8 +29,8 @@ Contents of CTF section .ctf:
|
||||
#...
|
||||
Types:
|
||||
#...
|
||||
[0-9a-f]*: struct B \(.*
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 9\) struct B \(.*
|
||||
0x[0-9a-f]*: struct B \(.*
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 9\) struct B \(.*
|
||||
#...
|
||||
CTF archive member: .*:
|
||||
#...
|
||||
|
@ -16,7 +16,7 @@
|
||||
CTF archive member: .*/A.c:
|
||||
|
||||
Header:
|
||||
Magic number: dff2
|
||||
Magic number: 0xdff2
|
||||
Version: 4 \(CTF_VERSION_3\)
|
||||
#...
|
||||
Parent name: .*
|
||||
@ -29,13 +29,13 @@ CTF archive member: .*/A.c:
|
||||
Function objects:
|
||||
|
||||
Variables:
|
||||
a -> 80000001: struct A \(size 0x[0-9a-f]*\)
|
||||
a -> 0x80000001: struct A \(size 0x[0-9a-f]*\)
|
||||
|
||||
Types:
|
||||
8[0-9a-f]*: struct A \(size 0x[0-9a-f]*\)
|
||||
\[0x0\] \(ID 0x8[0-9a-f]*\) \(kind 6\) struct A \(aligned at 0x[0-9a-f]*\)
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* b \(aligned at 0x[0-9a-f]*\)
|
||||
0x8[0-9a-f]*: struct A \(size 0x[0-9a-f]*\)
|
||||
*\[0x0\] \(ID 0x8[0-9a-f]*\) \(kind 6\) struct A \(aligned at 0x[0-9a-f]*\)
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* b \(aligned at 0x[0-9a-f]*\)
|
||||
|
||||
Strings:
|
||||
0:
|
||||
0x0:
|
||||
#...
|
||||
|
@ -16,7 +16,7 @@
|
||||
CTF archive member: .*/A-2.c:
|
||||
|
||||
Header:
|
||||
Magic number: dff2
|
||||
Magic number: 0xdff2
|
||||
Version: 4 \(CTF_VERSION_3\)
|
||||
#...
|
||||
Parent name: .*
|
||||
@ -29,14 +29,14 @@ CTF archive member: .*/A-2.c:
|
||||
Function objects:
|
||||
|
||||
Variables:
|
||||
a -> 80000001: struct A \(size 0x[0-9a-f]*\)
|
||||
a -> 0x80000001: struct A \(size 0x[0-9a-f]*\)
|
||||
|
||||
Types:
|
||||
8[0-9a-f]*: struct A \(size 0x[0-9a-f]*\)
|
||||
\[0x0\] \(ID 0x8[0-9a-f]*\) \(kind 6\) struct A \(aligned at 0x[0-9a-f]*\)
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* b \(aligned at 0x[0-9a-f]*\)
|
||||
\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 1\) int wombat:32 \(aligned at 0x[0-9a-f]*, format 0x1, offset:bits 0x0:0x[0-9a-f]*\)
|
||||
0x8[0-9a-f]*: struct A \(size 0x[0-9a-f]*\)
|
||||
*\[0x0\] \(ID 0x8[0-9a-f]*\) \(kind 6\) struct A \(aligned at 0x[0-9a-f]*\)
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* b \(aligned at 0x[0-9a-f]*\)
|
||||
*\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 1\) int wombat:32 \(aligned at 0x[0-9a-f]*, format 0x1, offset:bits 0x0:0x[0-9a-f]*\)
|
||||
|
||||
Strings:
|
||||
0:
|
||||
0x0:
|
||||
#...
|
||||
|
@ -15,7 +15,7 @@
|
||||
Contents of CTF section .ctf:
|
||||
|
||||
Header:
|
||||
Magic number: dff2
|
||||
Magic number: 0xdff2
|
||||
Version: 4 \(CTF_VERSION_3\)
|
||||
#...
|
||||
Type section: .* \(0x94 bytes\)
|
||||
@ -28,13 +28,13 @@ Contents of CTF section .ctf:
|
||||
Function objects:
|
||||
|
||||
Variables:
|
||||
cycle_1 -> [0-9a-f]*: struct cycle_1 \* \(size 0x[0-9a-f]*\) -> [0-9a-f]*: struct cycle_1 \(size 0x[0-9a-f]*\)
|
||||
cycle_1 -> 0x[0-9a-f]*: struct cycle_1 \* \(size 0x[0-9a-f]*\) -> 0x[0-9a-f]*: struct cycle_1 \(size 0x[0-9a-f]*\)
|
||||
|
||||
Types:
|
||||
#...
|
||||
[0-9a-f]*: struct cycle_1 \(size 0x[0-9a-f]*\)
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct cycle_1 \(aligned at 0x[0-9a-f]*\)
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct A \* a \(aligned at 0x[0-9a-f]*\)
|
||||
\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* b \(aligned at 0x[0-9a-f]*\)
|
||||
\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct cycle_1 \* next \(aligned at 0x[0-9a-f]*\)
|
||||
0x[0-9a-f]*: struct cycle_1 \(size 0x[0-9a-f]*\)
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct cycle_1 \(aligned at 0x[0-9a-f]*\)
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct A \* a \(aligned at 0x[0-9a-f]*\)
|
||||
*\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* b \(aligned at 0x[0-9a-f]*\)
|
||||
*\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct cycle_1 \* next \(aligned at 0x[0-9a-f]*\)
|
||||
#...
|
||||
|
@ -15,7 +15,7 @@
|
||||
CTF archive member: .*/C.c:
|
||||
|
||||
Header:
|
||||
Magic number: dff2
|
||||
Magic number: 0xdff2
|
||||
Version: 4 \(CTF_VERSION_3\)
|
||||
#...
|
||||
Parent name: .*
|
||||
@ -28,13 +28,13 @@ CTF archive member: .*/C.c:
|
||||
Function objects:
|
||||
|
||||
Variables:
|
||||
c -> 80000001: struct C \(size 0x[0-9a-f]*\)
|
||||
c -> 0x80000001: struct C \(size 0x[0-9a-f]*\)
|
||||
|
||||
Types:
|
||||
8[0-9a-f]*: struct C \(size 0x[0-9a-f]*\)
|
||||
\[0x0\] \(ID 0x8[0-9a-f]*\) \(kind 6\) struct C \(aligned at 0x[0-9a-f]*\)
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct A \* a \(aligned at 0x[0-9a-f]*\)
|
||||
0x8[0-9a-f]*: struct C \(size 0x[0-9a-f]*\)
|
||||
*\[0x0\] \(ID 0x8[0-9a-f]*\) \(kind 6\) struct C \(aligned at 0x[0-9a-f]*\)
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct A \* a \(aligned at 0x[0-9a-f]*\)
|
||||
|
||||
Strings:
|
||||
0:
|
||||
0x0:
|
||||
#...
|
||||
|
@ -15,7 +15,7 @@
|
||||
CTF archive member: .*/C-2.c:
|
||||
|
||||
Header:
|
||||
Magic number: dff2
|
||||
Magic number: 0xdff2
|
||||
Version: 4 \(CTF_VERSION_3\)
|
||||
#...
|
||||
Parent name: .*
|
||||
@ -28,14 +28,14 @@ CTF archive member: .*/C-2.c:
|
||||
Function objects:
|
||||
|
||||
Variables:
|
||||
c -> 80000001: struct C \(size 0x[0-9a-f]*\)
|
||||
c -> 0x80000001: struct C \(size 0x[0-9a-f]*\)
|
||||
|
||||
Types:
|
||||
8[0-9a-f]*: struct C \(size 0x[0-9a-f]*\)
|
||||
\[0x0\] \(ID 0x8[0-9a-f]*\) \(kind 6\) struct C \(aligned at 0x[0-9a-f]*\)
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct A \* a \(aligned at 0x[0-9a-f]*\)
|
||||
\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 1\) int wombat:[0-9]* \(aligned at 0x[0-9a-f]*, format 0x1, offset:bits 0x0:0x[0-9a-f]*\)
|
||||
0x8[0-9a-f]*: struct C \(size 0x[0-9a-f]*\)
|
||||
*\[0x0\] \(ID 0x8[0-9a-f]*\) \(kind 6\) struct C \(aligned at 0x[0-9a-f]*\)
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct A \* a \(aligned at 0x[0-9a-f]*\)
|
||||
*\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 1\) int wombat:[0-9]* \(aligned at 0x[0-9a-f]*, format 0x1, offset:bits 0x0:0x[0-9a-f]*\)
|
||||
|
||||
Strings:
|
||||
0:
|
||||
0x0:
|
||||
#...
|
||||
|
@ -14,7 +14,7 @@
|
||||
Contents of CTF section .ctf:
|
||||
|
||||
Header:
|
||||
Magic number: dff2
|
||||
Magic number: 0xdff2
|
||||
Version: 4 \(CTF_VERSION_3\)
|
||||
#...
|
||||
Type section: 0x0 -- 0x57 \(0x58 bytes\)
|
||||
@ -30,9 +30,9 @@ Contents of CTF section .ctf:
|
||||
|
||||
Types:
|
||||
#...
|
||||
[0-9a-f]*: int \[0x0:0x[0-9a-f]*\] \(size 0x[0-9a-f]*\)
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) int:[0-9]* \(aligned at 0x[0-9a-f]*, format 0x1, offset:bits 0x0:0x[0-9a-f]*\)
|
||||
0x[0-9a-f]*: int \[0x0:0x[0-9a-f]*\] \(size 0x[0-9a-f]*\)
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) int:[0-9]* \(aligned at 0x[0-9a-f]*, format 0x1, offset:bits 0x0:0x[0-9a-f]*\)
|
||||
#...
|
||||
Strings:
|
||||
0:
|
||||
0x0:
|
||||
#...
|
||||
|
@ -10,7 +10,7 @@
|
||||
Contents of CTF section .ctf:
|
||||
|
||||
Header:
|
||||
Magic number: dff2
|
||||
Magic number: 0xdff2
|
||||
Version: 4 \(CTF_VERSION_3\)
|
||||
#...
|
||||
Types:
|
||||
@ -20,16 +20,16 @@ Contents of CTF section .ctf:
|
||||
CTF archive member: .*enum.*\.c:
|
||||
#...
|
||||
Types:
|
||||
8[0-9a-f]*: enum day_of_the_week \(size 0x[0-9a-f]*\)
|
||||
\[0x0\] \(ID 0x8[0-9a-f]*\) \(kind 8\) enum day_of_the_week \(aligned at 0x[0-9a-f]*\)
|
||||
0x8[0-9a-f]*: enum day_of_the_week \(size 0x[0-9a-f]*\)
|
||||
*\[0x0\] \(ID 0x8[0-9a-f]*\) \(kind 8\) enum day_of_the_week \(aligned at 0x[0-9a-f]*\)
|
||||
|
||||
Strings:
|
||||
#...
|
||||
CTF archive member: .*enum.*\.c:
|
||||
#...
|
||||
Types:
|
||||
8[0-9a-f]*: enum day_of_the_week \(size 0x[0-9a-f]*\)
|
||||
\[0x0\] \(ID 0x8[0-9a-f]*\) \(kind 8\) enum day_of_the_week \(aligned at 0x[0-9a-f]*\)
|
||||
0x8[0-9a-f]*: enum day_of_the_week \(size 0x[0-9a-f]*\)
|
||||
*\[0x0\] \(ID 0x8[0-9a-f]*\) \(kind 8\) enum day_of_the_week \(aligned at 0x[0-9a-f]*\)
|
||||
|
||||
Strings:
|
||||
#...
|
||||
|
@ -10,24 +10,24 @@
|
||||
Contents of CTF section .ctf:
|
||||
|
||||
Header:
|
||||
Magic number: dff2
|
||||
Magic number: 0xdff2
|
||||
Version: 4 \(CTF_VERSION_3\)
|
||||
#...
|
||||
Types:
|
||||
1: .*int .*
|
||||
.*
|
||||
[0-9]:.*int .*
|
||||
.*
|
||||
[0-9]: word .*
|
||||
\[0x0\] \(ID 0x[0-9]\) \(kind 10\) word \(aligned at 0x[48]\)
|
||||
0x1: .*int .*
|
||||
.*
|
||||
0x[0-9]:.*int .*
|
||||
.*
|
||||
0x[0-9]: word .*
|
||||
*\[0x0\] \(ID 0x[0-9]\) \(kind 10\) word \(aligned at 0x[48]\)
|
||||
|
||||
Strings:
|
||||
#...
|
||||
CTF archive member: .*typedef.*\.c:
|
||||
#...
|
||||
Types:
|
||||
80000001: word .*
|
||||
\[0x0\] \(ID 0x80000001\) \(kind 10\) word \(aligned at 0x[48]\)
|
||||
0x80000001: word .*
|
||||
*\[0x0\] \(ID 0x80000001\) \(kind 10\) word \(aligned at 0x[48]\)
|
||||
|
||||
Strings:
|
||||
#...
|
||||
|
@ -14,20 +14,20 @@ Contents of CTF section \.ctf:
|
||||
#...
|
||||
Types:
|
||||
#...
|
||||
[0-9a-f]*: long int \[0x0:0x[0-9a-f]*\] \(size 0x[0-9a-f]*\)
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) long int:[0-9]* \(aligned at 0x[0-9a-f]*, format 0x1, offset:bits 0x0:0x[0-9a-f]*\)
|
||||
0x[0-9a-f]*: long int \[0x0:0x[0-9a-f]*\] \(size 0x[0-9a-f]*\)
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) long int:[0-9]* \(aligned at 0x[0-9a-f]*, format 0x1, offset:bits 0x0:0x[0-9a-f]*\)
|
||||
#...
|
||||
[0-9a-f]*: struct B .*
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct B .*
|
||||
0x[0-9a-f]*: struct B .*
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct B .*
|
||||
#...
|
||||
[0-9a-f]*: int \[0x0:0x[0-9a-f]*\] \(size 0x[0-9a-f]*\)
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) int:[0-9]* \(aligned at 0x[0-9a-f]*, format 0x1, offset:bits 0x0:0x[0-9a-f]*\)
|
||||
0x[0-9a-f]*: int \[0x0:0x[0-9a-f]*\] \(size 0x[0-9a-f]*\)
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) int:[0-9]* \(aligned at 0x[0-9a-f]*, format 0x1, offset:bits 0x0:0x[0-9a-f]*\)
|
||||
#...
|
||||
[0-9a-f]*: struct A .*
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 9\) struct A .*
|
||||
0x[0-9a-f]*: struct A .*
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 9\) struct A .*
|
||||
#...
|
||||
[0-9a-f]*: struct C .*
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct C .*
|
||||
0x[0-9a-f]*: struct C .*
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct C .*
|
||||
#...
|
||||
|
||||
Strings:
|
||||
@ -36,10 +36,10 @@ Contents of CTF section \.ctf:
|
||||
CTF archive member: .*/ld/testsuite/ld-ctf/cross-tu-cyclic-1\.c:
|
||||
#...
|
||||
Types:
|
||||
80.*[0-9a-f]*: struct A .*
|
||||
\[0x0\] \(ID 0x80.*\) \(kind 6\) struct A .*
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) long int a:.*
|
||||
\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* foo .*
|
||||
0x80.*[0-9a-f]*: struct A .*
|
||||
*\[0x0\] \(ID 0x80.*\) \(kind 6\) struct A .*
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) long int a:.*
|
||||
*\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* foo .*
|
||||
|
||||
Strings:
|
||||
#...
|
||||
@ -47,11 +47,11 @@ CTF archive member: .*/ld/testsuite/ld-ctf/cross-tu-cyclic-1\.c:
|
||||
CTF archive member: .*/ld/testsuite/ld-ctf/cross-tu-cyclic-2\.c:
|
||||
#...
|
||||
Types:
|
||||
80.*[0-9a-f]*: struct A .*
|
||||
\[0x0\] \(ID 0x80.*\) \(kind 6\) struct A .*
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) long int a:.*
|
||||
\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* foo .*
|
||||
\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct C \* bar .*
|
||||
0x80.*[0-9a-f]*: struct A .*
|
||||
*\[0x0\] \(ID 0x80.*\) \(kind 6\) struct A .*
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) long int a:.*
|
||||
*\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* foo .*
|
||||
*\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct C \* bar .*
|
||||
|
||||
Strings:
|
||||
#...
|
||||
|
@ -14,7 +14,7 @@
|
||||
Contents of CTF section .ctf:
|
||||
|
||||
Header:
|
||||
Magic number: dff2
|
||||
Magic number: 0xdff2
|
||||
Version: 4 \(CTF_VERSION_3\)
|
||||
#...
|
||||
|
||||
@ -29,22 +29,22 @@ Contents of CTF section .ctf:
|
||||
|
||||
Types:
|
||||
#...
|
||||
[0-9a-f]*: struct A \(size 0x[0-9a-f]*\)
|
||||
\[0x0\] \(ID 0x[0-9a-f]\) \(kind 6\) struct A \(aligned at 0x[0-9a-f]*\)
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) long int a:[0-9]* \(aligned at 0x[0-9a-f]*, format 0x1, offset:bits 0x0:0x[0-9a-f]*\)
|
||||
\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* foo \(aligned at 0x[0-9a-f]*\)
|
||||
[0-9a-f]*: long int .*
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) long int:[0-9].*
|
||||
[0-9a-f]*: struct B \(size 0x[0-9a-f]*\)
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct B \(aligned at 0x[0-9a-f]*\)
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) int foo:[0-9]* \(aligned at 0x[0-9a-f]*, format 0x1, offset:bits 0x0:0x[0-9a-f]*\)
|
||||
\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct A \* bar \(aligned at 0x[0-9a-f]*\)
|
||||
[0-9a-f]*: struct B \* \(size 0x[0-9a-f]*\) -> [0-9a-f]*: struct B \(size 0x[0-9a-f]*\)
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* \(aligned at 0x[0-9a-f]*\)
|
||||
[0-9a-f]*: struct A \* \(size 0x[0-9a-f]*\) -> [0-9a-f]*: struct A \(size 0x[0-9a-f]*\)
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct A \* \(aligned at 0x[0-9a-f]*\)
|
||||
[0-9a-f]*: int .*
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) int:.*
|
||||
0x[0-9a-f]*: struct A \(size 0x[0-9a-f]*\)
|
||||
*\[0x0\] \(ID 0x[0-9a-f]\) \(kind 6\) struct A \(aligned at 0x[0-9a-f]*\)
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) long int a:[0-9]* \(aligned at 0x[0-9a-f]*, format 0x1, offset:bits 0x0:0x[0-9a-f]*\)
|
||||
*\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* foo \(aligned at 0x[0-9a-f]*\)
|
||||
0x[0-9a-f]*: long int .*
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) long int:[0-9].*
|
||||
0x[0-9a-f]*: struct B \(size 0x[0-9a-f]*\)
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct B \(aligned at 0x[0-9a-f]*\)
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) int foo:[0-9]* \(aligned at 0x[0-9a-f]*, format 0x1, offset:bits 0x0:0x[0-9a-f]*\)
|
||||
*\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct A \* bar \(aligned at 0x[0-9a-f]*\)
|
||||
0x[0-9a-f]*: struct B \* \(size 0x[0-9a-f]*\) -> 0x[0-9a-f]*: struct B \(size 0x[0-9a-f]*\)
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* \(aligned at 0x[0-9a-f]*\)
|
||||
0x[0-9a-f]*: struct A \* \(size 0x[0-9a-f]*\) -> 0x[0-9a-f]*: struct A \(size 0x[0-9a-f]*\)
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct A \* \(aligned at 0x[0-9a-f]*\)
|
||||
0x[0-9a-f]*: int .*
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) int:.*
|
||||
|
||||
Strings:
|
||||
#...
|
||||
|
@ -16,7 +16,7 @@
|
||||
Contents of CTF section .ctf:
|
||||
|
||||
Header:
|
||||
Magic number: dff2
|
||||
Magic number: 0xdff2
|
||||
Version: 4 \(CTF_VERSION_3\)
|
||||
#...
|
||||
|
||||
@ -31,16 +31,16 @@ Contents of CTF section .ctf:
|
||||
conflicty -> .*
|
||||
|
||||
Types:
|
||||
[0-9a-f]*: struct A .*
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct A .*
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* foo .*
|
||||
[0-9a-f]*: struct B .*
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct B .*
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* next .*
|
||||
[0-9a-f]*: struct B \* .*
|
||||
\[0x0\] .*
|
||||
[0-9a-f]*: struct A \* .*
|
||||
\[0x0\] .*
|
||||
0x[0-9a-f]*: struct A .*
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct A .*
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* foo .*
|
||||
0x[0-9a-f]*: struct B .*
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct B .*
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* next .*
|
||||
0x[0-9a-f]*: struct B \* .*
|
||||
*\[0x0\] .*
|
||||
0x[0-9a-f]*: struct A \* .*
|
||||
*\[0x0\] .*
|
||||
|
||||
Strings:
|
||||
#...
|
||||
|
@ -12,7 +12,7 @@
|
||||
Contents of CTF section .ctf:
|
||||
|
||||
Header:
|
||||
Magic number: dff2
|
||||
Magic number: 0xdff2
|
||||
Version: 4 \(CTF_VERSION_3\)
|
||||
#...
|
||||
Type section: .* \(0x74 bytes\)
|
||||
@ -29,18 +29,18 @@ Contents of CTF section .ctf:
|
||||
|
||||
Types:
|
||||
#...
|
||||
[0-9a-f]*: struct A .*
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct A .*
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) long int a:[0-9]* .*
|
||||
\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* foo .*
|
||||
0x[0-9a-f]*: struct A .*
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct A .*
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) long int a:[0-9]* .*
|
||||
*\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* foo .*
|
||||
#...
|
||||
[0-9a-f]*: struct B .*
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct B .*
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) int foo:[0-9]* .*
|
||||
0x[0-9a-f]*: struct B .*
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct B .*
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) int foo:[0-9]* .*
|
||||
#...
|
||||
[0-9a-f]*: struct B \* \(size 0x[0-9a-f]*\) -\> [0-9a-f]*: struct B .*
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* .*
|
||||
0x[0-9a-f]*: struct B \* \(size 0x[0-9a-f]*\) -> 0x[0-9a-f]*: struct B .*
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* .*
|
||||
#...
|
||||
[0-9a-f]*: struct A \* \(size 0x[0-9a-f]*\) -> [0-9a-f]*: struct A .*
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct A \* .*
|
||||
0x[0-9a-f]*: struct A \* \(size 0x[0-9a-f]*\) -> 0x[0-9a-f]*: struct A .*
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct A \* .*
|
||||
#...
|
||||
|
@ -12,7 +12,7 @@
|
||||
Contents of CTF section .ctf:
|
||||
|
||||
Header:
|
||||
Magic number: dff2
|
||||
Magic number: 0xdff2
|
||||
Version: 4 \(CTF_VERSION_3\)
|
||||
#...
|
||||
Type section: .* \(0xa8 bytes\)
|
||||
@ -28,9 +28,9 @@ Contents of CTF section .ctf:
|
||||
#...
|
||||
Types:
|
||||
#...
|
||||
[0-9a-f]*: struct cycle_1 \(.*
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct cycle_1 \(.*
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct A \* a \(.*
|
||||
\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* b \(.*
|
||||
\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct cycle_1 \* next \(.*
|
||||
0x[0-9a-f]*: struct cycle_1 \(.*
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct cycle_1 \(.*
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct A \* a \(.*
|
||||
*\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* b \(.*
|
||||
*\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct cycle_1 \* next \(.*
|
||||
#...
|
||||
|
@ -11,7 +11,7 @@
|
||||
Contents of CTF section .ctf:
|
||||
|
||||
Header:
|
||||
Magic number: dff2
|
||||
Magic number: 0xdff2
|
||||
Version: 4 \(CTF_VERSION_3\)
|
||||
#...
|
||||
Type section: .* \(0x6c bytes\)
|
||||
@ -25,16 +25,16 @@ Contents of CTF section .ctf:
|
||||
|
||||
Variables:
|
||||
#...
|
||||
a -> [0-9a-f]*: struct A \(.*
|
||||
a -> 0x[0-9a-f]*: struct A \(.*
|
||||
#...
|
||||
Types:
|
||||
#...
|
||||
[0-9a-f]*: struct A \(.*
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct A \(.*
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* b \(.*
|
||||
0x[0-9a-f]*: struct A \(.*
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct A \(.*
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* b \(.*
|
||||
#...
|
||||
Strings:
|
||||
0:
|
||||
0x0:
|
||||
#...
|
||||
[0-9a-f]*: A
|
||||
0x[0-9a-f]*: A
|
||||
#...
|
||||
|
@ -11,7 +11,7 @@
|
||||
Contents of CTF section .ctf:
|
||||
|
||||
Header:
|
||||
Magic number: dff2
|
||||
Magic number: 0xdff2
|
||||
Version: 4 \(CTF_VERSION_3\)
|
||||
#...
|
||||
Type section: .* \(0x6c bytes\)
|
||||
@ -25,16 +25,16 @@ Contents of CTF section .ctf:
|
||||
|
||||
Variables:
|
||||
#...
|
||||
b -> [0-9a-f]*: struct B \(.*
|
||||
b -> 0x[0-9a-f]*: struct B \(.*
|
||||
#...
|
||||
Types:
|
||||
#...
|
||||
[0-9a-f]*: struct B \(.*
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct B \(.*
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct C \* c \(.*
|
||||
0x[0-9a-f]*: struct B \(.*
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct B \(.*
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct C \* c \(.*
|
||||
#...
|
||||
Strings:
|
||||
0:
|
||||
0x0:
|
||||
#...
|
||||
[0-9a-f]*: B
|
||||
0x[0-9a-f]*: B
|
||||
#...
|
||||
|
@ -11,7 +11,7 @@
|
||||
Contents of CTF section .ctf:
|
||||
|
||||
Header:
|
||||
Magic number: dff2
|
||||
Magic number: 0xdff2
|
||||
Version: 4 \(CTF_VERSION_3\)
|
||||
#...
|
||||
Type section: .* \(0x6c bytes\)
|
||||
@ -25,16 +25,16 @@ Contents of CTF section .ctf:
|
||||
|
||||
Variables:
|
||||
#...
|
||||
c -> [0-9a-f]*: struct C \(.*
|
||||
c -> 0x[0-9a-f]*: struct C \(.*
|
||||
#...
|
||||
Types:
|
||||
#...
|
||||
[0-9a-f]*: struct C \(.*
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct C \(.*
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct A \* a \(.*
|
||||
0x[0-9a-f]*: struct C \(.*
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct C \(.*
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct A \* a \(.*
|
||||
#...
|
||||
Strings:
|
||||
0:
|
||||
0x0:
|
||||
#...
|
||||
[0-9a-f]*: C
|
||||
0x[0-9a-f]*: C
|
||||
#...
|
||||
|
@ -10,7 +10,7 @@
|
||||
Contents of CTF section \.ctf:
|
||||
|
||||
Header:
|
||||
Magic number: dff2
|
||||
Magic number: 0xdff2
|
||||
Version: 4 \(CTF_VERSION_3\)
|
||||
#...
|
||||
Data object section: .* \(0xc bytes\)
|
||||
@ -34,7 +34,7 @@ Contents of CTF section \.ctf:
|
||||
CTF archive member: .*/data-func-1\.c:
|
||||
|
||||
Header:
|
||||
Magic number: dff2
|
||||
Magic number: 0xdff2
|
||||
Version: 4 \(CTF_VERSION_3\)
|
||||
#...
|
||||
Parent name: \.ctf
|
||||
@ -59,5 +59,5 @@ CTF archive member: .*/data-func-1\.c:
|
||||
Variables:
|
||||
|
||||
Types:
|
||||
80000001: foo_t .* -> .* int .*
|
||||
0x80000001: foo_t .* -> .* int .*
|
||||
#...
|
||||
|
@ -9,7 +9,7 @@
|
||||
Contents of CTF section .ctf:
|
||||
|
||||
Header:
|
||||
Magic number: dff2
|
||||
Magic number: 0xdff2
|
||||
Version: 4 \(CTF_VERSION_3\)
|
||||
#...
|
||||
Data objects:
|
||||
@ -17,7 +17,7 @@ Contents of CTF section .ctf:
|
||||
#...
|
||||
Types:
|
||||
#...
|
||||
[0-9a-f]*: struct \(.*
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct \(.*
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* b \(.*
|
||||
0x[0-9a-f]*: struct \(.*
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct \(.*
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* b \(.*
|
||||
#...
|
||||
|
@ -9,7 +9,7 @@
|
||||
Contents of CTF section .ctf:
|
||||
|
||||
Header:
|
||||
Magic number: dff2
|
||||
Magic number: 0xdff2
|
||||
Version: 4 \(CTF_VERSION_3\)
|
||||
#...
|
||||
Compilation unit name: \(\?\)
|
||||
@ -29,12 +29,12 @@ Contents of CTF section .ctf:
|
||||
|
||||
Types:
|
||||
#...
|
||||
[0-9a-f]*: struct A \(.*
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct A \(.*
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* b \(.*
|
||||
0x[0-9a-f]*: struct A \(.*
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct A \(.*
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* b \(.*
|
||||
#...
|
||||
Strings:
|
||||
0:
|
||||
0x0:
|
||||
#...
|
||||
[0-9a-f]*: \(\?\)
|
||||
0x[0-9a-f]*: \(\?\)
|
||||
#...
|
||||
|
@ -9,7 +9,7 @@
|
||||
Contents of CTF section .ctf:
|
||||
|
||||
Header:
|
||||
Magic number: dff2
|
||||
Magic number: 0xdff2
|
||||
Version: 4 \(CTF_VERSION_3\)
|
||||
#...
|
||||
Compilation unit name: .*A.c
|
||||
@ -28,12 +28,12 @@ Contents of CTF section .ctf:
|
||||
|
||||
Types:
|
||||
#...
|
||||
[0-9a-f]*: struct A \(.*
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct A \(.*
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* b \(.*
|
||||
0x[0-9a-f]*: struct A \(.*
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct A \(.*
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* b \(.*
|
||||
#...
|
||||
Strings:
|
||||
0:
|
||||
0x0:
|
||||
#...
|
||||
[0-9a-f]*: A
|
||||
0x[0-9a-f]*: A
|
||||
#...
|
||||
|
@ -10,7 +10,7 @@
|
||||
Contents of CTF section .ctf:
|
||||
|
||||
Header:
|
||||
Magic number: dff2
|
||||
Magic number: 0xdff2
|
||||
Version: 4 \(CTF_VERSION_3\)
|
||||
#...
|
||||
Variable section: 0x0 -- 0x17 \(0x18 bytes\)
|
||||
@ -25,16 +25,16 @@ Contents of CTF section .ctf:
|
||||
|
||||
Variables:
|
||||
#...
|
||||
b -> [0-9a-f]*: struct B \(.*
|
||||
b -> 0x[0-9a-f]*: struct B \(.*
|
||||
#...
|
||||
Types:
|
||||
#...
|
||||
[0-9a-f]*: struct B \(.*
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct B \(.*
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct C \* c \(.*
|
||||
0x[0-9a-f]*: struct B \(.*
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct B \(.*
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct C \* c \(.*
|
||||
#...
|
||||
Strings:
|
||||
0:
|
||||
0x0:
|
||||
#...
|
||||
[0-9a-f]*: B
|
||||
0x[0-9a-f]*: B
|
||||
#...
|
||||
|
@ -9,7 +9,7 @@
|
||||
Contents of CTF section .ctf:
|
||||
|
||||
Header:
|
||||
Magic number: dff2
|
||||
Magic number: 0xdff2
|
||||
Version: 4 \(CTF_VERSION_3\)
|
||||
#...
|
||||
Compilation unit name: .*function.c
|
||||
@ -22,6 +22,6 @@ Contents of CTF section .ctf:
|
||||
#...
|
||||
Types:
|
||||
#...
|
||||
[0-9a-f]*: int \(\*\) \(char, int, float, void \*, void \(\*\)\(\*\) \(int\)\) \(size 0x0\)
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 5\) int \(\*\) \(char, int[0-9]*, float, void \*, void \(\*\)\(\*\) \(int\)\) \(aligned at 0x[0-9a-f]*\)
|
||||
0x[0-9a-f]*: int \(\*\) \(char, int, float, void \*, void \(\*\)\(\*\) \(int\)\) \(size 0x0\)
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 5\) int \(\*\) \(char, int[0-9]*, float, void \*, void \(\*\)\(\*\) \(int\)\) \(aligned at 0x[0-9a-f]*\)
|
||||
#...
|
||||
|
@ -9,7 +9,7 @@
|
||||
Contents of CTF section .ctf:
|
||||
|
||||
Header:
|
||||
Magic number: dff2
|
||||
Magic number: 0xdff2
|
||||
Version: 4 \(CTF_VERSION_3\)
|
||||
#...
|
||||
Compilation unit name: .*slice.c
|
||||
@ -23,10 +23,10 @@ Contents of CTF section .ctf:
|
||||
#...
|
||||
Types:
|
||||
#...
|
||||
[0-9a-f]*: struct slices \(size 0x[0-9a-f]*\)
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct slices \(aligned at 0x1\)
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) int one:1 \(aligned at 0x1, format 0x1, offset:bits 0x0:0x1\)
|
||||
\[0x1\] \(ID 0x[0-9a-f]*\) \(kind 1\) int two:2 \(aligned at 0x1, format 0x1, offset:bits 0x1:0x2\)
|
||||
\[0x3\] \(ID 0x[0-9a-f]*\) \(kind 1\) int six:6 \(aligned at 0x1, format 0x1, offset:bits 0x3:0x6\)
|
||||
\[0x9\] \(ID 0x[0-9a-f]*\) \(kind 1\) int ten:10 \(aligned at 0x2, format 0x1, offset:bits 0x9:0xa\)
|
||||
0x[0-9a-f]*: struct slices \(size 0x[0-9a-f]*\)
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct slices \(aligned at 0x1\)
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) int one:1 \(aligned at 0x1, format 0x1, offset:bits 0x0:0x1\)
|
||||
*\[0x1\] \(ID 0x[0-9a-f]*\) \(kind 1\) int two:2 \(aligned at 0x1, format 0x1, offset:bits 0x1:0x2\)
|
||||
*\[0x3\] \(ID 0x[0-9a-f]*\) \(kind 1\) int six:6 \(aligned at 0x1, format 0x1, offset:bits 0x3:0x6\)
|
||||
*\[0x9\] \(ID 0x[0-9a-f]*\) \(kind 1\) int ten:10 \(aligned at 0x2, format 0x1, offset:bits 0x9:0xa\)
|
||||
#...
|
||||
|
@ -9,7 +9,7 @@
|
||||
Contents of CTF section .ctf:
|
||||
|
||||
Header:
|
||||
Magic number: dff2
|
||||
Magic number: 0xdff2
|
||||
Version: 4 \(CTF_VERSION_3\)
|
||||
#...
|
||||
Compilation unit name: .*super-sub-cycles.c
|
||||
@ -18,18 +18,18 @@ Contents of CTF section .ctf:
|
||||
#...
|
||||
Types:
|
||||
#...
|
||||
[0-9a-f]*: struct A \(.*
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct A \(.*
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct B b \(.*
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct C c \(.*
|
||||
\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct A \* a \(.*
|
||||
\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct D d \(.*
|
||||
\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* b \(.*
|
||||
\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct D d \(.*
|
||||
\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* b \(.*
|
||||
\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct X x \(.*
|
||||
\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct Y y \(.*
|
||||
\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct Z z \(.*
|
||||
\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct Y \* y \(.*
|
||||
\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct D \* d \(.*
|
||||
0x[0-9a-f]*: struct A \(.*
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct A \(.*
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct B b \(.*
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct C c \(.*
|
||||
*\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct A \* a \(.*
|
||||
*\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct D d \(.*
|
||||
*\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* b \(.*
|
||||
*\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct D d \(.*
|
||||
*\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* b \(.*
|
||||
*\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct X x \(.*
|
||||
*\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct Y y \(.*
|
||||
*\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct Z z \(.*
|
||||
*\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct Y \* y \(.*
|
||||
*\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct D \* d \(.*
|
||||
#...
|
||||
|
@ -1,3 +1,15 @@
|
||||
2021-01-05 Nick Alcock <nick.alcock@oracle.com>
|
||||
|
||||
* ctf-dump.c (ctf_dump_format_type): Add 0x to hex type IDs.
|
||||
(ctf_dump_header): Add 0x to the hex magic number.
|
||||
(ctf_dump_str): Add 0x to the hex string offsets.
|
||||
(ctf_dump_membstate_t) <cdm_toplevel_indent>: New.
|
||||
(ctf_dump_type): Adjust. Free it when we're done.
|
||||
(type_hex_digits): New.
|
||||
(ctf_dump_member): Align output depending on the width of the type
|
||||
ID being generated. Use printf padding, not a loop, to generate
|
||||
indentation.
|
||||
|
||||
2021-01-05 Nick Alcock <nick.alcock@oracle.com>
|
||||
|
||||
* ctf-decl.c (ctf_decl_push): Don't print array decls backwards.
|
||||
|
@ -47,6 +47,7 @@ typedef struct ctf_dump_membstate
|
||||
{
|
||||
char **cdm_str;
|
||||
ctf_dict_t *cdm_fp;
|
||||
char *cdm_toplevel_indent;
|
||||
} ctf_dump_membstate_t;
|
||||
|
||||
static int
|
||||
@ -115,7 +116,7 @@ ctf_dump_format_type (ctf_dict_t *fp, ctf_id_t id, int flag)
|
||||
goto err;
|
||||
}
|
||||
|
||||
if (asprintf (&bit, " %s%lx: ", nonroot_leader, id) < 0)
|
||||
if (asprintf (&bit, " %s0x%lx: ", nonroot_leader, id) < 0)
|
||||
goto oom;
|
||||
str = str_append (str, bit);
|
||||
free (bit);
|
||||
@ -236,7 +237,7 @@ ctf_dump_header (ctf_dict_t *fp, ctf_dump_state_t *state)
|
||||
};
|
||||
const char *verstr = NULL;
|
||||
|
||||
if (asprintf (&str, "Magic number: %x\n", hp->cth_magic) < 0)
|
||||
if (asprintf (&str, "Magic number: 0x%x\n", hp->cth_magic) < 0)
|
||||
goto err;
|
||||
ctf_dump_append (state, str);
|
||||
|
||||
@ -454,26 +455,51 @@ ctf_dump_var (const char *name, ctf_id_t type, void *arg)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Report the number of digits in the hexadecimal representation of a type
|
||||
ID. */
|
||||
|
||||
static int
|
||||
type_hex_digits (ctf_id_t id)
|
||||
{
|
||||
int i = 0;
|
||||
|
||||
if (id == 0)
|
||||
return 1;
|
||||
|
||||
for (; id > 0; id >>= 4, i++);
|
||||
return i;
|
||||
}
|
||||
|
||||
/* Dump a single member into the string in the membstate. */
|
||||
static int
|
||||
ctf_dump_member (const char *name, ctf_id_t id, unsigned long offset,
|
||||
int depth, void *arg)
|
||||
int depth, void *arg)
|
||||
{
|
||||
ctf_dump_membstate_t *state = arg;
|
||||
char *typestr = NULL;
|
||||
char *bit = NULL;
|
||||
ctf_encoding_t ep;
|
||||
int has_encoding = 0;
|
||||
ssize_t i;
|
||||
|
||||
for (i = 0; i < depth; i++)
|
||||
*state->cdm_str = str_append (*state->cdm_str, " ");
|
||||
/* Align neatly. */
|
||||
|
||||
if (depth == 0)
|
||||
{
|
||||
if (asprintf (&state->cdm_toplevel_indent, " %*s",
|
||||
type_hex_digits (id), "") < 0)
|
||||
goto oom;
|
||||
}
|
||||
|
||||
if (asprintf (&bit, "%s%*s", state->cdm_toplevel_indent, depth * 4, "") < 0)
|
||||
goto oom;
|
||||
*state->cdm_str = str_append (*state->cdm_str, bit);
|
||||
free (bit);
|
||||
|
||||
if ((typestr = ctf_type_aname (state->cdm_fp, id)) == NULL)
|
||||
{
|
||||
if (id == 0 || ctf_errno (state->cdm_fp) == ECTF_NONREPRESENTABLE)
|
||||
{
|
||||
if (asprintf (&bit, " [0x%lx] (type not represented in CTF)",
|
||||
if (asprintf (&bit, "[0x%lx] (type not represented in CTF)",
|
||||
offset) < 0)
|
||||
goto oom;
|
||||
|
||||
@ -491,7 +517,7 @@ ctf_dump_member (const char *name, ctf_id_t id, unsigned long offset,
|
||||
has_encoding = 1;
|
||||
ctf_type_encoding (state->cdm_fp, id, &ep);
|
||||
|
||||
if (asprintf (&bit, " [0x%lx] (ID 0x%lx) (kind %i) %s%s%s:%i "
|
||||
if (asprintf (&bit, "[0x%lx] (ID 0x%lx) (kind %i) %s%s%s:%i "
|
||||
"(aligned at 0x%lx", offset, id,
|
||||
ctf_type_kind (state->cdm_fp, id), typestr,
|
||||
(name[0] != 0 && typestr[0] != 0) ? " " : "", name,
|
||||
@ -501,7 +527,7 @@ ctf_dump_member (const char *name, ctf_id_t id, unsigned long offset,
|
||||
}
|
||||
else
|
||||
{
|
||||
if (asprintf (&bit, " [0x%lx] (ID 0x%lx) (kind %i) %s%s%s "
|
||||
if (asprintf (&bit, "[0x%lx] (ID 0x%lx) (kind %i) %s%s%s "
|
||||
"(aligned at 0x%lx", offset, id,
|
||||
ctf_type_kind (state->cdm_fp, id), typestr,
|
||||
(name[0] != 0 && typestr[0] != 0) ? " " : "", name,
|
||||
@ -540,7 +566,7 @@ ctf_dump_type (ctf_id_t id, int flag, void *arg)
|
||||
{
|
||||
char *str;
|
||||
ctf_dump_state_t *state = arg;
|
||||
ctf_dump_membstate_t membstate = { &str, state->cds_fp };
|
||||
ctf_dump_membstate_t membstate = { &str, state->cds_fp, NULL };
|
||||
size_t len;
|
||||
|
||||
if ((str = ctf_dump_format_type (state->cds_fp, id, flag)) == NULL)
|
||||
@ -558,6 +584,7 @@ ctf_dump_type (ctf_id_t id, int flag, void *arg)
|
||||
_("cannot visit members dumping type 0x%lx"), id);
|
||||
goto err;
|
||||
}
|
||||
free (membstate.cdm_toplevel_indent);
|
||||
|
||||
/* Trim off the last linefeed added by ctf_dump_member(). */
|
||||
len = strlen (str);
|
||||
@ -568,6 +595,7 @@ ctf_dump_type (ctf_id_t id, int flag, void *arg)
|
||||
return 0;
|
||||
|
||||
err:
|
||||
free (membstate.cdm_toplevel_indent);
|
||||
free (str);
|
||||
return 0; /* Swallow the error. */
|
||||
}
|
||||
@ -583,7 +611,7 @@ ctf_dump_str (ctf_dict_t *fp, ctf_dump_state_t *state)
|
||||
fp->ctf_str[CTF_STRTAB_0].cts_len;)
|
||||
{
|
||||
char *str;
|
||||
if (asprintf (&str, "%lx: %s",
|
||||
if (asprintf (&str, "0x%lx: %s",
|
||||
(unsigned long) (s - fp->ctf_str[CTF_STRTAB_0].cts_strs),
|
||||
s) < 0)
|
||||
return (ctf_set_errno (fp, errno));
|
||||
|
Reference in New Issue
Block a user