- Testcase update to cover PPC Power6/DFP instructions disassembly (BZ

230000).
- Disable some known timeouting/failing testcases to reduce the build time.
- Fix crash on missing filenames debug info (BZ 242155).
This commit is contained in:
Jan Kratochvil 2007-06-07 18:31:29 +00:00
parent 8c68955da2
commit aad703f07a
4 changed files with 225 additions and 8 deletions

View File

@ -7,7 +7,7 @@ requires too recent GCC.
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ ./gdb/testsuite/gdb.arch/powerpc-power6.exp 25 Feb 2007 18:27:39 -0000
@@ -0,0 +1,44 @@
@@ -0,0 +1,54 @@
+# Copyright 2007 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
@ -50,14 +50,34 @@ requires too recent GCC.
+
+gdb_test "disass func" ":\tblr\r\n.*" "Basic disassembly"
+
+gdb_test "disass func" ":\tdcbzl *r8,r9\r\n.*" "Power6 disassembly 1"
+gdb_test "disass func" ":\tfrsqrtes *f10,f11\r\n.*" "Power6 disassembly 2"
+gdb_test "disass func" ":\tdcbzl *r8,r9\r\n.*" "Power5 disassembly dcbzl"
+gdb_test "disass func" ":\tfrsqrtes *f10,f11\r\n.*" "Power5 disassembly frsqrtes"
+gdb_test "disass func" ":\tdadd *f1,f2,f1\r\n.*" "Power6 disassembly dadd"
+gdb_test "disass func" ":\tdaddq *f1,f2,f1\r\n.*" "Power6 disassembly daddq"
+gdb_test "disass func" ":\tdsub *f1,f2,f1\r\n.*" "Power6 disassembly dsub"
+gdb_test "disass func" ":\tdsubq *f1,f2,f1\r\n.*" "Power6 disassembly dsubq"
+gdb_test "disass func" ":\tdmul *f1,f2,f1\r\n.*" "Power6 disassembly dmul"
+gdb_test "disass func" ":\tdmulq *f1,f2,f1\r\n.*" "Power6 disassembly dmulq"
+gdb_test "disass func" ":\tddiv *f1,f2,f1\r\n.*" "Power6 disassembly ddiv"
+gdb_test "disass func" ":\tddivq *f1,f2,f1\r\n.*" "Power6 disassembly ddivq"
+gdb_test "disass func" ":\tdcmpu *cr1,f2,f1\r\n.*" "Power6 disassembly dcmpu"
+gdb_test "disass func" ":\tdcmpuq *cr1,f2,f1\r\n.*" "Power6 disassembly dcmpuq"
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ ./gdb/testsuite/gdb.arch/powerpc-power6.s 25 Feb 2007 18:27:39 -0000
@@ -0,0 +1,6 @@
@@ -0,0 +1,16 @@
+ .text
+ .globl func
+func:
+ blr
+ .long 0x7c284fec
+ .long 0xed405834
+ .long 0x7c284fec /* dcbzl r8,r9 */
+ .long 0xed405834 /* frsqrtes f10,f11 */
+ .long 0xec220804 /* dadd f1,f2,f1 */
+ .long 0xfc220804 /* daddq f1,f2,f1 */
+ .long 0xec220c04 /* dsub f1,f2,f1 */
+ .long 0xfc220c04 /* dsubq f1,f2,f1 */
+ .long 0xec220844 /* dmul f1,f2,f1 */
+ .long 0xfc220844 /* dmulq f1,f2,f1 */
+ .long 0xec220c44 /* ddiv f1,f2,f1 */
+ .long 0xfc220c44 /* ddivq f1,f2,f1 */
+ .long 0xec820d04 /* dcmpu cr1,f2,f1 */
+ .long 0xfc820d04 /* dcmpuq cr1,f2,f1 */

View File

