binutils/

2011-10-04  Paul Woegerer  <paul_woegerer@mentor.com>
	    Carlos O'Donell  <carlos@codesourcery.com>

	* dwarf.c (display_debug_lines_decoded): Index directory_table with
	directory_index from file_table entry.

binutils/testsuite/

2011-10-04  Carlos O'Donell  <carlos@codesourcery.com>

	* binutils-all/dw2-decodedline.S: New file.
	* binutils-all/objdump.WL: New file.
	* binutils-all/objdump.exp: Update copyright year.
	New test case for -WL.
This commit is contained in:
Carlos O'Donell 2011-10-04 14:25:40 +00:00
parent cb6be26b8b
commit 4eee63bce8
6 changed files with 74 additions and 4 deletions

View File

@ -1,3 +1,9 @@
2011-10-04 Paul Woegerer <paul_woegerer@mentor.com>
Carlos O'Donell <carlos@codesourcery.com>
* dwarf.c (display_debug_lines_decoded): Index directory_table with
directory_index from file_table entry.
2011-09-30 Cary Coutant <ccoutant@google.com>
* binutils/dwarf.h (dwarf_section_display_enum): Add missing enum

View File

@ -2961,9 +2961,10 @@ display_debug_lines_decoded (struct dwarf_section *section,
}
else
{
if (do_wide || strlen ((char *) directory_table[0]) < 76)
printf (_("CU: %s/%s:\n"), directory_table[0],
file_table[0].name);
unsigned int ix = file_table[0].directory_index;
const char *directory = ix ? (char *)directory_table[ix - 1] : ".";
if (do_wide || strlen (directory) < 76)
printf (_("CU: %s/%s:\n"), directory, file_table[0].name);
else
printf ("%s:\n", file_table[0].name);

View File

@ -1,3 +1,10 @@
2011-10-04 Carlos O'Donell <carlos@codesourcery.com>
* binutils-all/dw2-decodedline.S: New file.
* binutils-all/objdump.WL: New file.
* binutils-all/objdump.exp: Update copyright year.
New test case for -WL.
2011-09-28 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
* binutils-all/elfedit-4.d: Give test a unique name.

View File

@ -0,0 +1,16 @@
.file "dw2-decodedline.c"
.file 1 "dw2-decodedline.c"
.file 2 "directory/file1.c"
.text
.globl f1
.type f1, %function
f1:
.loc 2 1 0
nop
.size f1, .-f1
.globl main
.type main, %function
main:
.loc 1 2 0
nop
.size main, .-main

View File

@ -0,0 +1,15 @@
.*dw2-decodedline.o: file format .*
Decoded dump of debug contents of section \.debug_line:
CU: \./dw2-decodedline\.c:
File name Line number Starting address
directory/file1\.c:
file1\.c 1 .*
\./dw2-decodedline\.c:\[\+\+\]
dw2-decodedline\.c 2 .*

View File

@ -1,5 +1,5 @@
# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2007, 2008, 2009
# 2003, 2004, 2007, 2008, 2009, 2011
# Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
@ -202,6 +202,31 @@ if { ![is_elf_format] } then {
}
}
# Test objdump -WL on a file that contains line information for multiple files and search directories.
if { ![binutils_assemble $srcdir/$subdir/dw2-decodedline.S tmpdir/dw2-decodedline.o] } then {
fail "objdump decoded line"
}
if [is_remote host] {
set decodedline_testfile [remote_download host tmpdir/dw2-decodedline.o]
} else {
set decodedline_testfile tmpdir/dw2-decodedline.o
}
set got [remote_exec host "$OBJDUMP $OBJDUMPFLAGS -WL $decodedline_testfile" "" "/dev/null" "objdump.out"]
if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
fail "objdump -WL (reason: unexpected output)"
send_log $got
send_log "\n"
}
if { [regexp_diff objdump.out $srcdir/$subdir/objdump.WL] } then {
fail "objdump -WL"
} else {
pass "objdump -WL"
}
# Options which are not tested: -a -d -D -R -T -x -l --stabs
# I don't see any generic way to test any of these other than -a.