projects
/
deliverable
/
binutils-gdb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Don't write to inferior_ptid in corelow.c
[deliverable/binutils-gdb.git]
/
gdb
/
gdbarch-selftests.c
diff --git
a/gdb/gdbarch-selftests.c
b/gdb/gdbarch-selftests.c
index 1655f13b0e9b2c5f075a86bee06e16b94327ae8c..91aa9d8734425846bd8dc8de8c1759dbbcd7f33c 100644
(file)
--- a/
gdb/gdbarch-selftests.c
+++ b/
gdb/gdbarch-selftests.c
@@
-1,6
+1,6
@@
/* Self tests for gdbarch for GDB, the GNU debugger.
/* Self tests for gdbarch for GDB, the GNU debugger.
- Copyright (C) 2017-20
18
Free Software Foundation, Inc.
+ Copyright (C) 2017-20
20
Free Software Foundation, Inc.
This file is part of GDB.
This file is part of GDB.
@@
-18,14
+18,16
@@
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include "defs.h"
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include "defs.h"
-#if GDB_SELF_TEST
-#include "selftest.h"
+#include "gdbsupport/selftest.h"
#include "selftest-arch.h"
#include "inferior.h"
#include "gdbthread.h"
#include "target.h"
#include "selftest-arch.h"
#include "inferior.h"
#include "gdbthread.h"
#include "target.h"
+#include "test-target.h"
#include "target-float.h"
#include "target-float.h"
-#include "common/def-vector.h"
+#include "gdbsupport/def-vector.h"
+#include "gdbarch.h"
+#include "progspace-and-thread.h"
namespace selftests {
namespace selftests {
@@
-69,55
+71,43
@@
register_to_value_test (struct gdbarch *gdbarch)
builtin->builtin_char32,
};
builtin->builtin_char32,
};
- /* Error out if debugging something, because we're going to push the
- test target, which would pop any existing target. */
- if (current_target.to_stratum >= process_stratum)
- error (_("target already pushed"));
-
/* Create a mock environment. An inferior with a thread, with a
process_stratum target pushed. */
test_target_ops mock_target;
ptid_t mock_ptid (1, 1);
/* Create a mock environment. An inferior with a thread, with a
process_stratum target pushed. */
test_target_ops mock_target;
ptid_t mock_ptid (1, 1);
+ program_space mock_pspace (new_address_space ());
inferior mock_inferior (mock_ptid.pid ());
inferior mock_inferior (mock_ptid.pid ());
- address_space mock_aspace {};
mock_inferior.gdbarch = gdbarch;
mock_inferior.gdbarch = gdbarch;
- mock_inferior.aspace = &mock_aspace;
+ mock_inferior.aspace = mock_pspace.aspace;
+ mock_inferior.pspace = &mock_pspace;
thread_info mock_thread (&mock_inferior, mock_ptid);
thread_info mock_thread (&mock_inferior, mock_ptid);
+ scoped_restore_current_pspace_and_thread restore_pspace_thread;
+
scoped_restore restore_thread_list
scoped_restore restore_thread_list
- = make_scoped_restore (&thread_list, &mock_thread);
+ = make_scoped_restore (&
mock_inferior.
thread_list, &mock_thread);
/* Add the mock inferior to the inferior list so that look ups by
target+ptid can find it. */
scoped_restore restore_inferior_list
/* Add the mock inferior to the inferior list so that look ups by
target+ptid can find it. */
scoped_restore restore_inferior_list
- = make_scoped_restore (&inferior_list);
- inferior_list = &mock_inferior;
+ = make_scoped_restore (&inferior_list, &mock_inferior);
/* Switch to the mock inferior. */
/* Switch to the mock inferior. */
- scoped_restore_current_inferior restore_current_inferior;
- set_current_inferior (&mock_inferior);
+ switch_to_inferior_no_thread (&mock_inferior);
/* Push the process_stratum target so we can mock accessing
registers. */
push_target (&mock_target);
/* Pop it again on exit (return/exception). */
/* Push the process_stratum target so we can mock accessing
registers. */
push_target (&mock_target);
/* Pop it again on exit (return/exception). */
- struct on_exit
- {
- ~on_exit ()
- {
- pop_all_targets_at_and_above (process_stratum);
- }
- } pop_targets;
+ SCOPE_EXIT { pop_all_targets_at_and_above (process_stratum); };
/* Switch to the mock thread. */
/* Switch to the mock thread. */
- scoped_restore restore_inferior_ptid
- = make_scoped_restore (&inferior_ptid, mock_ptid);
+ switch_to_thread (&mock_thread);
struct frame_info *frame = get_current_frame ();
struct frame_info *frame = get_current_frame ();
- const int num_regs = (gdbarch_num_regs (gdbarch)
- + gdbarch_num_pseudo_regs (gdbarch));
+ const int num_regs = gdbarch_num_cooked_regs (gdbarch);
/* Test gdbarch methods register_to_value and value_to_register with
different combinations of register numbers and types. */
/* Test gdbarch methods register_to_value and value_to_register with
different combinations of register numbers and types. */
@@
-129,7
+119,7
@@
register_to_value_test (struct gdbarch *gdbarch)
{
std::vector<gdb_byte> expected (TYPE_LENGTH (type), 0);
{
std::vector<gdb_byte> expected (TYPE_LENGTH (type), 0);
- if (
TYPE_CODE (type
) == TYPE_CODE_FLT)
+ if (
type->code (
) == TYPE_CODE_FLT)
{
/* Generate valid float format. */
target_float_from_string (expected.data (), type, "1.25");
{
/* Generate valid float format. */
target_float_from_string (expected.data (), type, "1.25");
@@
-168,13
+158,11
@@
register_to_value_test (struct gdbarch *gdbarch)
}
} // namespace selftests
}
} // namespace selftests
-#endif /* GDB_SELF_TEST */
+void _initialize_gdbarch_selftests ();
void
void
-_initialize_gdbarch_selftests (
void
)
+_initialize_gdbarch_selftests ()
{
{
-#if GDB_SELF_TEST
selftests::register_test_foreach_arch ("register_to_value",
selftests::register_to_value_test);
selftests::register_test_foreach_arch ("register_to_value",
selftests::register_to_value_test);
-#endif
}
}
This page took
0.040981 seconds
and
4
git commands to generate.