mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-27 12:03:41 +08:00
* corelow.c (add_solib_stub): Remove copying of to_sections,
pass current_target to SOLIB_ADD. The Sep 10 change failed if SOLIB_ADD errored out, or if SOLIB_ADD was trying to access target memory. * corelow.c (core_open): After reading the shared libraries, copy the modified to_sections vector from current_target to core_ops, so that core_close can free it later. * config/rs6000/nm-rs6000.h, rs6000-nat.c (xcoff_relocate_core): Pass down target parameter from SOLIB_ADD and use it instead of directly accessing core_ops.
This commit is contained in:
parent
cacd15c40d
commit
9137a6f461
@ -1,3 +1,16 @@
|
|||||||
|
Sat Sep 24 01:47:25 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
|
||||||
|
|
||||||
|
* corelow.c (add_solib_stub): Remove copying of to_sections,
|
||||||
|
pass current_target to SOLIB_ADD. The Sep 10 change failed
|
||||||
|
if SOLIB_ADD errored out, or if SOLIB_ADD was trying to access
|
||||||
|
target memory.
|
||||||
|
* corelow.c (core_open): After reading the shared libraries,
|
||||||
|
copy the modified to_sections vector from current_target to
|
||||||
|
core_ops, so that core_close can free it later.
|
||||||
|
* config/rs6000/nm-rs6000.h, rs6000-nat.c (xcoff_relocate_core):
|
||||||
|
Pass down target parameter from SOLIB_ADD and use it instead of
|
||||||
|
directly accessing core_ops.
|
||||||
|
|
||||||
Fri Sep 23 14:58:49 1994 J.T. Conklin (jtc@rtl.cygnus.com)
|
Fri Sep 23 14:58:49 1994 J.T. Conklin (jtc@rtl.cygnus.com)
|
||||||
|
|
||||||
* solib.c: *BSD systems need <a.out.h> to be included before
|
* solib.c: *BSD systems need <a.out.h> to be included before
|
||||||
|
@ -79,12 +79,7 @@ static int
|
|||||||
solib_add_stub (from_ttyp)
|
solib_add_stub (from_ttyp)
|
||||||
char *from_ttyp;
|
char *from_ttyp;
|
||||||
{
|
{
|
||||||
SOLIB_ADD (NULL, *(int *)from_ttyp, &core_ops);
|
SOLIB_ADD (NULL, *(int *)from_ttyp, ¤t_target);
|
||||||
|
|
||||||
/* SOLIB_ADD usually modifies core_ops.to_sections, which has to
|
|
||||||
be reflected in current_target. */
|
|
||||||
current_target.to_sections = core_ops.to_sections;
|
|
||||||
current_target.to_sections_end = core_ops.to_sections_end;
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif /* SOLIB_ADD */
|
#endif /* SOLIB_ADD */
|
||||||
@ -204,6 +199,11 @@ core_open (filename, from_tty)
|
|||||||
#ifdef SOLIB_ADD
|
#ifdef SOLIB_ADD
|
||||||
catch_errors (solib_add_stub, &from_tty, (char *)0,
|
catch_errors (solib_add_stub, &from_tty, (char *)0,
|
||||||
RETURN_MASK_ALL);
|
RETURN_MASK_ALL);
|
||||||
|
|
||||||
|
/* solib_add_stub usually modifies current_target.to_sections, which
|
||||||
|
has to be reflected in core_ops to enable proper freeing of
|
||||||
|
of the to_sections vector in core_close. */
|
||||||
|
core_ops.to_sections = current_target.to_sections;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Now, set up the frame cache, and print the top of stack */
|
/* Now, set up the frame cache, and print the top of stack */
|
||||||
|
@ -638,7 +638,8 @@ xcoff_relocate_symtab (pid)
|
|||||||
from the core file. */
|
from the core file. */
|
||||||
|
|
||||||
void
|
void
|
||||||
xcoff_relocate_core ()
|
xcoff_relocate_core (target)
|
||||||
|
struct target_ops *target;
|
||||||
{
|
{
|
||||||
/* Offset of member MEMBER in a struct of type TYPE. */
|
/* Offset of member MEMBER in a struct of type TYPE. */
|
||||||
#ifndef offsetof
|
#ifndef offsetof
|
||||||
@ -731,13 +732,13 @@ xcoff_relocate_core ()
|
|||||||
int count;
|
int count;
|
||||||
struct section_table *stp;
|
struct section_table *stp;
|
||||||
|
|
||||||
count = core_ops.to_sections_end - core_ops.to_sections;
|
count = target->to_sections_end - target->to_sections;
|
||||||
count += 2;
|
count += 2;
|
||||||
core_ops.to_sections = (struct section_table *)
|
target->to_sections = (struct section_table *)
|
||||||
xrealloc (core_ops.to_sections,
|
xrealloc (target->to_sections,
|
||||||
sizeof (struct section_table) * count);
|
sizeof (struct section_table) * count);
|
||||||
core_ops.to_sections_end = core_ops.to_sections + count;
|
target->to_sections_end = target->to_sections + count;
|
||||||
stp = core_ops.to_sections_end - 2;
|
stp = target->to_sections_end - 2;
|
||||||
|
|
||||||
/* "Why do we add bfd_section_vma?", I hear you cry.
|
/* "Why do we add bfd_section_vma?", I hear you cry.
|
||||||
Well, the start of the section in the file is actually
|
Well, the start of the section in the file is actually
|
||||||
|
Loading…
Reference in New Issue
Block a user