diff options
-rw-r--r-- | gdb/ChangeLog | 9 | ||||
-rw-r--r-- | gdb/breakpoint.c | 15 | ||||
-rw-r--r-- | gdb/common/common-types.h | 2 | ||||
-rw-r--r-- | gdb/linux-nat.h | 1 |
4 files changed, 23 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 85d8bc2..ba521c0 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,12 @@ +2015-09-10 Yao Qi <yao.qi@linaro.org> + + * breakpoint.c (download_tracepoint_locations): New local + can_download_tracepoint. Check the result of + target_can_download_tracepoint and save it in + can_download_tracepoint if there are tracepoints to download. + * linux-nat.h (enum tribool): Move it to ... + * common/common-types.h: ... here. + 2015-09-09 Pedro Alves <palves@redhat.com> * inf-loop.c (inferior_event_handler): Delete INF_TIMER case. diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c index 4709de7..520793a 100644 --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c @@ -12146,9 +12146,7 @@ download_tracepoint_locations (void) { struct breakpoint *b; struct cleanup *old_chain; - - if (!target_can_download_tracepoint ()) - return; + enum tribool can_download_tracepoint = TRIBOOL_UNKNOWN; old_chain = save_current_space_and_thread (); @@ -12163,6 +12161,17 @@ download_tracepoint_locations (void) : !may_insert_tracepoints)) continue; + if (can_download_tracepoint == TRIBOOL_UNKNOWN) + { + if (target_can_download_tracepoint ()) + can_download_tracepoint = TRIBOOL_TRUE; + else + can_download_tracepoint = TRIBOOL_FALSE; + } + + if (can_download_tracepoint == TRIBOOL_FALSE) + break; + for (bl = b->loc; bl; bl = bl->next) { /* In tracepoint, locations are _never_ duplicated, so diff --git a/gdb/common/common-types.h b/gdb/common/common-types.h index 55b41ab..3f60a9a 100644 --- a/gdb/common/common-types.h +++ b/gdb/common/common-types.h @@ -58,4 +58,6 @@ typedef unsigned long long ULONGEST; /* * The largest CORE_ADDR value. */ #define CORE_ADDR_MAX (~ (CORE_ADDR) 0) +enum tribool { TRIBOOL_UNKNOWN = -1, TRIBOOL_FALSE = 0, TRIBOOL_TRUE = 1 }; + #endif /* COMMON_TYPES_H */ diff --git a/gdb/linux-nat.h b/gdb/linux-nat.h index 81b3ded..f7b45f7 100644 --- a/gdb/linux-nat.h +++ b/gdb/linux-nat.h @@ -116,7 +116,6 @@ struct lwp_info extern struct lwp_info *lwp_list; /* Does the current host support PTRACE_GETREGSET? */ -enum tribool { TRIBOOL_UNKNOWN = -1, TRIBOOL_FALSE = 0, TRIBOOL_TRUE = 1 }; extern enum tribool have_ptrace_getregset; /* Iterate over each active thread (light-weight process). */ |