projects
/
deliverable
/
binutils-gdb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
gdb: Remove support for old mangling schemes
[deliverable/binutils-gdb.git]
/
gdb
/
progspace.c
diff --git
a/gdb/progspace.c
b/gdb/progspace.c
index 0f3ac81bd016f1b1d8735f3422dc0f48a8ed5c23..9027087d734bf70107a50b4a7d885e41a0267e4a 100644
(file)
--- a/
gdb/progspace.c
+++ b/
gdb/progspace.c
@@
-1,6
+1,6
@@
/* Program and address space management, for GDB, the GNU debugger.
/* Program and address space management, for GDB, the GNU debugger.
- Copyright (C) 2009-201
7
Free Software Foundation, Inc.
+ Copyright (C) 2009-201
9
Free Software Foundation, Inc.
This file is part of GDB.
This file is part of GDB.
@@
-24,6
+24,7
@@
#include "gdbcore.h"
#include "solib.h"
#include "gdbthread.h"
#include "gdbcore.h"
#include "solib.h"
#include "gdbthread.h"
+#include "inferior.h"
/* The last program space number assigned. */
int last_program_space_num = 0;
/* The last program space number assigned. */
int last_program_space_num = 0;
@@
-44,18
+45,6
@@
static int highest_address_space_num;
DEFINE_REGISTRY (program_space, REGISTRY_ACCESS_FIELD)
DEFINE_REGISTRY (program_space, REGISTRY_ACCESS_FIELD)
-/* An address space. It is used for comparing if pspaces/inferior/threads
- see the same address space and for associating caches to each address
- space. */
-
-struct address_space
-{
- int num;
-
- /* Per aspace data-pointers required by other GDB modules. */
- REGISTRY_FIELDS;
-};
-
/* Keep a registry of per-address_space data-pointers required by other GDB
modules. */
/* Keep a registry of per-address_space data-pointers required by other GDB
modules. */
@@
-121,30
+110,21
@@
init_address_spaces (void)
/* Adds a new empty program space to the program space list, and binds
it to ASPACE. Returns the pointer to the new object. */
/* Adds a new empty program space to the program space list, and binds
it to ASPACE. Returns the pointer to the new object. */
-struct program_space *
-
add_program_space (struct address_space *aspace
)
+program_space::program_space (address_space *aspace_)
+
: num (++last_program_space_num), aspace (aspace_
)
{
{
- struct program_space *pspace;
-
- pspace = XCNEW (struct program_space);
-
- pspace->num = ++last_program_space_num;
- pspace->aspace = aspace;
-
- program_space_alloc_data (pspace);
+ program_space_alloc_data (this);
if (program_spaces == NULL)
if (program_spaces == NULL)
- program_spaces =
pspace
;
+ program_spaces =
this
;
else
{
struct program_space *last;
for (last = program_spaces; last->next != NULL; last = last->next)
;
else
{
struct program_space *last;
for (last = program_spaces; last->next != NULL; last = last->next)
;
- last->next =
pspace
;
+ last->next =
this
;
}
}
-
- return pspace;
}
/* Releases program space PSPACE, and all its contents (shared
}
/* Releases program space PSPACE, and all its contents (shared
@@
-153,26
+133,24
@@
add_program_space (struct address_space *aspace)
is the current program space, since there should always be a
program space. */
is the current program space, since there should always be a
program space. */
-static void
-release_program_space (struct program_space *pspace)
+program_space::~program_space ()
{
{
- gdb_assert (
pspace
!= current_program_space);
+ gdb_assert (
this
!= current_program_space);
scoped_restore_current_program_space restore_pspace;
scoped_restore_current_program_space restore_pspace;
- set_current_program_space (
pspace
);
+ set_current_program_space (
this
);
- breakpoint_program_space_exit (
pspace
);
+ breakpoint_program_space_exit (
this
);
no_shared_libraries (NULL, 0);
exec_close ();
free_all_objfiles ();
if (!gdbarch_has_shared_address_space (target_gdbarch ()))
no_shared_libraries (NULL, 0);
exec_close ();
free_all_objfiles ();
if (!gdbarch_has_shared_address_space (target_gdbarch ()))
- free_address_space (
pspace
->aspace);
- clear_section_table (&
pspace
->target_sections);
- clear_program_space_solib_cache (
pspace
);
+ free_address_space (
this
->aspace);
+ clear_section_table (&
this
->target_sections);
+ clear_program_space_solib_cache (
this
);
/* Discard any data modules have associated with the PSPACE. */
/* Discard any data modules have associated with the PSPACE. */
- program_space_free_data (pspace);
- xfree (pspace);
+ program_space_free_data (this);
}
/* Copies program space SRC to DEST. Copies the main executable file,
}
/* Copies program space SRC to DEST. Copies the main executable file,
@@
-189,7
+167,8
@@
clone_program_space (struct program_space *dest, struct program_space *src)
exec_file_attach (src->pspace_exec_filename, 0);
if (src->symfile_object_file != NULL)
exec_file_attach (src->pspace_exec_filename, 0);
if (src->symfile_object_file != NULL)
- symbol_file_add_main (objfile_name (src->symfile_object_file), 0);
+ symbol_file_add_main (objfile_name (src->symfile_object_file),
+ SYMFILE_DEFER_BP_RESET);
return dest;
}
return dest;
}
@@
-247,7
+226,7
@@
delete_program_space (struct program_space *pspace)
ss = *ss_link;
}
ss = *ss_link;
}
-
release_program_space (pspace)
;
+
delete pspace
;
}
/* Prints the list of program spaces and their details on UIOUT. If
}
/* Prints the list of program spaces and their details on UIOUT. If
@@
-314,12
+293,12
@@
print_program_space (struct ui_out *uiout, int requested)
printed_header = 1;
printf_filtered ("\n\tBound inferiors: ID %d (%s)",
inf->num,
printed_header = 1;
printf_filtered ("\n\tBound inferiors: ID %d (%s)",
inf->num,
- target_pid_to_str (p
id_to_ptid
(inf->pid)));
+ target_pid_to_str (p
tid_t
(inf->pid)));
}
else
printf_filtered (", ID %d (%s)",
inf->num,
}
else
printf_filtered (", ID %d (%s)",
inf->num,
- target_pid_to_str (p
id_to_ptid
(inf->pid)));
+ target_pid_to_str (p
tid_t
(inf->pid)));
}
uiout->text ("\n");
}
uiout->text ("\n");
@@
-345,7
+324,7
@@
valid_program_space_id (int num)
indicating which the program space to print information about. */
static void
indicating which the program space to print information about. */
static void
-maintenance_info_program_spaces_command (char *args, int from_tty)
+maintenance_info_program_spaces_command (c
onst c
har *args, int from_tty)
{
int requested = -1;
{
int requested = -1;
@@
-422,10
+401,8
@@
update_address_spaces (void)
void
clear_program_space_solib_cache (struct program_space *pspace)
{
void
clear_program_space_solib_cache (struct program_space *pspace)
{
- VEC_free (so_list_ptr, pspace->added_solibs);
-
- free_char_ptr_vec (pspace->deleted_solibs);
- pspace->deleted_solibs = NULL;
+ pspace->added_solibs.clear ();
+ pspace->deleted_solibs.clear ();
}
\f
}
\f
@@
-445,5
+422,5
@@
initialize_progspace (void)
modules have done that. Do this before
initialize_current_architecture, because that accesses exec_bfd,
which in turn dereferences current_program_space. */
modules have done that. Do this before
initialize_current_architecture, because that accesses exec_bfd,
which in turn dereferences current_program_space. */
- current_program_space =
add_
program_space (new_address_space ());
+ current_program_space =
new
program_space (new_address_space ());
}
}
This page took
0.025943 seconds
and
4
git commands to generate.