summaryrefslogtreecommitdiffstats
path: root/contrib/gdb
diff options
context:
space:
mode:
authorgonzo <gonzo@FreeBSD.org>2010-11-02 01:24:49 +0000
committergonzo <gonzo@FreeBSD.org>2010-11-02 01:24:49 +0000
commit7228da9275a7daf5f0d0ae835e47844dbd6398ac (patch)
tree56f26dbbe434baf78fe8b3a139840754812014dd /contrib/gdb
parent71407681fdd1b75689f0d0a1e99666c0b45dfc6a (diff)
downloadFreeBSD-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.c2
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)
{
OpenPOWER on IntegriCloud