diff options
author | Tom Tromey <tromey@adacore.com> | 2020-10-07 12:07:55 -0600 |
---|---|---|
committer | Tom Tromey <tromey@adacore.com> | 2020-10-07 12:07:55 -0600 |
commit | 4a72de73660810536e9bb416d41dc8a6128f91da (patch) | |
tree | 4ada40b22e18b0ab7b64494c58d45c1492a76187 /gdbsupport/search.h | |
parent | e86efb3310cf3aa9515cca07d0835b7e8af79b38 (diff) | |
download | gdb-4a72de73660810536e9bb416d41dc8a6128f91da.zip gdb-4a72de73660810536e9bb416d41dc8a6128f91da.tar.gz gdb-4a72de73660810536e9bb416d41dc8a6128f91da.tar.bz2 |
Move simple_search_memory to gdbsupport/search.cc
This moves the simple_search_memory function to a new file,
gdbsupport/search.cc. The API is slightly changed to make it more
general. This generality is useful for wiring it to gdbserver, and
also for unit testing.
gdb/ChangeLog
2020-10-07 Tom Tromey <tromey@adacore.com>
* target.h (simple_search_memory): Don't declare.
* target.c (simple_search_memory): Move to gdbsupport.
(default_search_memory): Update.
* remote.c (remote_target::search_memory): Update.
gdbsupport/ChangeLog
2020-10-07 Tom Tromey <tromey@adacore.com>
* Makefile.in: Rebuild.
* Makefile.am (libgdbsupport_a_SOURCES): Add search.cc.
* search.h: New file.
* search.cc: New file.
Diffstat (limited to 'gdbsupport/search.h')
-rw-r--r-- | gdbsupport/search.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/gdbsupport/search.h b/gdbsupport/search.h new file mode 100644 index 0000000..886d80f --- /dev/null +++ b/gdbsupport/search.h @@ -0,0 +1,42 @@ +/* Copyright (C) 2020 Free Software Foundation, Inc. + + This file is part of GDB. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +#ifndef COMMON_SEARCH_H +#define COMMON_SEARCH_H + +#include "gdbsupport/function-view.h" + +/* This is needed by the unit test, so appears here. */ +#define SEARCH_CHUNK_SIZE 16000 + +/* The type of a callback function that can be used to read memory. + Note that target_read_memory is not used here, because gdbserver + wants to be able to examine trace data when searching, and + target_read_memory does not do this. */ + +typedef bool target_read_memory_ftype (CORE_ADDR, gdb_byte *, size_t); + +/* Utility implementation of searching memory. */ +extern int simple_search_memory + (gdb::function_view<target_read_memory_ftype> read_memory, + CORE_ADDR start_addr, + ULONGEST search_space_len, + const gdb_byte *pattern, + ULONGEST pattern_len, + CORE_ADDR *found_addrp); + +#endif /* COMMON_SEARCH_H */ |