diff options
author | gonzo <gonzo@FreeBSD.org> | 2010-11-02 01:24:49 +0000 |
---|---|---|
committer | gonzo <gonzo@FreeBSD.org> | 2010-11-02 01:24:49 +0000 |
commit | 7228da9275a7daf5f0d0ae835e47844dbd6398ac (patch) | |
tree | 56f26dbbe434baf78fe8b3a139840754812014dd /contrib/gdb | |
parent | 71407681fdd1b75689f0d0a1e99666c0b45dfc6a (diff) | |
download | FreeBSD-src-7228da9275a7daf5f0d0ae835e47844dbd6398ac.zip FreeBSD-src-7228da9275a7daf5f0d0ae835e47844dbd6398ac.tar.gz |
Fix reading of .debug_line on MIPS64, big-endian:
read_initial_length detects pointer size by checking first
4 bytes of .debug_line and stores it in struct comp_unit_head *
passed to it as second argument. By passing NULL to a
read_initial_length we ignore actual pointer size (8 bytes) and
use default (4 bytes) which results in wrong offsets of header fields.
Diffstat (limited to 'contrib/gdb')
-rw-r--r-- | contrib/gdb/gdb/dwarf2read.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/contrib/gdb/gdb/dwarf2read.c b/contrib/gdb/gdb/dwarf2read.c index cc69ede..5cd3d2c 100644 --- a/contrib/gdb/gdb/dwarf2read.c +++ b/contrib/gdb/gdb/dwarf2read.c @@ -5178,7 +5178,7 @@ dwarf_decode_line_header (unsigned int offset, bfd *abfd, line_ptr = dwarf_line_buffer + offset; /* read in the header */ - lh->total_length = read_initial_length (abfd, line_ptr, NULL, &bytes_read); + lh->total_length = read_initial_length (abfd, line_ptr, &cu->header, &bytes_read); line_ptr += bytes_read; if (line_ptr + lh->total_length > dwarf_line_buffer + dwarf_line_size) { |