@ -0,0 +1,42 @@
--- ./gdb/testsuite/gdb.base/annota1.exp 10 Jan 2007 03:23:04 -0000 1.23
+++ ./gdb/testsuite/gdb.base/annota1.exp 10 May 2007 12:54:11 -0000
@@ -57,6 +57,8 @@ if [target_info exists gdb_stub] {
gdb_step_for_stub;
}
+gdb_test "set breakpoint pending off" "" "Avoid lockup on nonexisting functions"
+
#
# the line at which break main will put the breakpoint
#
--- ./gdb/testsuite/gdb.base/annota3.exp 9 Jan 2007 17:59:09 -0000 1.12
+++ ./gdb/testsuite/gdb.base/annota3.exp 10 May 2007 12:54:11 -0000
@@ -56,6 +56,8 @@ if [target_info exists gdb_stub] {
gdb_step_for_stub;
}
+gdb_test "set breakpoint pending off" "" "Avoid lockup on nonexisting functions"
+
#
# the line at which break main will put the breakpoint
#
--- gdb-6.6/gdb/testsuite/gdb.threads/step-thread-exit.exp-orig 2007-05-10 15:03:15.000000000 +0200
+++ gdb-6.6/gdb/testsuite/gdb.threads/step-thread-exit.exp 2007-05-10 15:04:24.000000000 +0200
@@ -58,6 +58,9 @@ gdb_test "continue" "Break.*thread_funct
# thread to be stopped and a message printed to tell us we have stepped
# over the thread exit.
set test "step over thread exit 1"
+# ppc64 is currently failing:
+set timeout_old $timeout
+set timeout 60
gdb_test_multiple "next" "$test" {
-re "\}.*$gdb_prompt $" {
send_gdb "next\n"
@@ -71,6 +74,7 @@ gdb_test_multiple "next" "$test" {
exp_continue
}
}
+set timeout $timeout_old
gdb_test "bt" ".*sleep.*main.*$sleep_line.*" "backtrace after step 1"

View File

@ -738,3 +738,147 @@ instructions that take RMC operands.
--
Alan Modra
IBM OzLabs - Linux Technology Centre
2007-05-14 Paul Brook <paul@codesourcery.com>
Daniel Jacobowitz <dan@codesourcery.com>
* dwarf2read.c (dwarf2_debug_line_missing_file_complaint): New
function.
(dwarf_decode_lines): Check for line info without a file.
--- src/gdb/dwarf2read.c 2007/04/18 13:25:04 1.218
+++ src/gdb/dwarf2read.c 2007/05/14 17:15:20 1.219
@@ -688,6 +688,13 @@
}
static void
+dwarf2_debug_line_missing_file_complaint (void)
+{
+ complaint (&symfile_complaints,
+ _(".debug_line section has line data without a file"));
+}
+
+static void
dwarf2_complex_location_expr_complaint (void)
{
complaint (&symfile_complaints, _("location expression too complex"));
@@ -6708,19 +6715,24 @@
address += (adj_opcode / lh->line_range)
* lh->minimum_instruction_length;
line += lh->line_base + (adj_opcode % lh->line_range);
- lh->file_names[file - 1].included_p = 1;
- if (!decode_for_pst_p)
- {
- if (last_subfile != current_subfile)
- {
- if (last_subfile)
- record_line (last_subfile, 0, address);
- last_subfile = current_subfile;
+ if (lh->num_file_names < file)
+ dwarf2_debug_line_missing_file_complaint ();
+ else
+ {
+ lh->file_names[file - 1].included_p = 1;
+ if (!decode_for_pst_p)
+ {
+ if (last_subfile != current_subfile)
+ {
+ if (last_subfile)
+ record_line (last_subfile, 0, address);
+ last_subfile = current_subfile;
+ }
+ /* Append row to matrix using current values. */
+ record_line (current_subfile, line,
+ check_cu_functions (address, cu));
}
- /* Append row to matrix using current values. */
- record_line (current_subfile, line,
- check_cu_functions (address, cu));
- }
+ }
basic_block = 1;
}
else switch (op_code)
@@ -6734,9 +6746,15 @@
{
case DW_LNE_end_sequence:
end_sequence = 1;
- lh->file_names[file - 1].included_p = 1;
- if (!decode_for_pst_p)
- record_line (current_subfile, 0, address);
+
+ if (lh->num_file_names < file)
+ dwarf2_debug_line_missing_file_complaint ();
+ else
+ {
+ lh->file_names[file - 1].included_p = 1;
+ if (!decode_for_pst_p)
+ record_line (current_subfile, 0, address);
+ }
break;
case DW_LNE_set_address:
address = read_address (abfd, line_ptr, cu, &bytes_read);
@@ -6769,17 +6787,22 @@
}
break;
case DW_LNS_copy:
- lh->file_names[file - 1].included_p = 1;
- if (!decode_for_pst_p)
+ if (lh->num_file_names < file)
+ dwarf2_debug_line_missing_file_complaint ();
+ else
{
- if (last_subfile != current_subfile)
- {
- if (last_subfile)
- record_line (last_subfile, 0, address);
- last_subfile = current_subfile;
- }
- record_line (current_subfile, line,
- check_cu_functions (address, cu));
+ lh->file_names[file - 1].included_p = 1;
+ if (!decode_for_pst_p)
+ {
+ if (last_subfile != current_subfile)
+ {
+ if (last_subfile)
+ record_line (last_subfile, 0, address);
+ last_subfile = current_subfile;
+ }
+ record_line (current_subfile, line,
+ check_cu_functions (address, cu));
+ }
}
basic_block = 0;
break;
@@ -6806,15 +6806,19 @@ dwarf_decode_lines (struct line_header *
file = read_unsigned_leb128 (abfd, line_ptr, &bytes_read);
line_ptr += bytes_read;
- fe = &lh->file_names[file - 1];
- if (fe->dir_index)
- dir = lh->include_dirs[fe->dir_index - 1];
-
- if (!decode_for_pst_p)
- {
- last_subfile = current_subfile;
- dwarf2_start_subfile (fe->name, dir, comp_dir, file);
- }
+ if (lh->num_file_names < file)
+ dwarf2_debug_line_missing_file_complaint ();
+ else
+ {
+ fe = &lh->file_names[file - 1];
+ if (fe->dir_index)
+ dir = lh->include_dirs[fe->dir_index - 1];
+ if (!decode_for_pst_p)
+ {
+ last_subfile = current_subfile;
+ dwarf2_start_subfile (fe->name, dir, comp_dir, file);
+ }
+ }
}
break;
case DW_LNS_set_column:

View File

@ -11,7 +11,7 @@ Name: gdb
Version: 6.6
# The release always contains a leading reserved number, start it at 1.
Release: 14%{?dist}
Release: 15%{?dist}
License: GPL
Group: Development/Debuggers
@ -347,6 +347,9 @@ Patch249: gdb-6.6-gcore32-test.patch
# Enable PowerPC to print 128-bit long double variables (BZ 237872).
Patch251: gdb-6.5-bz237872-ppc-long-double.patch
# Avoid too long timeouts on failing cases of "annota1.exp annota3.exp".
Patch254: gdb-6.6-testsuite-timeouts.patch
BuildRequires: ncurses-devel glibc-devel gcc make gzip texinfo dejagnu gettext
BuildRequires: flex bison sharutils expat-devel
@ -490,6 +493,7 @@ rm -f gdb/jv-exp.c gdb/m2-exp.c gdb/objc-exp.c gdb/p-exp.c
%patch248 -p1
%patch249 -p1
%patch251 -p1
%patch254 -p1
# Change the version that gets printed at GDB startup, so it is RedHat
# specific.
@ -560,11 +564,13 @@ cd gdb/testsuite
# "threadcrash.exp" is incompatible on ia64 with old kernels.
# No `%{?_smp_mflags}' here as it may race.
# WARNING: can't generate a core file - core tests suppressed - check ulimit
# "attachstop.exp" - Functionality is currently broken but timeout is long.
# "readline-overflow.exp" - Testcase is broken, functionality is OK.
(
# ULIMIT required for `gdb.base/auxv.exp'.
ulimit -H -c
ulimit -c unlimited || :
make -k check RUNTESTFLAGS='--ignore "bigcore.exp chng-syms.exp checkpoint.exp threadcrash.exp"' || :
make -k check RUNTESTFLAGS='--ignore "bigcore.exp chng-syms.exp checkpoint.exp threadcrash.exp attachstop.exp readline-overflow.exp"' || :
)
for t in sum log; do
ln gdb.$t gdb-%{_target_platform}.$t || :
@ -637,6 +643,11 @@ fi
# don't include the files in include, they are part of binutils
%changelog
* Thu Jun 7 2007 Jan Kratochvil <jan.kratochvil@redhat.com> - 6.6-15
- Testcase update to cover PPC Power6/DFP instructions disassembly (BZ 230000).
- Disable some known timeouting/failing testcases to reduce the build time.
- Fix crash on missing filenames debug info (BZ 242155).
* Sat Apr 28 2007 Jan Kratochvil <jan.kratochvil@redhat.com> - 6.6-14
- Fixup for the PPC Power6/DFP instructions disassembly (BZ 230000).
- New testcase for the GCORE buffer overflow (for BZ 238285, formerly 235753).