Compare commits

...

4 Commits
master ... f7

Author SHA1 Message Date
Fedora Release Engineering f838d3f233 dist-git conversion 2010-07-28 15:14:11 +00:00
Jan Kratochvil 4bfa89ab5b - Fix the build compatibility with texinfo >= 4.10. 2007-10-16 15:00:51 +00:00
Jan Kratochvil da8ce49b55 - Fix crash on missing filenames debug info (BZ 242155). 2007-06-05 17:07:00 +00:00
Bill Nottingham 1485ed2965 Initialize branch F-7 for gdb 2007-05-18 04:08:28 +00:00
4 changed files with 181 additions and 7 deletions

View File

View File

@ -1,6 +0,0 @@
# Makefile for source rpm: gdb
# $Id: Makefile,v 1.1 2004/09/09 05:00:56 cvsdist Exp $
NAME := gdb
SPECFILE = $(firstword $(wildcard *.spec))
include ../common/Makefile.common

View File

@ -738,3 +738,177 @@ 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:
2007-09-15 Alan Modra <amodra@bigpond.net.au>
* configure.ac: Correct makeinfo version check.
* configure: Regenerate.
#--- ./configure.ac 14 Sep 2007 14:51:36 -0000 1.25
#+++ ./configure.ac 14 Sep 2007 15:47:01 -0000 1.26
#@@ -2462,7 +2462,7 @@ changequote(,)
# # For an installed makeinfo, we require it to be from texinfo 4.4 or
# # higher, else we use the "missing" dummy.
# if ${MAKEINFO} --version \
#- | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[4-9]|[5-9])' >/dev/null 2>&1; then
#+ | egrep 'texinfo[^0-9]*(4\.([4-9]|[1-9][0-9])|[5-9]|[1-9][0-9])' >/dev/null 2>&1; then
# :
# else
# MAKEINFO="$MISSING makeinfo"
--- ./configure 14 Sep 2007 14:51:36 -0000 1.277
+++ ./configure 14 Sep 2007 15:47:01 -0000 1.278
@@ -6192,7 +6192,7 @@ case " $build_configdirs " in
# For an installed makeinfo, we require it to be from texinfo 4.4 or
# higher, else we use the "missing" dummy.
if ${MAKEINFO} --version \
- | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[4-9]|[5-9])' >/dev/null 2>&1; then
+ | egrep 'texinfo[^0-9]*(4\.([4-9]|[1-9][0-9])|[5-9]|[1-9][0-9])' >/dev/null 2>&1; then
:
else
MAKEINFO="$MISSING makeinfo"

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: 16%{?dist}
License: GPL
Group: Development/Debuggers
@ -637,6 +637,12 @@ fi
# don't include the files in include, they are part of binutils
%changelog
* Mon Oct 15 2007 Jan Kratochvil <jan.kratochvil@redhat.com> - 6.6-16
- Fix the build compatibility with texinfo >= 4.10.
* Tue Jun 5 2007 Jan Kratochvil <jan.kratochvil@redhat.com> - 6.6-15
- 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).