mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-12-28 18:10:46 +00:00
[readelf] Fix end_seq entry in -wL. Specifically stop the display of a line number and is_statement/has-view fields for the End of Sequence operator, as these have no meaning.
binutils* dwarf.c (display_debug_lines_decoded): Don't emit meaningless information in the end_sequence row. * testsuite/binutils-all/dw5.W: Update. * testsuite/binutils-all/objdump.WL: Update. gas * testsuite/gas/elf/dwarf2-11.d: Update expected output from readelf's line table decoding. * testsuite/gas/elf/dwarf2-12.d: Likewise. * testsuite/gas/elf/dwarf2-13.d: Likewise. * testsuite/gas/elf/dwarf2-14.d: Likewise. * testsuite/gas/elf/dwarf2-15.d: Likewise. * testsuite/gas/elf/dwarf2-16.d: Likewise. * testsuite/gas/elf/dwarf2-17.d: Likewise. * testsuite/gas/elf/dwarf2-18.d: Likewise. * testsuite/gas/elf/dwarf2-19.d: Likewise. * testsuite/gas/elf/dwarf2-5.d: Likewise. * testsuite/gas/elf/dwarf2-6.d: Likewise. * testsuite/gas/elf/dwarf2-7.d: Likewise.
This commit is contained in:
committed by
Nick Clifton
parent
d882c98893
commit
af2b318648
@@ -4988,38 +4988,75 @@ display_debug_lines_decoded (struct dwarf_section * section,
|
||||
strncpy (newFileName, fileName, fileNameLength + 1);
|
||||
}
|
||||
|
||||
/* A row with end_seq set to true has a meaningful address, but
|
||||
the other information in the same row is not significant.
|
||||
In such a row, print line as "-", and don't print
|
||||
view/is_stmt. */
|
||||
if (!do_wide || (fileNameLength <= MAX_FILENAME_LENGTH))
|
||||
{
|
||||
if (linfo.li_max_ops_per_insn == 1)
|
||||
printf ("%-35s %11d %#18" DWARF_VMA_FMT "x",
|
||||
newFileName, state_machine_regs.line,
|
||||
state_machine_regs.address);
|
||||
{
|
||||
if (xop == -DW_LNE_end_sequence)
|
||||
printf ("%-35s %11s %#18" DWARF_VMA_FMT "x",
|
||||
newFileName, "-",
|
||||
state_machine_regs.address);
|
||||
else
|
||||
printf ("%-35s %11d %#18" DWARF_VMA_FMT "x",
|
||||
newFileName, state_machine_regs.line,
|
||||
state_machine_regs.address);
|
||||
}
|
||||
else
|
||||
printf ("%-35s %11d %#18" DWARF_VMA_FMT "x[%d]",
|
||||
newFileName, state_machine_regs.line,
|
||||
state_machine_regs.address,
|
||||
state_machine_regs.op_index);
|
||||
{
|
||||
if (xop == -DW_LNE_end_sequence)
|
||||
printf ("%-35s %11s %#18" DWARF_VMA_FMT "x[%d]",
|
||||
newFileName, "-",
|
||||
state_machine_regs.address,
|
||||
state_machine_regs.op_index);
|
||||
else
|
||||
printf ("%-35s %11d %#18" DWARF_VMA_FMT "x[%d]",
|
||||
newFileName, state_machine_regs.line,
|
||||
state_machine_regs.address,
|
||||
state_machine_regs.op_index);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (linfo.li_max_ops_per_insn == 1)
|
||||
printf ("%s %11d %#18" DWARF_VMA_FMT "x",
|
||||
newFileName, state_machine_regs.line,
|
||||
state_machine_regs.address);
|
||||
{
|
||||
if (xop == -DW_LNE_end_sequence)
|
||||
printf ("%s %11s %#18" DWARF_VMA_FMT "x",
|
||||
newFileName, "-",
|
||||
state_machine_regs.address);
|
||||
else
|
||||
printf ("%s %11d %#18" DWARF_VMA_FMT "x",
|
||||
newFileName, state_machine_regs.line,
|
||||
state_machine_regs.address);
|
||||
}
|
||||
else
|
||||
printf ("%s %11d %#18" DWARF_VMA_FMT "x[%d]",
|
||||
newFileName, state_machine_regs.line,
|
||||
state_machine_regs.address,
|
||||
state_machine_regs.op_index);
|
||||
{
|
||||
if (xop == -DW_LNE_end_sequence)
|
||||
printf ("%s %11s %#18" DWARF_VMA_FMT "x[%d]",
|
||||
newFileName, "-",
|
||||
state_machine_regs.address,
|
||||
state_machine_regs.op_index);
|
||||
else
|
||||
printf ("%s %11d %#18" DWARF_VMA_FMT "x[%d]",
|
||||
newFileName, state_machine_regs.line,
|
||||
state_machine_regs.address,
|
||||
state_machine_regs.op_index);
|
||||
}
|
||||
}
|
||||
|
||||
if (state_machine_regs.view)
|
||||
printf (" %6u", state_machine_regs.view);
|
||||
else
|
||||
printf (" ");
|
||||
if (xop != -DW_LNE_end_sequence)
|
||||
{
|
||||
if (state_machine_regs.view)
|
||||
printf (" %6u", state_machine_regs.view);
|
||||
else
|
||||
printf (" ");
|
||||
|
||||
if (state_machine_regs.is_stmt)
|
||||
printf (" x");
|
||||
if (state_machine_regs.is_stmt)
|
||||
printf (" x");
|
||||
}
|
||||
|
||||
putchar ('\n');
|
||||
state_machine_regs.view++;
|
||||
|
||||
Reference in New Issue
Block a user