aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorAlexandre Oliva <aoliva@redhat.com>2017-07-21 10:09:06 +0100
committerNick Clifton <nickc@redhat.com>2017-07-21 10:13:18 +0100
commitba8826a82a29a19b78c18ce4f44fe313de279af7 (patch)
tree2389430a2bbbff988df9fbba2fbb79f40345d735 /ld
parent47826cdbec2548cd1d25acf4cfaf908ae88f3325 (diff)
downloadgdb-ba8826a82a29a19b78c18ce4f44fe313de279af7.zip
gdb-ba8826a82a29a19b78c18ce4f44fe313de279af7.tar.gz
gdb-ba8826a82a29a19b78c18ce4f44fe313de279af7.tar.bz2
This patch introduces support for specifing views in .loc directives, so that the compiler can use the assembler to generate line number information and have the assembler determine view numbers to multiple views at the same program counter.
binutils* dwarf.c (struct State_Machine_Registers): Add view field. (reset_state_machine): Reset view. (process_extended_line_op): Reset view when appropriate. (display_debug_lines_raw): Increment or reset view when appropriate. Print nonzero views. Support print view resets, disabled by default. (display_debug_lines_decoded): Likewise. Disambiguate op_code tests, enabling printing of end_sequence. * testsuite/binutils-all/dw2-1.W: Add nonzero views. * testsuite/binutils-all/dw2-3.W: Likewise. * testsuite/binutils-all/dw2-3gabi.W: Likewise. * testsuite/binutils-all/dw5.W: Add end sequence lines. * testsuite/binutils-all/i386/compressed-1a.d: Add nonzero views. * testsuite/binutils-all/libdw2-compressedgabi.out: Likewise. * testsuite/binutils-all/objdump.W: Likewise. * testsuite/binutils-all/objdump.WL: Add end sequence lines. * testsuite/binutils-all/x86-64/compressed-1a.d: Add nonzero views. gas * doc/as.texinfo (.loc): Document view support. * dwarf2dbg.c (unused): Check offset of next in struct line_entry. (current): Initialize view. (force_reset_view, view_assert_failed): New variables. (reverse_line_entry_list): New function. (set_or_check_view): Likewise. (dwarf2_gen_line_info_1): Call it. (dwarf2_where): Set view to NULL. (dwarf2_emit_insn): Return early when called before first file. (dwarf2_directive_loc): Add view support. Emit insn immediately when view option is given. (process_entries): Avoid set_address to reset view when a known address change already implies the view reset. (dwarf2dbg_final_check): New function. * dwarf2dbg.h (struct dwarf2_line_info): Add view. (dwarf2dbg_final_check): Declare. * read.c (s_leb128): Parse expression as deferred. * testsuite/gas/all/gas.exp: Run sleb128-9. * testsuite/gas/all/sleb128-9.d: New. * testsuite/gas/all/sleb128-9.l: New. * testsuite/gas/all/sleb128-9.s: New. * testsuite/gas/elf/dwarf2-1.d: Add nonzero views. * testsuite/gas/elf/dwarf2-2.d: Likewise. * testsuite/gas/elf/dwarf2-5.d: New. * testsuite/gas/elf/dwarf2-5.s: New. * testsuite/gas/elf/dwarf2-6.d: New. * testsuite/gas/elf/dwarf2-6.s: New. * testsuite/gas/elf/dwarf2-7.d: New. * testsuite/gas/elf/dwarf2-7.s: New. * testsuite/gas/elf/dwarf2-8.d: New. * testsuite/gas/elf/dwarf2-8.l: New. * testsuite/gas/elf/dwarf2-8.s: New. * testsuite/gas/elf/dwarf2-9.d: New. * testsuite/gas/elf/dwarf2-9.l: New. * testsuite/gas/elf/dwarf2-9.s: New. * testsuite/gas/elf/dwarf2-10.d: New. * testsuite/gas/elf/dwarf2-10.l: New. * testsuite/gas/elf/dwarf2-10.s: New. * testsuite/gas/elf/dwarf2-11.d: New. * testsuite/gas/elf/dwarf2-11.s: New. * testsuite/gas/elf/dwarf2-12.d: New. * testsuite/gas/elf/dwarf2-12.s: New. * testsuite/gas/elf/dwarf2-13.d: New. * testsuite/gas/elf/dwarf2-13.s: New. * testsuite/gas/elf/dwarf2-14.d: New. * testsuite/gas/elf/dwarf2-14.s: New. * testsuite/gas/elf/dwarf2-15.d: New. * testsuite/gas/elf/dwarf2-15.s: New. * testsuite/gas/elf/dwarf2-16.d: New. * testsuite/gas/elf/dwarf2-16.s: New. * testsuite/gas/elf/dwarf2-17.d: New. * testsuite/gas/elf/dwarf2-17.s: New. * testsuite/gas/elf/dwarf2-18.d: New. * testsuite/gas/elf/dwarf2-18.s: New. * testsuite/gas/elf/elf.exp: Run dwarf2-5..18 tests. * testsuite/gas/i386/dw2-compress-1.d: Add nonzero views. * testsuite/gas/i386/dw2-compressed-1.d: Likewise. * testsuite/gas/i386/ilp32/lns/lns-duplicate.d: Likewise. * testsuite/gas/lns/lns-big-delta.d: Likewise. * testsuite/gas/lns/lns-duplicate.d: Likewise. * testsuite/gas/mips/loc-swap-2.d: Likewise. * testsuite/gas/mips/loc-swap-3.d: Likewise. * testsuite/gas/mips/loc-swap.d: Likewise. * testsuite/gas/mips/micromips@loc-swap-2.d: Likewise. * testsuite/gas/mips/micromips@loc-swap.d: Likewise. * testsuite/gas/mips/mips16@loc-swap-2.d: Likewise. * testsuite/gas/mips/mips16@loc-swap.d: Likewise. * testsuite/gas/mips/mips16e@loc-swap.d: Likewise. * write.c (write_object_file): Check pending view asserts. (cvt_frag_to_fill): Complain about undefined leb128 operand.
Diffstat (limited to 'ld')
-rw-r--r--ld/testsuite/ld-avr/gc-section-debugline.d59
1 files changed, 29 insertions, 30 deletions
diff --git a/ld/testsuite/ld-avr/gc-section-debugline.d b/ld/testsuite/ld-avr/gc-section-debugline.d
index f8c07de..4c155a9 100644
--- a/ld/testsuite/ld-avr/gc-section-debugline.d
+++ b/ld/testsuite/ld-avr/gc-section-debugline.d
@@ -10,61 +10,60 @@
Decoded dump of debug contents of section .debug_line:
.*:
-File name Line number Starting address
+File name Line number Starting address View
per-function-debugline.s 39 0
-per-function-debugline.s 40 0x2
+per-function-debugline.s 40 0x2 1
-per-function-debugline.s 41 0x4
+per-function-debugline.s 41 0x4 2
-per-function-debugline.s 42 0x6
+per-function-debugline.s 42 0x6 3
-per-function-debugline.s 47 0x8
+per-function-debugline.s 47 0x8 4
-per-function-debugline.s 48 0xc
+per-function-debugline.s 48 0xc 5
-per-function-debugline.s 49 0x10
+per-function-debugline.s 49 0x10 6
-per-function-debugline.s 50 0x12
+per-function-debugline.s 50 0x12 7
-per-function-debugline.s 51 0x16
+per-function-debugline.s 51 0x16 8
-per-function-debugline.s 52 0x1a
+per-function-debugline.s 52 0x1a 9
-per-function-debugline.s 54 0x1c
+per-function-debugline.s 54 0x1c 10
-per-function-debugline.s 55 0x1e
+per-function-debugline.s 55 0x1e 11
-per-function-debugline.s 56 0x20
+per-function-debugline.s 56 0x20 12
-per-function-debugline.s 62 0x22
-
-per-function-debugline.s 63 0x24
+per-function-debugline.s 56 0x22 13
-per-function-debugline.s 64 0x26
-
-per-function-debugline.s 65 0x28
+per-function-debugline.s 62 0x22
-per-function-debugline.s 70 0x2a
+per-function-debugline.s 63 0x24 1
-per-function-debugline.s 71 0x2e
+per-function-debugline.s 64 0x26 2
-per-function-debugline.s 72 0x32
+per-function-debugline.s 65 0x28 3
-per-function-debugline.s 73 0x36
+per-function-debugline.s 70 0x2a 4
-per-function-debugline.s 74 0x38
+per-function-debugline.s 71 0x2e 5
-per-function-debugline.s 75 0x3c
+per-function-debugline.s 72 0x32 6
-per-function-debugline.s 76 0x40
+per-function-debugline.s 73 0x36 7
-per-function-debugline.s 77 0x44
+per-function-debugline.s 74 0x38 8
-per-function-debugline.s 79 0x48
+per-function-debugline.s 75 0x3c 9
-per-function-debugline.s 80 0x4a
+per-function-debugline.s 76 0x40 10
-per-function-debugline.s 81 0x4c
+per-function-debugline.s 77 0x44 11
+per-function-debugline.s 79 0x48 12
+per-function-debugline.s 80 0x4a 13
+#pass