From: Tom Tromey Date: Mon, 28 Oct 2013 18:16:24 +0000 (-0600) Subject: introduce and use find_target_at X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8b06beed0f0eb221067a1013add2efd159a36ade;p=binutils-gdb.git introduce and use find_target_at This patch adds find_target_at to determine whether a target appears at a given stratum. This new function lets us clean up find_record_target a bit, and is generally useful. 2014-02-19 Tom Tromey * record.c (find_record_target): Use find_target_at. * target.c (find_target_at): New function. * target.h (find_target_at): Declare. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 770a534cfda..bb6ce24a99a 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2014-02-19 Tom Tromey + + * record.c (find_record_target): Use find_target_at. + * target.c (find_target_at): New function. + * target.h (find_target_at): Declare. + 2014-02-19 Tom Tromey * aarch64-linux-nat.c (aarch64_linux_stopped_by_watchpoint): diff --git a/gdb/record.c b/gdb/record.c index 4c671927c25..41e167fc2ae 100644 --- a/gdb/record.c +++ b/gdb/record.c @@ -62,13 +62,7 @@ struct cmd_list_element *info_record_cmdlist = NULL; struct target_ops * find_record_target (void) { - struct target_ops *t; - - for (t = current_target.beneath; t != NULL; t = t->beneath) - if (t->to_stratum == record_stratum) - return t; - - return NULL; + return find_target_at (record_stratum); } /* Check that recording is active. Throw an error, if it isn't. */ diff --git a/gdb/target.c b/gdb/target.c index 990dc5e3610..75f7506a22e 100644 --- a/gdb/target.c +++ b/gdb/target.c @@ -3748,6 +3748,20 @@ find_target_beneath (struct target_ops *t) return t->beneath; } +/* See target.h. */ + +struct target_ops * +find_target_at (enum strata stratum) +{ + struct target_ops *t; + + for (t = current_target.beneath; t != NULL; t = t->beneath) + if (t->to_stratum == stratum) + return t; + + return NULL; +} + /* The inferior process has died. Long live the inferior! */ diff --git a/gdb/target.h b/gdb/target.h index 83e3b590e16..1248734ed5e 100644 --- a/gdb/target.h +++ b/gdb/target.h @@ -1968,6 +1968,11 @@ extern void find_default_create_inferior (struct target_ops *, extern struct target_ops *find_target_beneath (struct target_ops *); +/* Find the target at STRATUM. If no target is at that stratum, + return NULL. */ + +struct target_ops *find_target_at (enum strata stratum); + /* Read OS data object of type TYPE from the target, and return it in XML format. The result is NUL-terminated and returned as a string, allocated using xmalloc. If an error occurs or the transfer is