Revert the previous 7 commits of: Validate binary before use
ddc98fbf2f
Create empty nat/linux-maps.[ch] and common/target-utils.[ch]6e5b4429db
Move gdb_regex* to common/f7af1fcd75
Prepare linux_find_memory_regions_full & co. for move9904185cfd
Move linux_find_memory_regions_full & co.700ca40f6f
gdbserver build-id attribute generatorca5268b6be
Validate symbol file using build-id0a94970d66
Tests for validate symbol file using build-id gdb/ChangeLog 2015-07-15 Jan Kratochvil <jan.kratochvil@redhat.com> Revert the previous 6 commits: Create empty nat/linux-maps.[ch] and common/target-utils.[ch]. Move gdb_regex* to common/ Prepare linux_find_memory_regions_full & co. for move Move linux_find_memory_regions_full & co. gdbserver build-id attribute generator Validate symbol file using build-id gdb/gdbserver/ChangeLog 2015-07-15 Jan Kratochvil <jan.kratochvil@redhat.com> Revert the previous 3 commits: Move gdb_regex* to common/ Move linux_find_memory_regions_full & co. gdbserver build-id attribute generator gdb/doc/ChangeLog 2015-07-15 Jan Kratochvil <jan.kratochvil@redhat.com> Revert the previous 2 commits: gdbserver build-id attribute generator Validate symbol file using build-id gdb/testsuite/ChangeLog 2015-07-15 Jan Kratochvil <jan.kratochvil@redhat.com> Revert the previous commit: Tests for validate symbol file using build-id.
This commit is contained in:
parent
0a94970d66
commit
db1ff28b60
43 changed files with 830 additions and 1952 deletions
55
gdb/utils.c
55
gdb/utils.c
|
@ -67,6 +67,7 @@
|
|||
|
||||
#include "gdb_usleep.h"
|
||||
#include "interps.h"
|
||||
#include "gdb_regex.h"
|
||||
|
||||
#if !HAVE_DECL_MALLOC
|
||||
extern PTR malloc (); /* ARI: PTR */
|
||||
|
@ -1113,6 +1114,60 @@ make_hex_string (const gdb_byte *data, size_t length)
|
|||
|
||||
|
||||
|
||||
/* A cleanup function that calls regfree. */
|
||||
|
||||
static void
|
||||
do_regfree_cleanup (void *r)
|
||||
{
|
||||
regfree (r);
|
||||
}
|
||||
|
||||
/* Create a new cleanup that frees the compiled regular expression R. */
|
||||
|
||||
struct cleanup *
|
||||
make_regfree_cleanup (regex_t *r)
|
||||
{
|
||||
return make_cleanup (do_regfree_cleanup, r);
|
||||
}
|
||||
|
||||
/* Return an xmalloc'd error message resulting from a regular
|
||||
expression compilation failure. */
|
||||
|
||||
char *
|
||||
get_regcomp_error (int code, regex_t *rx)
|
||||
{
|
||||
size_t length = regerror (code, rx, NULL, 0);
|
||||
char *result = xmalloc (length);
|
||||
|
||||
regerror (code, rx, result, length);
|
||||
return result;
|
||||
}
|
||||
|
||||
/* Compile a regexp and throw an exception on error. This returns a
|
||||
cleanup to free the resulting pattern on success. RX must not be
|
||||
NULL. */
|
||||
|
||||
struct cleanup *
|
||||
compile_rx_or_error (regex_t *pattern, const char *rx, const char *message)
|
||||
{
|
||||
int code;
|
||||
|
||||
gdb_assert (rx != NULL);
|
||||
|
||||
code = regcomp (pattern, rx, REG_NOSUB);
|
||||
if (code != 0)
|
||||
{
|
||||
char *err = get_regcomp_error (code, pattern);
|
||||
|
||||
make_cleanup (xfree, err);
|
||||
error (("%s: %s"), message, err);
|
||||
}
|
||||
|
||||
return make_regfree_cleanup (pattern);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* This function supports the query, nquery, and yquery functions.
|
||||
Ask user a y-or-n question and return 0 if answer is no, 1 if
|
||||
answer is yes, or default the answer to the specified default
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue