linux-nat.c: better starvation avoidance, handle non-stop mode too
[external/binutils.git] / gdb / ChangeLog
1 2015-01-09  Pedro Alves  <palves@redhat.com>
2
3         * breakpoint.c (hardware_breakpoint_inserted_here_p): New
4         function.
5         * breakpoint.h (hardware_breakpoint_inserted_here_p): New
6         declaration.
7         * linux-nat.c (linux_nat_status_is_event): Move higher up in file.
8         (linux_resume_one_lwp): Store the thread's PC.  Adjust to clear
9         stop_reason.
10         (check_stopped_by_watchpoint): New function.
11         (save_sigtrap): Reimplement.
12         (linux_nat_stopped_by_watchpoint): Adjust.
13         (linux_nat_lp_status_is_event): Delete.
14         (stop_wait_callback): Only call save_sigtrap after storing the
15         pending status.
16         (status_callback): If the thread had been stopped for a breakpoint
17         that has since been removed, discard the event and resume the LWP.
18         (count_events_callback, select_event_lwp_callback): Use
19         lwp_status_pending_p instead of linux_nat_lp_status_is_event.
20         (cancel_breakpoint): Rename to ...
21         (check_stopped_by_breakpoint): ... this.  Record whether the LWP
22         stopped for a software breakpoint or hardware breakpoint.
23         (select_event_lwp): Only give preference to the stepping LWP in
24         all-stop mode.  Adjust comments.
25         (stop_and_resume_callback): Remove references to new_pending_p.
26         (linux_nat_filter_event): Likewise.  Leave exit events of the
27         leader thread pending here.  Handle signal short circuiting here.
28         Only call save_sigtrap after storing the pending waitstatus.
29         (linux_nat_wait_1): Remove 'retry' label.  Remove references to
30         new_pending.  Don't handle leaving events the caller is not
31         interested in pending here, nor handle signal short-circuiting
32         here.  Also give equal priority to all LWPs that have had events
33         in non-stop mode.  If reporting a software breakpoint event,
34         unadjust the LWP's PC.
35         * linux-nat.h (enum lwp_stop_reason): New.
36         (struct lwp_info) <stop_pc>: New field.
37         (struct lwp_info) <stopped_by_watchpoint>: Delete field.
38         (struct lwp_info) <stop_reason>: New field.
39         * x86-linux-nat.c (x86_linux_prepare_to_resume): Adjust.
40
41 2015-01-09  Pedro Alves  <palves@redhat.com>
42
43         * linux-nat.c (linux_handle_extended_wait) <PTRACE_EVENT_EXEC>:
44         Set the LWP's 'resumed' flag.
45
46 2015-01-09  Pedro Alves  <palves@redhat.com>
47
48         * linux-nat.c (linux_resume_one_lwp): New function.
49         (resume_lwp): Use lwp_status_pending_p and linux_resume_one_lwp.
50         (linux_nat_resume): Use lwp_status_pending_p and
51         linux_resume_one_lwp.
52         (linux_handle_syscall_trap): Use linux_resume_one_lwp.
53         (linux_handle_extended_wait): Use linux_resume_one_lwp.
54         (status_callback, running_callback): Use lwp_status_pending_p.
55         (lwp_status_pending_p): New function.
56         (stop_and_resume_callback): Use lwp_status_pending_p.
57         (linux_nat_filter_event): Use linux_resume_one_lwp.
58         (linux_nat_wait_1): Always use status_callback to look for an LWP
59         with a pending status.  Use linux_resume_one_lwp.
60         (resume_stopped_resumed_lwps): Use lwp_status_pending_p and
61         linux_resume_one_lwp.
62
63 2015-01-09  Pedro Alves  <palves@redhat.com>
64
65         * breakpoint.c (bp_location_inserted_here_p): New function,
66         factored out from ...
67         (breakpoint_inserted_here_p): ... here.  Use
68         ALL_BP_LOCATIONS_AT_ADDR.
69         (software_breakpoint_inserted_here_p): Use
70         bp_location_inserted_here_p and ALL_BP_LOCATIONS_AT_ADDR.
71
72 2014-01-09  Pedro Alves  <palves@redhat.com>
73
74         Skip enabling event reporting if the kernel supports
75         PTRACE_EVENT_CLONE.
76         * linux-thread-db.c: Include "nat/linux-ptrace.h".
77         (thread_db_use_events): New function.
78         (try_thread_db_load_1): Check thread_db_use_events before enabling
79         event reporting.
80         (update_thread_state): New function.
81         (attach_thread): Use it.  Check thread_db_use_events before
82         enabling event reporting.
83         (thread_db_detach): Check thread_db_use_events before disabling
84         event reporting.
85         (find_new_threads_callback): Check thread_db_use_events before
86         enabling event reporting.  Update the thread's state if not using
87         libthread_db events.
88
89 2015-01-09  Pedro Alves  <palves@redhat.com>
90
91         * linux-nat.c (lin_lwp_attach_lwp): Assert that the lwp id we're
92         about to wait for is > 0.
93         * linux-thread-db.c (find_new_threads_callback): Ignore thread if
94         the kernel thread ID is -1.
95
96 2015-01-09  Pedro Alves  <palves@redhat.com>
97
98         * linux-nat.c (attach_proc_task_lwp_callback): New function.
99         (linux_nat_attach): Use linux_proc_attach_tgid_threads.
100         (wait_lwp, linux_nat_filter_event): If not set yet, set the lwp's
101         ptrace option flags.
102         * linux-nat.h (struct lwp_info) <must_set_ptrace_flags>: New
103         field.
104         * nat/linux-procfs.c: Include <dirent.h>.
105         (linux_proc_get_int): New parameter "warn".  Handle it.
106         (linux_proc_get_tgid): Adjust.
107         (linux_proc_get_tracerpid): Rename to ...
108         (linux_proc_get_tracerpid_nowarn): ... this.
109         (linux_proc_pid_get_state): New function, factored out from
110         (linux_proc_pid_has_state): ... this.  Add new parameter "warn"
111         and handle it.
112         (linux_proc_pid_is_gone): New function.
113         (linux_proc_pid_is_stopped): Adjust.
114         (linux_proc_pid_is_zombie_maybe_warn)
115         (linux_proc_pid_is_zombie_nowarn): New functions.
116         (linux_proc_pid_is_zombie): Use
117         linux_proc_pid_is_zombie_maybe_warn.
118         (linux_proc_attach_tgid_threads): New function.
119         * nat/linux-procfs.h (linux_proc_get_tgid): Update comment.
120         (linux_proc_get_tracerpid): Rename to ...
121         (linux_proc_get_tracerpid_nowarn): ... this, and update comment.
122         (linux_proc_pid_is_gone): New declaration.
123         (linux_proc_pid_is_zombie): Update comment.
124         (linux_proc_pid_is_zombie_nowarn): New declaration.
125         (linux_proc_attach_lwp_func): New typedef.
126         (linux_proc_attach_tgid_threads): New declaration.
127         * nat/linux-ptrace.c (linux_ptrace_attach_fail_reason): Adjust to
128         use nowarn functions.
129         (linux_ptrace_attach_fail_reason_string): Move here from
130         gdbserver/linux-low.c and rename.
131         (ptrace_supports_feature): If the current ptrace options are not
132         known yet, check them now, instead of asserting.
133         * nat/linux-ptrace.h (linux_ptrace_attach_fail_reason_string):
134         Declare.
135
136 2015-01-09  Pedro Alves  <palves@redhat.com>
137
138         * linux-thread-db.c (thread_db_find_new_threads_silently)
139         (try_thread_db_load_1, try_thread_db_load, thread_db_load_search)
140         (find_new_threads_once): Print debug output on gdb_stdlog.
141
142 2015-01-09  Chen Gang  <gang.chen.5i5j@gmail.com>
143             Pedro Alves  <palves@redhat.com>
144
145         * compile/compile.c: Include "gdb_wait.h".
146         (do_rmdir): Check return value, and free 'zap'.
147
148 2015-01-08  Pedro Alves  <palves@redhat.com>
149             Yao Qi  <yao@codesourcery.com>
150
151         * dwarf2loc.c (indirect_pieced_value): Don't call
152         gdb_sign_extend.  Call extract_signed_integer instead.
153         * utils.c (gdb_sign_extend): Remove.
154         * utils.h (gdb_sign_extend): Remove declaration.
155
156 2015-01-07  Pierre Muller  <muller@sourceware.org>
157
158         PR symtab/17811
159         * stabsread.c (define_symbol): Set language for C++ special symbols.
160
161 2015-01-07  Patrick Palka  <patrick@parcs.ath.cx>
162
163         * inflow.c (initial_gdb_ttystate): Tweak comment.
164
165 2015-01-07  Joel Brobecker  <brobecker@adacore.com>
166
167         * inflow.c (set_initial_gdb_ttystate): Add empty line after
168         comment documenting function.
169
170 2015-01-07  Patrick Palka  <patrick@parcs.ath.cx>
171
172         * terminal.h (set_initial_gdb_ttystate): Declare.
173         * inflow.c (initial_gdb_ttystate): New static variable.
174         (set_initial_gdb_ttystate): New setter.
175         (child_terminal_init_with_pgrp): Copy initial_gdb_ttystate
176         instead of our current terminal state.
177         * top.c (gdb_init): Call set_initial_gdb_ttystate.
178
179 2015-01-07  Joel Brobecker  <brobecker@adacore.com>
180
181         * guile/scm-type.c (tyscm_array_1): Add comment.
182         * python/py-type.c (typy_array_1): Add comment.
183
184 2015-01-06  Joel Brobecker  <brobecker@adacore.com>
185
186         * guile/scm-type.c (tyscm_array_1): Do not raise out-of-range
187         error if N2 is equal to N1 - 1.
188
189 2015-01-06  Joel Brobecker  <brobecker@adacore.com>
190
191         * python/py-type.c (typy_array_1): Do not raise negative-length
192         exception if N2 is equal to N1 - 1.
193
194 2015-01-03  Doug Evans  <xdje42@gmail.com>
195
196         * c-exp.y: Whitespace cleanup.
197         (classify_inner_name): Remove extra ;.
198
199 2015-01-02  Maciej W. Rozycki  <macro@codesourcery.com>
200
201         * mips-tdep.c (mips32_scan_prologue): Keep the extracted stack
202         offset signed.
203
204 2015-01-02  Doug Evans  <dje@google.com>
205
206         * dwarf2read.c (setup_type_unit_groups): Remove outdated comment.
207
208 2015-01-02  Doug Evans  <dje@google.com>
209
210         * symtab.h (struct symbol): Fix typo in comment.
211
212 2015-01-01  Joel Brobecker  <brobecker@adacore.com>
213
214         Update year range in copyright notice of all files.
215
216 2015-01-01  Joel Brobecker  <brobecker@adacore.com>
217
218         * top.c (print_gdb_version): Update copyright year to 2015.
219
220 2015-01-01  Joel Brobecker  <brobecker@adacore.com>
221
222         * config/djgpp/fnchange.lst: Add entry for gdb/ChangeLog-2014.
223
224 For older changes see ChangeLog-2014.
225 \f
226 Local Variables:
227 mode: change-log
228 left-margin: 8
229 fill-column: 74
230 version-control: never
231 coding: utf-8
232 End: