diff options
author | John Gilmore <gnu@cygnus> | 1991-10-16 19:42:05 +0000 |
---|---|---|
committer | John Gilmore <gnu@cygnus> | 1991-10-16 19:42:05 +0000 |
commit | 45e6027024086f9c13a6f86e38ed75073556faca (patch) | |
tree | c3a108d1e073e3f0361e7d44d7ee2a324e63179b /gdb/core.c | |
parent | a13f8a2f23aefd86970f2b56557b0d62b62d2bed (diff) | |
download | gdb-45e6027024086f9c13a6f86e38ed75073556faca.zip gdb-45e6027024086f9c13a6f86e38ed75073556faca.tar.gz gdb-45e6027024086f9c13a6f86e38ed75073556faca.tar.bz2 |
* core.c (core_open): Improve error message for bad file.
Pass .reg virtual memory address to fetch_core_registers to help
it find the registers in the core-file header.
* coredep.c (fetch_core_registers): Take new argument, use it,
and pass it to register_addr to locate the block of registers.
Diffstat (limited to 'gdb/core.c')
-rw-r--r-- | gdb/core.c | 17 |
1 files changed, 9 insertions, 8 deletions
@@ -131,8 +131,8 @@ core_open (filename, from_tty) if (!bfd_check_format (temp_bfd, bfd_core)) { - bfd_close (temp_bfd); - error ("\"%s\" does not appear to be a core dump", filename); + make_cleanup (bfd_close, temp_bfd); /* Do it after the err msg */ + error ("\"%s\" is not a core dump: %s", filename, bfd_errmsg(bfd_error)); } /* Looks semi-reasonable. Toss the old core file and work on the new. */ @@ -399,10 +399,10 @@ get_core_registers (regno) if (!reg_sec) goto cant; size = bfd_section_size (core_bfd, reg_sec); the_regs = alloca (size); - if (bfd_get_section_contents (core_bfd, reg_sec, the_regs, - (unsigned)0, size)) + if (bfd_get_section_contents (core_bfd, reg_sec, the_regs, (file_ptr)0, size)) { - fetch_core_registers (the_regs, size, 0); + fetch_core_registers (the_regs, size, 0, + (unsigned) bfd_section_vma (abfd,reg_sec)); } else { @@ -416,10 +416,11 @@ cant: if (reg_sec) { size = bfd_section_size (core_bfd, reg_sec); the_regs = alloca (size); - if (bfd_get_section_contents (core_bfd, reg_sec, the_regs, - (unsigned)0, size)) + if (bfd_get_section_contents (core_bfd, reg_sec, the_regs, (file_ptr)0, + size)) { - fetch_core_registers (the_regs, size, 2); + fetch_core_registers (the_regs, size, 2, + (unsigned) bfd_section_vma (abfd,reg_sec)); } else { |