diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 826678c126..e327c5fd0e 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2006-03-15 Daniel Jacobowitz + + * mips-mdebug-tdep.c (compare_pdr_entries): Use bfd_get_signed_32 + for code addresses. + (non_heuristic_proc_desc): Likewise. + 2006-03-15 Daniel Jacobowitz * mips-linux-nat.c: Include "gdb_proc_service.h". diff --git a/gdb/mips-mdebug-tdep.c b/gdb/mips-mdebug-tdep.c index 43e1c9646f..db79713a6f 100644 --- a/gdb/mips-mdebug-tdep.c +++ b/gdb/mips-mdebug-tdep.c @@ -2,8 +2,8 @@ the GNU Debugger. Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, - 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software - Foundation, Inc. + 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006 + Free Software Foundation, Inc. This file is part of GDB. @@ -63,8 +63,8 @@ static bfd *the_bfd; static int compare_pdr_entries (const void *a, const void *b) { - CORE_ADDR lhs = bfd_get_32 (the_bfd, (bfd_byte *) a); - CORE_ADDR rhs = bfd_get_32 (the_bfd, (bfd_byte *) b); + CORE_ADDR lhs = bfd_get_signed_32 (the_bfd, (bfd_byte *) a); + CORE_ADDR rhs = bfd_get_signed_32 (the_bfd, (bfd_byte *) b); if (lhs < rhs) return -1; @@ -215,17 +215,17 @@ non_heuristic_proc_desc (CORE_ADDR pc, CORE_ADDR *addrptr) PROC_LOW_ADDR (proc_desc) = pdr_pc; PROC_FRAME_OFFSET (proc_desc) - = bfd_get_32 (sec->objfile->obfd, ptr + 20); + = bfd_get_signed_32 (sec->objfile->obfd, ptr + 20); PROC_FRAME_REG (proc_desc) = bfd_get_32 (sec->objfile->obfd, ptr + 24); PROC_REG_MASK (proc_desc) = bfd_get_32 (sec->objfile->obfd, ptr + 4); PROC_FREG_MASK (proc_desc) = bfd_get_32 (sec->objfile->obfd, ptr + 12); - PROC_REG_OFFSET (proc_desc) = bfd_get_32 (sec->objfile->obfd, - ptr + 8); + PROC_REG_OFFSET (proc_desc) + = bfd_get_signed_32 (sec->objfile->obfd, ptr + 8); PROC_FREG_OFFSET (proc_desc) - = bfd_get_32 (sec->objfile->obfd, ptr + 16); + = bfd_get_signed_32 (sec->objfile->obfd, ptr + 16); PROC_PC_REG (proc_desc) = bfd_get_32 (sec->objfile->obfd, ptr + 28); proc_desc->pdr.isym = (long) sym;