2014-03-27 18:42:53 +00:00
|
|
|
|
2014-05-29 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* infrun.c (stop_stepping): Rename to ...
|
|
|
|
|
(stop_waiting): ... this.
|
|
|
|
|
(proceed): Update comment.
|
|
|
|
|
(process_event_stop_test, handle_inferior_event)
|
|
|
|
|
(handle_signal_stop, handle_step_into_function)
|
|
|
|
|
(handle_step_into_function_backward): Update.
|
|
|
|
|
|
unbreak infcalls
I managed to miss an interaction between the recent *running patch,
and target-async, which resulted in infcalls being completely broken
on GNU/Linux and remote targets (that is, the async-capable targets).
Temporary breakpoint 1, main () at threads.c:35
35 long i = 0;
(gdb) p malloc (0)
The program being debugged stopped while in a function called from GDB.
Evaluation of the expression containing the function
(malloc) will be abandoned.
When the function is done executing, GDB will silently stop.
(gdb) p malloc (0)
Program received signal SIGSEGV, Segmentation fault.
0x000000000058d7e8 in get_regcache_aspace (regcache=0x0) at ../../src/gdb/regcache.c:281
281 return regcache->aspace;
(top-gdb)
The issue is that when running an infcall, the thread is no longer
marked as running, so run_inferior_call is not calling
wait_for_inferior anymore.
Fix this by doing what the comment actually says we do:
"Do here what `proceed' itself does in sync mode."
And proceed doesn't check whether the target is running.
I notice this is broken in case of the early return in proceed, but we
were broken before in that case anyway, because run_inferior_call will
think the call actually ran. Seems like we should make proceed have a
boolean return, and go through all callers making use of it, if
necessary.
But for now, just fix the regression.
Tested on x86_64 Fedora 20.
gdb/
2014-05-29 Pedro Alves <palves@redhat.com>
* infcall.c (run_inferior_call): Don't check whether the current
thread is running after the proceed call.
2014-05-29 16:17:30 +00:00
|
|
|
|
2014-05-29 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* infcall.c (run_inferior_call): Don't check whether the current
|
|
|
|
|
thread is running after the proceed call.
|
|
|
|
|
|
enable target async by default; separate MI and target notions of async
This finally makes background execution commands possible by default.
However, in order to do that, there's one last thing we need to do --
we need to separate the MI and target notions of "async". Unlike the
CLI, where the user explicitly requests foreground vs background
execution in the execution command itself (c vs c&), MI chose to treat
"set target-async" specially -- setting it changes the default
behavior of execution commands.
So, we can't simply "set target-async" default to on, as that would
affect MI frontends. Instead we have to make the setting MI-specific,
and teach MI about sync commands on top of an async target.
Because the "target" word in "set target-async" ends up as a potential
source of confusion, the patch adds a "set mi-async" option, and makes
"set target-async" a deprecated alias.
Rather than make the targets always async, this patch introduces a new
"maint set target-async" option so that the GDB developer can control
whether the target is async. This makes it simpler to debug issues
arising only in the synchronous mode; important because sync mode
seems unlikely to go away.
Unlike in previous revisions, "set target-async" does not affect this
new maint parameter. The rationale for this is that then one can
easily run the test suite in the "maint set target-async off" mode and
have tests that enable mi-async fail just like they fail on
non-async-capable targets. This emulation is exactly the point of the
maint option.
I had asked Tom in a previous iteration to split the actual change of
the target async default to a separate patch, but it turns out that
that is quite awkward in this version of the patch, because with MI
async and target async decoupled (unlike in previous versions), if we
don't flip the default at the same time, then just "set target-async
on" alone never actually manages to do anything. It's best to not
have that transitory state in the tree.
Given "set target-async on" now only has effect for MI, the patch goes
through the testsuite removing it from non-MI tests. MI tests are
adjusted to use the new and less confusing "mi-async" spelling.
2014-05-29 Pedro Alves <palves@redhat.com>
Tom Tromey <tromey@redhat.com>
* NEWS: Mention "maint set target-async", "set mi-async", and that
background execution commands are now always available.
* target.h (target_async_permitted): Update comment.
* target.c (target_async_permitted, target_async_permitted_1):
Default to 1.
(set_target_async_command): Rename to ...
(maint_set_target_async_command): ... this.
(show_target_async_command): Rename to ...
(maint_show_target_async_command): ... this.
(_initialize_target): Adjust.
* infcmd.c (prepare_execution_command): Make extern.
* inferior.h (prepare_execution_command): Declare.
* infrun.c (set_observer_mode): Leave target async alone.
* mi/mi-interp.c (mi_interpreter_init): Install
mi_on_sync_execution_done as sync_execution_done observer.
(mi_on_sync_execution_done): New function.
(mi_execute_command_input_handler): Don't print the prompt if we
just started a synchronous command with an async target.
(mi_on_resume): Check sync_execution before printing prompt.
* mi/mi-main.h (mi_async_p): Declare.
* mi/mi-main.c: Include gdbcmd.h.
(mi_async_p): New function.
(mi_async, mi_async_1): New globals.
(set_mi_async_command, show_mi_async_command, mi_async): New
functions.
(exec_continue): Call prepare_execution_command.
(run_one_inferior, mi_cmd_exec_run, mi_cmd_list_target_features)
(mi_execute_async_cli_command): Use mi_async_p.
(_initialize_mi_main): Install "set mi-async". Make
"target-async" a deprecated alias.
2014-05-29 Pedro Alves <palves@redhat.com>
Tom Tromey <tromey@redhat.com>
* gdb.texinfo (Non-Stop Mode): Remove "set target-async 1"
from example.
(Asynchronous and non-stop modes): Document '-gdb-set mi-async'.
Mention that target-async is now deprecated.
(Maintenance Commands): Document maint set/show target-async.
2014-05-29 Pedro Alves <palves@redhat.com>
Tom Tromey <tromey@redhat.com>
* gdb.base/async-shell.exp: Don't enable target-async.
* gdb.base/async.exp
* gdb.base/corefile.exp (corefile_test_attach): Remove 'async'
parameter. Adjust.
(top level): Don't test with "target-async".
* gdb.base/dprintf-non-stop.exp: Don't enable target-async.
* gdb.base/gdb-sigterm.exp: Don't test with "target-async".
* gdb.base/inferior-died.exp: Don't enable target-async.
* gdb.base/interrupt-noterm.exp: Likewise.
* gdb.mi/mi-async.exp: Use "mi-async" instead of "target-async".
* gdb.mi/mi-nonstop-exit.exp: Likewise.
* gdb.mi/mi-nonstop.exp: Likewise.
* gdb.mi/mi-ns-stale-regcache.exp: Likewise.
* gdb.mi/mi-nsintrall.exp: Likewise.
* gdb.mi/mi-nsmoribund.exp: Likewise.
* gdb.mi/mi-nsthrexec.exp: Likewise.
* gdb.mi/mi-watch-nonstop.exp: Likewise.
* gdb.multi/watchpoint-multi.exp: Adjust comment.
* gdb.python/py-evsignal.exp: Don't enable target-async.
* gdb.python/py-evthreads.exp: Likewise.
* gdb.python/py-prompt.exp: Likewise.
* gdb.reverse/break-precsave.exp: Don't test with "target-async".
* gdb.server/solib-list.exp: Don't enable target-async.
* gdb.threads/thread-specific-bp.exp: Likewise.
* lib/mi-support.exp: Adjust to use mi-async.
2014-05-29 18:58:57 +00:00
|
|
|
|
2014-05-29 Pedro Alves <palves@redhat.com>
|
|
|
|
|
Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* NEWS: Mention "maint set target-async", "set mi-async", and that
|
|
|
|
|
background execution commands are now always available.
|
|
|
|
|
* target.h (target_async_permitted): Update comment.
|
|
|
|
|
* target.c (target_async_permitted, target_async_permitted_1):
|
|
|
|
|
Default to 1.
|
|
|
|
|
(set_target_async_command): Rename to ...
|
|
|
|
|
(maint_set_target_async_command): ... this.
|
|
|
|
|
(show_target_async_command): Rename to ...
|
|
|
|
|
(maint_show_target_async_command): ... this.
|
|
|
|
|
(_initialize_target): Adjust.
|
|
|
|
|
* infcmd.c (prepare_execution_command): Make extern.
|
|
|
|
|
* inferior.h (prepare_execution_command): Declare.
|
|
|
|
|
* infrun.c (set_observer_mode): Leave target async alone.
|
|
|
|
|
* mi/mi-interp.c (mi_interpreter_init): Install
|
|
|
|
|
mi_on_sync_execution_done as sync_execution_done observer.
|
|
|
|
|
(mi_on_sync_execution_done): New function.
|
|
|
|
|
(mi_execute_command_input_handler): Don't print the prompt if we
|
|
|
|
|
just started a synchronous command with an async target.
|
|
|
|
|
(mi_on_resume): Check sync_execution before printing prompt.
|
|
|
|
|
* mi/mi-main.h (mi_async_p): Declare.
|
|
|
|
|
* mi/mi-main.c: Include gdbcmd.h.
|
|
|
|
|
(mi_async_p): New function.
|
|
|
|
|
(mi_async, mi_async_1): New globals.
|
|
|
|
|
(set_mi_async_command, show_mi_async_command, mi_async): New
|
|
|
|
|
functions.
|
|
|
|
|
(exec_continue): Call prepare_execution_command.
|
|
|
|
|
(run_one_inferior, mi_cmd_exec_run, mi_cmd_list_target_features)
|
|
|
|
|
(mi_execute_async_cli_command): Use mi_async_p.
|
|
|
|
|
(_initialize_mi_main): Install "set mi-async". Make
|
|
|
|
|
"target-async" a deprecated alias.
|
|
|
|
|
|
Make display_gdb_prompt CLI-only.
Enabling target-async by default will require implementing sync
execution on top of an async target, much like foreground command are
implemented on the CLI in async mode.
In order to do that, we will need better control of when to print the
MI prompt. Currently the interp->display_prompt_p hook is all we
have, and MI just always returns false, meaning, make
display_gdb_prompt a no-op. We'll need to be able to know to print
the MI prompt in some of the conditions that display_gdb_prompt is
called from the core, but not all.
This is all a litte twisted currently. As we can see,
display_gdb_prompt is really CLI specific, so make the console
interpreters (console/tui) themselves call it. To be able to do that,
and add a few different observers that the interpreters can use to
distinguish when or why the the prompt is being printed:
#1 - one called whenever a command is cancelled due to an error.
#2 - another for when a foreground command just finished.
In both cases, CLI wants to print the prompt, while MI doesn't.
MI will want to print the prompt in the second case when in a special
MI mode.
The display_gdb_prompt call in interp_set made me pause. The comment
there reads:
/* Finally, put up the new prompt to show that we are indeed here.
Also, display_gdb_prompt for the console does some readline magic
which is needed for the console interpreter, at least... */
But, that looks very much like a no-op to me currently:
- the MI interpreter always return false in the prompt hook, meaning
actually display no prompt.
- the interpreter used at that point is still quiet. And the
console/tui interpreters return false in the prompt hook if they're
quiet, meaning actually display no prompt.
The only remaining possible use would then be the readline magic. But
whatever that might have been, it's not reacheable today either,
because display_gdb_prompt returns early, before touching readline if
the interpreter returns false in the display_prompt_p hook.
Tested on x86_64 Fedora 20, sync and async modes.
gdb/
2014-05-29 Pedro Alves <palves@redhat.com>
* cli/cli-interp.c (cli_interpreter_display_prompt_p): Delete.
(_initialize_cli_interp): Adjust.
* event-loop.c: Include "observer.h".
(start_event_loop): Notify 'command_error' observers instead of
calling display_gdb_prompt. Remove FIXME comment.
* event-top.c (display_gdb_prompt): Remove call into the
interpreters.
* inf-loop.c: Include "observer.h".
(inferior_event_handler): Notify 'command_error' observers instead
of calling display_gdb_prompt.
* infrun.c (fetch_inferior_event): Notify 'sync_execution_done'
observers instead of calling display_gdb_prompt.
* interps.c (interp_set): Don't call display_gdb_prompt.
(current_interp_display_prompt_p): Delete.
* interps.h (interp_prompt_p): Delete declaration.
(interp_prompt_p_ftype): Delete.
(struct interp_procs) <prompt_proc_p>: Delete field.
(current_interp_display_prompt_p): Delete declaration.
* mi-interp.c (mi_interpreter_prompt_p): Delete.
(_initialize_mi_interp): Adjust.
* tui-interp.c (tui_init): Install 'sync_execution_done' and
'command_error' observers.
(tui_on_sync_execution_done, tui_on_command_error): New
functions.
(tui_display_prompt_p): Delete.
(_initialize_tui_interp): Adjust.
gdb/doc/
2014-05-29 Pedro Alves <palves@redhat.com>
* observer.texi (sync_execution_done, command_error): New
subjects.
2014-05-23 10:37:12 +00:00
|
|
|
|
2014-05-29 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* cli/cli-interp.c (cli_interpreter_display_prompt_p): Delete.
|
|
|
|
|
(_initialize_cli_interp): Adjust.
|
|
|
|
|
* event-loop.c: Include "observer.h".
|
|
|
|
|
(start_event_loop): Notify 'command_error' observers instead of
|
|
|
|
|
calling display_gdb_prompt. Remove FIXME comment.
|
|
|
|
|
* event-top.c (display_gdb_prompt): Remove call into the
|
|
|
|
|
interpreters.
|
|
|
|
|
* inf-loop.c: Include "observer.h".
|
|
|
|
|
(inferior_event_handler): Notify 'command_error' observers instead
|
|
|
|
|
of calling display_gdb_prompt.
|
|
|
|
|
* infrun.c (fetch_inferior_event): Notify 'sync_execution_done'
|
|
|
|
|
observers instead of calling display_gdb_prompt.
|
|
|
|
|
* interps.c (interp_set): Don't call display_gdb_prompt.
|
|
|
|
|
(current_interp_display_prompt_p): Delete.
|
|
|
|
|
* interps.h (interp_prompt_p): Delete declaration.
|
|
|
|
|
(interp_prompt_p_ftype): Delete.
|
|
|
|
|
(struct interp_procs) <prompt_proc_p>: Delete field.
|
|
|
|
|
(current_interp_display_prompt_p): Delete declaration.
|
|
|
|
|
* mi-interp.c (mi_interpreter_prompt_p): Delete.
|
|
|
|
|
(_initialize_mi_interp): Adjust.
|
|
|
|
|
* tui-interp.c (tui_init): Install 'sync_execution_done' and
|
|
|
|
|
'command_error' observers.
|
|
|
|
|
(tui_on_sync_execution_done, tui_on_command_error): New
|
|
|
|
|
functions.
|
|
|
|
|
(tui_display_prompt_p): Delete.
|
|
|
|
|
(_initialize_tui_interp): Adjust.
|
|
|
|
|
|
PR gdb/13860 - Make MI sync vs async output (closer to) the same.
Ignoring expected and desired differences like whether the prompt is
output after *stoppped records, GDB MI output is still different in
sync and async modes.
In sync mode, when a CLI execution command is entered, the "reason"
field is missing in the *stopped async record. And in async mode, for
some events, like program exits, the corresponding CLI output is
missing in the CLI channel.
Vis, diff between sync vs async modes:
run
^running
*running,thread-id="1"
(gdb)
...
- ~"[Inferior 1 (process 15882) exited normally]\n"
=thread-exited,id="1",group-id="i1"
=thread-group-exited,id="i1",exit-code="0"
- *stopped
+ *stopped,reason="exited-normally"
si
...
(gdb)
~"0x000000000045e033\t29\t memset (&args, 0, sizeof args);\n"
- *stopped,frame=...,thread-id="1",stopped-threads="all",core="0"
+ *stopped,reason="end-stepping-range",frame=...,thread-id="1",stopped-threads="all",core="0"
(gdb)
In addition, in both cases, when a MI execution command is entered,
and a breakpoint triggers, the event is sent to the console too. But
some events like program exits have the CLI output missing in the CLI
channel:
-exec-run
^running
*running,thread-id="1"
(gdb)
...
=thread-exited,id="1",group-id="i1"
=thread-group-exited,id="i1",exit-code="0"
- *stopped
+ *stopped,reason="exited-normally"
We'll want to make background commands always possible by default.
IOW, make target-async be the default. But, in order to do that,
we'll need to emulate MI sync on top of an async target. That means
we'll have yet another combination to care for in the testsuite.
Rather than making the testsuite cope with all these differences, I
thought it better to just fix GDB to always have the complete output,
no matter whether it's in sync or async mode.
This is all related to interpreter-exec, and the corresponding uiout
switching. (Typing a CLI command directly in MI is shorthand for
running it through -interpreter-exec console.)
In sync mode, when a CLI command is active, normal_stop is called when
the current interpreter and uiout are CLI's. So print_XXX_reason
prints the stop reason to CLI uiout (only), and we don't show it in
MI.
In async mode the stop event is processed when we're back in the MI
interpreter, so the stop reason is printed directly to the MI uiout.
Fix this by making run control event printing roughly independent of
whatever is the current interpreter or uiout. That is, move these
prints to interpreter observers, that know whether to print or be
quiet, and if printing, which uiout to print to. In the case of the
console/tui interpreters, only print if the top interpreter. For MI,
always print.
Breakpoint hits / normal stops are already handled similarly -- MI has
a normal_stop observer that prints the event to both MI and the CLI,
though that could be cleaned up further in the direction of this
patch.
This also makes all of:
(gdb) foo
and
(gdb) interpreter-exec MI "-exec-foo"
and
(gdb)
-exec-foo
and
(gdb)
-interpreter-exec console "foo"
print as expected.
Tested on x86_64 Fedora 20, sync and async modes.
gdb/
2014-05-29 Pedro Alves <palves@redhat.com>
PR gdb/13860
* cli/cli-interp.c: Include infrun.h and observer.h.
(cli_uiout, cli_interp): New globals.
(cli_on_signal_received, cli_on_end_stepping_range)
(cli_on_signal_exited, cli_on_exited, cli_on_no_history): New
functions.
(cli_interpreter_init): Install them as 'end_stepping_range',
'signal_received' 'signal_exited', 'exited' and 'no_history'
observers.
(_initialize_cli_interp): Remove cli_interp local.
* infrun.c (handle_inferior_event): Call the several stop reason
observers instead of printing the stop reason directly.
(end_stepping_range): New function.
(print_end_stepping_range_reason, print_signal_exited_reason)
(print_exited_reason, print_signal_received_reason)
(print_no_history_reason): Make static, and add an uiout
parameter. Print to that instead of to CURRENT_UIOUT.
* infrun.h (print_end_stepping_range_reason)
(print_signal_exited_reason, print_exited_reason)
(print_signal_received_reason print_no_history_reason): New
declarations.
* mi/mi-common.h (struct mi_interp): Rename 'uiout' field to
'mi_uiout'.
<cli_uiout>: New field.
* mi/mi-interp.c (mi_interpreter_init): Adjust. Create the new
uiout for CLI output. Install 'signal_received',
'end_stepping_range', 'signal_exited', 'exited' and 'no_history'
observers.
(find_mi_interpreter, mi_interp_data, mi_on_signal_received)
(mi_on_end_stepping_range, mi_on_signal_exited, mi_on_exited)
(mi_on_no_history): New functions.
(ui_out_free_cleanup): Delete function.
(mi_on_normal_stop): Don't allocate a new uiout for CLI output,
instead use the one already stored in the MI interpreter data.
(mi_ui_out): Adjust.
* tui/tui-interp.c: Include infrun.h and observer.h.
(tui_interp): New global.
(tui_on_signal_received, tui_on_end_stepping_range)
(tui_on_signal_exited, tui_on_exited)
(tui_on_no_history): New functions.
(tui_init): Install them as 'end_stepping_range',
'signal_received' 'signal_exited', 'exited' and 'no_history'
observers.
(_initialize_tui_interp): Delete tui_interp local.
gdb/doc/
2014-05-29 Pedro Alves <palves@redhat.com>
PR gdb/13860
* observer.texi (signal_received, end_stepping_range)
(signal_exited, exited, no_history): New observer subjects.
gdb/testsuite/
2014-05-29 Pedro Alves <palves@redhat.com>
PR gdb/13860
* gdb.mi/mi-cli.exp: Always expect "end-stepping-range" stop
reason, even in sync mode.
2014-05-29 12:09:45 +00:00
|
|
|
|
2014-05-29 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR gdb/13860
|
|
|
|
|
* cli/cli-interp.c: Include infrun.h and observer.h.
|
|
|
|
|
(cli_uiout, cli_interp): New globals.
|
|
|
|
|
(cli_on_signal_received, cli_on_end_stepping_range)
|
|
|
|
|
(cli_on_signal_exited, cli_on_exited, cli_on_no_history): New
|
|
|
|
|
functions.
|
|
|
|
|
(cli_interpreter_init): Install them as 'end_stepping_range',
|
|
|
|
|
'signal_received' 'signal_exited', 'exited' and 'no_history'
|
|
|
|
|
observers.
|
|
|
|
|
(_initialize_cli_interp): Remove cli_interp local.
|
|
|
|
|
* infrun.c (handle_inferior_event): Call the several stop reason
|
|
|
|
|
observers instead of printing the stop reason directly.
|
|
|
|
|
(end_stepping_range): New function.
|
|
|
|
|
(print_end_stepping_range_reason, print_signal_exited_reason)
|
|
|
|
|
(print_exited_reason, print_signal_received_reason)
|
|
|
|
|
(print_no_history_reason): Make static, and add an uiout
|
|
|
|
|
parameter. Print to that instead of to CURRENT_UIOUT.
|
|
|
|
|
* infrun.h (print_end_stepping_range_reason)
|
|
|
|
|
(print_signal_exited_reason, print_exited_reason)
|
|
|
|
|
(print_signal_received_reason print_no_history_reason): New
|
|
|
|
|
declarations.
|
|
|
|
|
* mi/mi-common.h (struct mi_interp): Rename 'uiout' field to
|
|
|
|
|
'mi_uiout'.
|
|
|
|
|
<cli_uiout>: New field.
|
|
|
|
|
* mi/mi-interp.c (mi_interpreter_init): Adjust. Create the new
|
|
|
|
|
uiout for CLI output. Install 'signal_received',
|
|
|
|
|
'end_stepping_range', 'signal_exited', 'exited' and 'no_history'
|
|
|
|
|
observers.
|
|
|
|
|
(find_mi_interpreter, mi_interp_data, mi_on_signal_received)
|
|
|
|
|
(mi_on_end_stepping_range, mi_on_signal_exited, mi_on_exited)
|
|
|
|
|
(mi_on_no_history): New functions.
|
|
|
|
|
(ui_out_free_cleanup): Delete function.
|
|
|
|
|
(mi_on_normal_stop): Don't allocate a new uiout for CLI output,
|
|
|
|
|
instead use the one already stored in the MI interpreter data.
|
|
|
|
|
(mi_ui_out): Adjust.
|
|
|
|
|
* tui/tui-interp.c: Include infrun.h and observer.h.
|
|
|
|
|
(tui_interp): New global.
|
|
|
|
|
(tui_on_signal_received, tui_on_end_stepping_range)
|
|
|
|
|
(tui_on_signal_exited, tui_on_exited)
|
|
|
|
|
(tui_on_no_history): New functions.
|
|
|
|
|
(tui_init): Install them as 'end_stepping_range',
|
|
|
|
|
'signal_received' 'signal_exited', 'exited' and 'no_history'
|
|
|
|
|
observers.
|
|
|
|
|
(_initialize_tui_interp): Delete tui_interp local.
|
|
|
|
|
|
PR gdb/15713 - errors from i386_linux_resume lead to lock-up
linux_nat_resume is not considering that linux_ops->to_resume may throw:
/* Mark LWP as not stopped to prevent it from being continued by
linux_nat_resume_callback. */
lp->stopped = 0;
if (resume_many)
iterate_over_lwps (ptid, linux_nat_resume_callback, NULL);
If something within linux_nat_resume_callback throws, GDB leaves the
lwp_info as if the inferior was resumed, while it actually wasn't.
A couple examples, there are possibly others:
- i386_linux_resume calls target_read which calls QUIT.
- if the actual ptrace resumption fails in inf_ptrace_resume,
perror_with_name is called.
If the user tries to kill the inferior at this point (or quit, which
offers to kill), GDB locks up trying to stop the lwp -- if it is
already stopped no new waitpid event gets generated for it.
Fix this by setting the stopped flag earlier, as soon as we collect a
stop event with waitpid, and clearing it always only after resuming
the lwp successfully.
Tested on x86_64 Fedora 20. Confirmed the lock-up disappears using a
local hack that forces an error in inf_ptrace_resume.
Also fixes a little "set debug lin-lwp" annoyance. Currently we always see:
Continuing.
LLR: Preparing to resume process 6802, 0, inferior_ptid Thread 0x7ffff7fc7740 (LWP 6802)
^^^^^^^^
RC: Resuming sibling Thread 0x7ffff77c5700 (LWP 6807), 0, resume
RC: Resuming sibling Thread 0x7ffff7fc6700 (LWP 6806), 0, resume
RC: Not resuming sibling Thread 0x7ffff7fc7740 (LWP 6802) (not stopped)
^^^^^^^^^^^^^^^^^^^^^^^
LLR: PTRACE_CONT process 6802, 0 (resume event thread)
This patch gets rid of the "Not resuming sibling" line.
2014-05-29 Pedro Alves <palves@redhat.com>
PR gdb/15713
* linux-nat.c (linux_nat_resume_callback): Rename the second
parameter to 'except'. Skip LP if it points to EXCEPT.
(linux_nat_resume): Don't mark the event lwp as not stopped
before resuming sibling lwps. Instead ask
linux_nat_resume_callback to skip the event lwp. Mark it as not
stopped after actually resuming it.
(linux_handle_syscall_trap): Mark the lwp as not stopped after
resuming it.
(wait_lwp): Mark the lwp as stopped here.
(stop_wait_callback): Mark the lwp as not stopped right after
resuming it. Don't mark lwps as stopped here.
(linux_nat_filter_event): Mark the lwp as stopped earlier.
(linux_nat_wait_1): Don't mark dead lwps as stopped here.
2014-05-29 11:50:48 +00:00
|
|
|
|
2014-05-29 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR gdb/15713
|
|
|
|
|
* linux-nat.c (linux_nat_resume_callback): Rename the second
|
|
|
|
|
parameter to 'except'. Skip LP if it points to EXCEPT.
|
|
|
|
|
(linux_nat_resume): Don't mark the event lwp as not stopped
|
|
|
|
|
before resuming sibling lwps. Instead ask
|
|
|
|
|
linux_nat_resume_callback to skip the event lwp. Mark it as not
|
|
|
|
|
stopped after actually resuming it.
|
|
|
|
|
(linux_handle_syscall_trap): Mark the lwp as not stopped after
|
|
|
|
|
resuming it.
|
|
|
|
|
(wait_lwp): Mark the lwp as stopped here.
|
|
|
|
|
(stop_wait_callback): Mark the lwp as not stopped right after
|
|
|
|
|
resuming it. Don't mark lwps as stopped here.
|
|
|
|
|
(linux_nat_filter_event): Mark the lwp as stopped earlier.
|
|
|
|
|
(linux_nat_wait_1): Don't mark dead lwps as stopped here.
|
|
|
|
|
|
PR15693 - Fix spurious *running events, thread state, dprintf-style call
If one sets a breakpoint with a condition that involves calling a
function in the inferior, and then the condition evaluates false, GDB
outputs one *running event for each time the program hits the
breakpoint. E.g.,
$ gdb return-false -i=mi
(gdb)
start
...
(gdb)
b 14 if return_false ()
&"b 14 if return_false ()\n"
~"Breakpoint 2 at 0x4004eb: file return-false.c, line 14.\n"
...
^done
(gdb)
c
&"c\n"
~"Continuing.\n"
^running
*running,thread-id=(...)
(gdb)
*running,thread-id=(...)
*running,thread-id=(...)
*running,thread-id=(...)
*running,thread-id=(...)
*running,thread-id=(...)
... repeat forever ...
An easy way a user can trip on this is with a dprintf with "set
dprintf-style call". In that case, a dprintf is just a breakpoint
that when hit GDB calls the printf function in the inferior, and then
resumes it, just like the case above.
If the breakpoint/dprintf is set in a loop, then these spurious events
can potentially slow down a frontend much, if it decides to refresh
its GUI whenever it sees this event (Eclipse is one such case).
When we run an infcall, we pretend we don't actually run the inferior.
This is already handled for the usual case of calling a function
directly from the CLI:
(gdb)
p return_false ()
&"p return_false ()\n"
~"$1 = 0"
~"\n"
^done
(gdb)
Note no *running, nor *stopped events. That's handled by:
static void
mi_on_resume (ptid_t ptid)
{
...
/* Suppress output while calling an inferior function. */
if (tp->control.in_infcall)
return;
and equivalent code on normal_stop.
However, in the cases of the PR, after finishing the infcall there's
one more resume, and mi_on_resume doesn't know that it should suppress
output then too, somehow.
The "running/stopped" state is a high level user/frontend state.
Internal stops are invisible to the frontend. If follows from that
that we should be setting the thread to running at a higher level
where we still know the set of threads the user _intends_ to resume.
Currently we mark a thread as running from within target_resume, a low
level target operation. As consequence, today, if we resume a
multi-threaded program while stopped at a breakpoint, we see this:
-exec-continue
^running
*running,thread-id="1"
(gdb)
*running,thread-id="all"
The first *running was GDB stepping over the breakpoint, and the
second is GDB finally resuming everything.
Between those two *running's, threads other than "1" still have their
state set to stopped. That's bogus -- in async mode, this opens a
tiny window between both resumes where the user might try to run
another execution command to threads other than thread 1, and very
much confuse GDB.
That is, the "step" below should fail the "step", complaining that the
thread is running:
(gdb) c -a &
(gdb) thread 2
(gdb) step
IOW, threads that GDB happens to not resume immediately (say, because
it needs to step over a breakpoint) shall still be marked as running.
Then, if we move marking threads as running to a higher layer,
decoupled from target_resume, plus skip marking threads as running
when running an infcall, the spurious *running events disappear,
because there will be no state transitions at all.
I think we might end up adding a new thread state -- THREAD_INFCALL or
some such, however since infcalls are always synchronous today, I
didn't find a need. There's no way to execute a CLI/MI command
directly from the prompt if some thread is running an infcall.
Tested on x86_64 Fedora 20.
gdb/
2014-05-29 Pedro Alves <palves@redhat.com>
PR PR15693
* infrun.c (resume): Determine how much to resume depending on
whether the caller wanted a step, not whether we can hardware step
the target. Mark all threads that we intend to run as running,
unless we're calling an inferior function.
(normal_stop): If the thread is running an infcall, don't finish
thread state.
* target.c (target_resume): Don't mark threads as running here.
gdb/testsuite/
2014-05-29 Pedro Alves <palves@redhat.com>
Hui Zhu <hui@codesourcery.com>
PR PR15693
* gdb.mi/mi-condbreak-call-thr-state-mt.c: New file.
* gdb.mi/mi-condbreak-call-thr-state-st.c: New file.
* gdb.mi/mi-condbreak-call-thr-state.c: New file.
* gdb.mi/mi-condbreak-call-thr-state.exp: New file.
2014-05-29 11:27:01 +00:00
|
|
|
|
2014-05-29 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR PR15693
|
|
|
|
|
* infrun.c (resume): Determine how much to resume depending on
|
|
|
|
|
whether the caller wanted a step, not whether we can hardware step
|
|
|
|
|
the target. Mark all threads that we intend to run as running,
|
|
|
|
|
unless we're calling an inferior function.
|
|
|
|
|
(normal_stop): If the thread is running an infcall, don't finish
|
|
|
|
|
thread state.
|
|
|
|
|
* target.c (target_resume): Don't mark threads as running here.
|
|
|
|
|
|
2014-05-19 18:46:19 +00:00
|
|
|
|
2014-05-28 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* serial.c (_initialize_serial): Remove support for
|
|
|
|
|
the "set remotebaud" and "show remotebaud" commands.
|
|
|
|
|
* NEWS: Add entry documenting the removal of that command.
|
|
|
|
|
|
2014-05-27 12:00:37 +00:00
|
|
|
|
2014-05-28 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* charset.c: Fix typo in comments.
|
|
|
|
|
|
2014-05-27 14:30:58 +00:00
|
|
|
|
2014-05-27 Gary Benson <gbenson@redhat.com>
|
|
|
|
|
|
|
|
|
|
* utils.c (internal_vproblem): Prompt for a bug report.
|
|
|
|
|
|
2014-05-27 01:11:58 +00:00
|
|
|
|
2014-05-26 Andy Wingo <wingo@igalia.com>
|
|
|
|
|
|
|
|
|
|
* guile/scm-arch.c (arscm_mark_arch_smob):
|
|
|
|
|
* guile/scm-block.c (bkscm_mark_block_smob)
|
|
|
|
|
(bkscm_mark_block_syms_progress_smob):
|
|
|
|
|
* guile/scm-breakpoint.c (bpscm_mark_breakpoint_smob):
|
|
|
|
|
* guile/scm-exception.c (exscm_mark_exception_smob):
|
|
|
|
|
* guile/scm-frame.c (frscm_mark_frame_smob):
|
|
|
|
|
* guile/scm-iterator.c (itscm_mark_iterator_smob):
|
|
|
|
|
* guile/scm-lazy-string.c (lsscm_mark_lazy_string_smob):
|
|
|
|
|
* guile/scm-objfile.c (ofscm_mark_objfile_smob):
|
|
|
|
|
* guile/scm-pretty-print.c (ppscm_mark_pretty_printer_smob)
|
|
|
|
|
(ppscm_mark_pretty_printer_worker_smob):
|
|
|
|
|
* guile/scm-symbol.c (syscm_mark_symbol_smob):
|
|
|
|
|
* guile/scm-symtab.c (stscm_mark_symtab_smob, stscm_mark_sal_smob):
|
|
|
|
|
* guile/scm-type.c (tyscm_mark_type_smob, tyscm_mark_field_smob):
|
|
|
|
|
* guile/scm-value.c (vlscm_mark_value_smob): Remove unnecessary
|
|
|
|
|
mark functions.
|
|
|
|
|
* guile/scm-symtab.c (stscm_free_sal_smob): Remove unnecessary free
|
|
|
|
|
function.
|
|
|
|
|
|
2014-05-27 00:34:27 +00:00
|
|
|
|
2014-05-26 Andy Wingo <wingo@igalia.com>
|
|
|
|
|
Doug Evans <xdje42@gmail.com>
|
|
|
|
|
|
|
|
|
|
* guile/guile-internal.h (GDB_SMOB_HEAD): Replace properties with
|
|
|
|
|
empty_base_class. All uses updated.
|
|
|
|
|
(gdbscm_mark_gsmob, gdbscm_mark_chained_gsmob)
|
|
|
|
|
(gdbscm_mark_eqable_gsmob): Remove these now-unneeded functions.
|
|
|
|
|
Adapt all callers.
|
|
|
|
|
* guile/scm-gsmob.c (gdbscm_mark_gsmob)
|
|
|
|
|
(gdbscm_mark_chained_gsmob, gdbscm_mark_eqable_gsmob): Remove.
|
|
|
|
|
(gdbscm_gsmob_property, gdbscm_set_gsmob_property_x)
|
|
|
|
|
(gdbscm_gsmob_has_property_p, add_property_name)
|
|
|
|
|
(gdbscm_gsmob_properties): Remove, and remove them from gsmob_functions.
|
|
|
|
|
* guile/lib/gdb.scm (gdb-object-property, set-gdb-object-property)
|
|
|
|
|
(gdb-object-has-property?, gdb-object-properties): Remove.
|
|
|
|
|
(gdb-object-kind): Renamed from gsmob-kind.
|
|
|
|
|
|
2014-05-26 19:45:13 +00:00
|
|
|
|
2014-05-26 Andy Wingo <wingo@igalia.com>
|
|
|
|
|
|
|
|
|
|
* configure.ac (try_guile_versions): Allow building with guile 2.2.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2014-04-02 07:54:11 +00:00
|
|
|
|
2014-05-23 Markus Metzger <markus.t.metzger@intel.com>
|
|
|
|
|
|
|
|
|
|
* symfile-mem.c (symbol_file_add_from_memory): Add BFD sections.
|
|
|
|
|
|
2014-03-05 14:38:11 +00:00
|
|
|
|
2014-05-23 Markus Metzger <markus.t.metzger@intel.com>
|
|
|
|
|
|
|
|
|
|
* record-btrace.c (record_btrace_allow_memory_access): Remove.
|
|
|
|
|
(replay_memory_access_read_only, replay_memory_access_read_write)
|
|
|
|
|
(replay_memory_access_types, replay_memory_access)
|
|
|
|
|
(set_record_btrace_cmdlist, show_record_btrace_cmdlist)
|
|
|
|
|
(cmd_set_record_btrace, cmd_show_record_btrace)
|
|
|
|
|
(cmd_show_replay_memory_access): New.
|
|
|
|
|
(record_btrace_xfer_partial, record_btrace_insert_breakpoint)
|
|
|
|
|
(record_btrace_remove_breakpoint): Replace
|
|
|
|
|
record_btrace_allow_memory_access with replay_memory_access.
|
|
|
|
|
(_initialize_record_btrace): Add commands.
|
|
|
|
|
* NEWS: Announce it.
|
|
|
|
|
|
2014-05-22 15:07:20 +00:00
|
|
|
|
2014-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
|
|
|
|
|
|
|
|
|
|
* aarch64-linux-nat.c (asm/ptrace.h): Include.
|
|
|
|
|
|
2014-05-22 15:06:33 +00:00
|
|
|
|
2014-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
|
|
|
|
|
|
|
|
|
|
* MAINTAINERS (Write After Approval): Move self back from
|
|
|
|
|
paper trail.
|
|
|
|
|
|
Add new infrun.h header.
Move infrun.c declarations out of inferior.h to a new infrun.h file.
Tested by building on:
i686-w64-mingw32, enable-targets=all
x86_64-linux, enable-targets=all
i586-pc-msdosdjgpp
And also grepped the whole tree for each symbol moved to find where
infrun.h might be necessary.
gdb/
2014-05-22 Pedro Alves <palves@redhat.com>
* inferior.h (debug_infrun, debug_displaced, stop_on_solib_events)
(sync_execution, sched_multi, step_stop_if_no_debug, non_stop)
(disable_randomization, enum exec_direction_kind)
(execution_direction, stop_registers, start_remote)
(clear_proceed_status, proceed, resume, user_visible_resume_ptid)
(wait_for_inferior, normal_stop, get_last_target_status)
(prepare_for_detach, fetch_inferior_event, init_wait_for_inferior)
(insert_step_resume_breakpoint_at_sal)
(follow_inferior_reset_breakpoints, stepping_past_instruction_at)
(set_step_info, print_stop_event, signal_stop_state)
(signal_print_state, signal_pass_state, signal_stop_update)
(signal_print_update, signal_pass_update)
(update_signals_program_target, clear_exit_convenience_vars)
(displaced_step_dump_bytes, update_observer_mode)
(signal_catch_update, gdb_signal_from_command): Move
declarations ...
* infrun.h: ... to this new file.
* amd64-tdep.c: Include infrun.h.
* annotate.c: Include infrun.h.
* arch-utils.c: Include infrun.h.
* arm-linux-tdep.c: Include infrun.h.
* arm-tdep.c: Include infrun.h.
* break-catch-sig.c: Include infrun.h.
* breakpoint.c: Include infrun.h.
* common/agent.c: Include infrun.h instead of inferior.h.
* corelow.c: Include infrun.h.
* event-top.c: Include infrun.h.
* go32-nat.c: Include infrun.h.
* i386-tdep.c: Include infrun.h.
* inf-loop.c: Include infrun.h.
* infcall.c: Include infrun.h.
* infcmd.c: Include infrun.h.
* infrun.c: Include infrun.h.
* linux-fork.c: Include infrun.h.
* linux-nat.c: Include infrun.h.
* linux-thread-db.c: Include infrun.h.
* monitor.c: Include infrun.h.
* nto-tdep.c: Include infrun.h.
* procfs.c: Include infrun.h.
* record-btrace.c: Include infrun.h.
* record-full.c: Include infrun.h.
* remote-m32r-sdi.c: Include infrun.h.
* remote-mips.c: Include infrun.h.
* remote-notif.c: Include infrun.h.
* remote-sim.c: Include infrun.h.
* remote.c: Include infrun.h.
* reverse.c: Include infrun.h.
* rs6000-tdep.c: Include infrun.h.
* s390-linux-tdep.c: Include infrun.h.
* solib-irix.c: Include infrun.h.
* solib-osf.c: Include infrun.h.
* solib-svr4.c: Include infrun.h.
* target.c: Include infrun.h.
* top.c: Include infrun.h.
* windows-nat.c: Include infrun.h.
* mi/mi-interp.c: Include infrun.h.
* mi/mi-main.c: Include infrun.h.
* python/py-threadevent.c: Include infrun.h.
2014-05-22 11:29:11 +00:00
|
|
|
|
2014-05-22 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* inferior.h (debug_infrun, debug_displaced, stop_on_solib_events)
|
|
|
|
|
(sync_execution, sched_multi, step_stop_if_no_debug, non_stop)
|
|
|
|
|
(disable_randomization, enum exec_direction_kind)
|
|
|
|
|
(execution_direction, stop_registers, start_remote)
|
|
|
|
|
(clear_proceed_status, proceed, resume, user_visible_resume_ptid)
|
|
|
|
|
(wait_for_inferior, normal_stop, get_last_target_status)
|
|
|
|
|
(prepare_for_detach, fetch_inferior_event, init_wait_for_inferior)
|
|
|
|
|
(insert_step_resume_breakpoint_at_sal)
|
|
|
|
|
(follow_inferior_reset_breakpoints, stepping_past_instruction_at)
|
|
|
|
|
(set_step_info, print_stop_event, signal_stop_state)
|
|
|
|
|
(signal_print_state, signal_pass_state, signal_stop_update)
|
|
|
|
|
(signal_print_update, signal_pass_update)
|
|
|
|
|
(update_signals_program_target, clear_exit_convenience_vars)
|
|
|
|
|
(displaced_step_dump_bytes, update_observer_mode)
|
|
|
|
|
(signal_catch_update, gdb_signal_from_command): Move
|
|
|
|
|
declarations ...
|
|
|
|
|
* infrun.h: ... to this new file.
|
|
|
|
|
* amd64-tdep.c: Include infrun.h.
|
|
|
|
|
* annotate.c: Include infrun.h.
|
|
|
|
|
* arch-utils.c: Include infrun.h.
|
|
|
|
|
* arm-linux-tdep.c: Include infrun.h.
|
|
|
|
|
* arm-tdep.c: Include infrun.h.
|
|
|
|
|
* break-catch-sig.c: Include infrun.h.
|
|
|
|
|
* breakpoint.c: Include infrun.h.
|
|
|
|
|
* common/agent.c: Include infrun.h instead of inferior.h.
|
|
|
|
|
* corelow.c: Include infrun.h.
|
|
|
|
|
* event-top.c: Include infrun.h.
|
|
|
|
|
* go32-nat.c: Include infrun.h.
|
|
|
|
|
* i386-tdep.c: Include infrun.h.
|
|
|
|
|
* inf-loop.c: Include infrun.h.
|
|
|
|
|
* infcall.c: Include infrun.h.
|
|
|
|
|
* infcmd.c: Include infrun.h.
|
|
|
|
|
* infrun.c: Include infrun.h.
|
|
|
|
|
* linux-fork.c: Include infrun.h.
|
|
|
|
|
* linux-nat.c: Include infrun.h.
|
|
|
|
|
* linux-thread-db.c: Include infrun.h.
|
|
|
|
|
* monitor.c: Include infrun.h.
|
|
|
|
|
* nto-tdep.c: Include infrun.h.
|
|
|
|
|
* procfs.c: Include infrun.h.
|
|
|
|
|
* record-btrace.c: Include infrun.h.
|
|
|
|
|
* record-full.c: Include infrun.h.
|
|
|
|
|
* remote-m32r-sdi.c: Include infrun.h.
|
|
|
|
|
* remote-mips.c: Include infrun.h.
|
|
|
|
|
* remote-notif.c: Include infrun.h.
|
|
|
|
|
* remote-sim.c: Include infrun.h.
|
|
|
|
|
* remote.c: Include infrun.h.
|
|
|
|
|
* reverse.c: Include infrun.h.
|
|
|
|
|
* rs6000-tdep.c: Include infrun.h.
|
|
|
|
|
* s390-linux-tdep.c: Include infrun.h.
|
|
|
|
|
* solib-irix.c: Include infrun.h.
|
|
|
|
|
* solib-osf.c: Include infrun.h.
|
|
|
|
|
* solib-svr4.c: Include infrun.h.
|
|
|
|
|
* target.c: Include infrun.h.
|
|
|
|
|
* top.c: Include infrun.h.
|
|
|
|
|
* windows-nat.c: Include infrun.h.
|
|
|
|
|
* mi/mi-interp.c: Include infrun.h.
|
|
|
|
|
* mi/mi-main.c: Include infrun.h.
|
|
|
|
|
* python/py-threadevent.c: Include infrun.h.
|
|
|
|
|
|
2014-03-27 13:13:59 +00:00
|
|
|
|
2014-05-22 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* infrun.c (handle_inferior_event): Store the exit code for
|
|
|
|
|
--return-child-result here, instead of ...
|
|
|
|
|
(print_exited_reason): ... here.
|
|
|
|
|
|
PR gdb/13860: don't lose '-interpreter-exec console EXECUTION_COMMAND''s output in async mode.
The other part of PR gdb/13860 is about console execution commands in
MI getting their output half lost. E.g., take the finish command,
executed on a frontend's GDB console:
sync:
finish
&"finish\n"
~"Run till exit from #0 usleep (useconds=10) at ../sysdeps/unix/sysv/linux/usleep.c:27\n"
^running
*running,thread-id="1"
(gdb)
~"0x00000000004004d7 in foo () at stepinf.c:6\n"
~"6\t usleep (10);\n"
~"Value returned is $1 = 0\n"
*stopped,reason="function-finished",frame={addr="0x00000000004004d7",func="foo",args=[],file="stepinf.c",fullname="/home/pedro/gdb/tests/stepinf.c",line="6"},thread-id="1",stopped-threads="all",core="1"
async:
finish
&"finish\n"
~"Run till exit from #0 usleep (useconds=10) at ../sysdeps/unix/sysv/linux/usleep.c:27\n"
^running
*running,thread-id="1"
(gdb)
*stopped,reason="function-finished",frame={addr="0x00000000004004d7",func="foo",args=[],file="stepinf.c",fullname="/home/pedro/gdb/tests/stepinf.c",line="6"},gdb-result-var="$1",return-value="0",thread-id="1",stopped-threads="all",core="0"
Note how all the "Value returned" etc. output is missing in async mode.
The same happens with e.g., catchpoints:
=breakpoint-modified,bkpt={number="1",type="catchpoint",disp="keep",enabled="y",what="22016",times="1"}
~"\nCatchpoint "
~"1 (forked process 22016), 0x0000003791cbd8a6 in __libc_fork () at ../nptl/sysdeps/unix/sysv/linux/fork.c:131\n"
~"131\t pid = ARCH_FORK ();\n"
*stopped,reason="fork",disp="keep",bkptno="1",newpid="22016",frame={addr="0x0000003791cbd8a6",func="__libc_fork",args=[],file="../nptl/sysdeps/unix/sysv/linux/fork.c",fullname="/usr/src/debug/glibc-2.14-394-g8f3b1ff/nptl/sysdeps/unix/sysv/linux/fork.c",line="131"},thread-id="1",stopped-threads="all",core="0"
where all those ~ lines are missing in async mode, or just the "step"
current line indication:
s
&"s\n"
^running
*running,thread-id="all"
(gdb)
~"13\t foo ();\n"
*stopped,frame={addr="0x00000000004004ef",func="main",args=[{name="argc",value="1"},{name="argv",value="0x7fffffffdd78"}],file="stepinf.c",fullname="/home/pedro/gdb/tests/stepinf.c",line="13"},thread-id="1",stopped-threads="all",core="3"
(gdb)
Or in the case of the PRs example, the "Stopped due to shared library
event" note:
start
&"start\n"
~"Temporary breakpoint 1 at 0x400608: file ../../../src/gdb/testsuite/gdb.mi/solib-main.c, line 21.\n"
=breakpoint-created,bkpt={number="1",type="breakpoint",disp="del",enabled="y",addr="0x0000000000400608",func="main",file="../../../src/gdb/testsuite/gdb.mi/solib-main.c",fullname="/home/pedro/gdb/mygit/src/gdb/testsuite/gdb.mi/solib-main.c",line="21",times="0",original-location="main"}
~"Starting program: /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/solib-main \n"
=thread-group-started,id="i1",pid="21990"
=thread-created,id="1",group-id="i1"
^running
*running,thread-id="all"
(gdb)
=library-loaded,id="/lib64/ld-linux-x86-64.so.2",target-name="/lib64/ld-linux-x86-64.so.2",host-name="/lib64/ld-linux-x86-64.so.2",symbols-loaded="0",thread-group="i1"
~"Stopped due to shared library event (no libraries added or removed)\n"
*stopped,reason="solib-event",thread-id="1",stopped-threads="all",core="3"
(gdb)
IMO, if you're typing execution commands in a frontend's console, you
expect to see their output. Indeed it's what you get in sync mode. I
think async mode should do the same. Deciding what to mirror to the
console wrt to breakpoints and random stops gets messy real fast.
E.g., say "s" trips on a breakpoint. We'd clearly want to mirror the
event to the console in this case. But what about more complicated
cases like "s&; thread n; s&", and one of those steps spawning a new
thread, and that thread hitting a breakpoint? It's impossible in
general to track whether the thread had any relation to the commands
that had been executed. So I think we should just simplify and always
mirror breakpoints and random events to the console.
Notes:
- mi->out is the same as gdb_stdout when MI is the current
interpreter. I think that referring to that directly is cleaner.
An earlier revision of this patch made the changes that are now
done in mi_on_normal_stop directly in infrun.c:normal_stop, and so
not having an obvious place to put the new uiout by then, and not
wanting to abuse CLI's uiout, I made a temporary uiout when
necessary.
- Hopefuly the rest of the patch is more or less obvious given the
comments added.
Tested on x86_64 Fedora 20, no regressions.
2014-05-21 Pedro Alves <palves@redhat.com>
PR gdb/13860
* gdbthread.h (struct thread_control_state): New field
`command_interp'.
* infrun.c (follow_fork): Copy the new thread control field to the
child fork thread.
(clear_proceed_status_thread): Clear the new thread control field.
(proceed): Set the new thread control field.
* interps.h (command_interp): Declare.
* interps.c (command_interpreter): New global.
(command_interp): New function.
(interp_exec): Set `command_interpreter' while here.
* cli-out.c (cli_uiout_dtor): New function.
(cli_ui_out_impl): Install it.
* mi/mi-interp.c: Include cli-out.h.
(mi_cmd_interpreter_exec): Add comment.
(restore_current_uiout_cleanup): New function.
(ui_out_free_cleanup): New function.
(mi_on_normal_stop): If finishing an execution command started by
a CLI command, or any kind of breakpoint-like event triggered,
print the stop event to the output (CLI) stream.
* mi/mi-out.c (mi_ui_out_impl): Install NULL `dtor' handler.
2014-05-21 Pedro Alves <palves@redhat.com>
PR gdb/13860
* gdb.mi/mi-cli.exp (line_callee4_next_step): New global.
(top level): Test that output related to execution commands is
sent to the console with CLI commands, but not with MI commands.
Test that breakpoint events are always mirrored to the console.
Also expect the new source line to be output after a "next" in
async mode too. Make it a pass/fail test.
* gdb.mi/mi-solib.exp: Test that the CLI solib event note is
output.
* lib/mi-support.exp (mi_gdb_expect_cli_output): New procedure.
2014-03-11 20:31:36 +00:00
|
|
|
|
2014-05-21 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR gdb/13860
|
|
|
|
|
* gdbthread.h (struct thread_control_state): New field
|
|
|
|
|
`command_interp'.
|
|
|
|
|
* infrun.c (follow_fork): Copy the new thread control field to the
|
|
|
|
|
child fork thread.
|
|
|
|
|
(clear_proceed_status_thread): Clear the new thread control field.
|
|
|
|
|
(proceed): Set the new thread control field.
|
|
|
|
|
* interps.h (command_interp): Declare.
|
|
|
|
|
* interps.c (command_interpreter): New global.
|
|
|
|
|
(command_interp): New function.
|
|
|
|
|
(interp_exec): Set `command_interpreter' while here.
|
|
|
|
|
* cli-out.c (cli_uiout_dtor): New function.
|
|
|
|
|
(cli_ui_out_impl): Install it.
|
|
|
|
|
* mi/mi-interp.c: Include cli-out.h.
|
|
|
|
|
(mi_cmd_interpreter_exec): Add comment.
|
|
|
|
|
(restore_current_uiout_cleanup): New function.
|
|
|
|
|
(ui_out_free_cleanup): New function.
|
|
|
|
|
(mi_on_normal_stop): If finishing an execution command started by
|
|
|
|
|
a CLI command, or any kind of breakpoint-like event triggered,
|
|
|
|
|
print the stop event to the output (CLI) stream.
|
|
|
|
|
* mi/mi-out.c (mi_ui_out_impl): Install NULL `dtor' handler.
|
|
|
|
|
|
PR gdb/13860: make -interpreter-exec console "list" behave more like "list".
I noticed that "list" behaves differently in CLI vs MI. Particularly:
$ ./gdb -nx -q ./testsuite/gdb.mi/mi-cli
Reading symbols from /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/mi-cli...done.
(gdb) start
Temporary breakpoint 1 at 0x40054d: file ../../../src/gdb/testsuite/gdb.mi/basics.c, line 62.
Starting program: /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/mi-cli
Temporary breakpoint 1, main () at ../../../src/gdb/testsuite/gdb.mi/basics.c:62
62 callee1 (2, "A string argument.", 3.5);
(gdb) list
57 {
58 }
59
60 main ()
61 {
62 callee1 (2, "A string argument.", 3.5);
63 callee1 (2, "A string argument.", 3.5);
64
65 do_nothing (); /* Hello, World! */
66
(gdb)
Note the list started at line 57. IOW, the program stopped at line
62, and GDB centered the list on that.
compare with:
$ ./gdb -nx -q ./testsuite/gdb.mi/mi-cli -i=mi
=thread-group-added,id="i1"
~"Reading symbols from /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/mi-cli..."
~"done.\n"
(gdb)
start
&"start\n"
...
~"\nTemporary breakpoint "
~"1, main () at ../../../src/gdb/testsuite/gdb.mi/basics.c:62\n"
~"62\t callee1 (2, \"A string argument.\", 3.5);\n"
*stopped,reason="breakpoint-hit",disp="del",bkptno="1",frame={addr="0x000000000040054d",func="main",args=[],file="../../../src/gdb/testsuite/gdb.mi/basics.c",fullname="/home/pedro/gdb/mygit/src/gdb/testsuite/gdb.mi/basics.c",line="62"},thread-id="1",stopped-threads="all",core="0"
=breakpoint-deleted,id="1"
(gdb)
-interpreter-exec console list
~"62\t callee1 (2, \"A string argument.\", 3.5);\n"
~"63\t callee1 (2, \"A string argument.\", 3.5);\n"
~"64\t\n"
~"65\t do_nothing (); /* Hello, World! */\n"
~"66\t\n"
~"67\t callme (1);\n"
~"68\t callme (2);\n"
~"69\t\n"
~"70\t return 0;\n"
~"71\t}\n"
^done
(gdb)
Here the list starts at line 62, where the program was stopped.
This happens because print_stack_frame, called from both normal_stop
and mi_on_normal_stop, is the function responsible for setting the
current sal from the selected frame, overrides the PRINT_WHAT
argument, and only after that does it decide whether to center the
current sal line or not, based on the overridden value, and it will
always decide false.
(The print_stack_frame call in mi_on_normal_stop is a little different
from the call in normal_stop, in that it is an unconditional
SRC_AND_LOC call. A future patch will make those uniform.)
A previous version of this patch made MI uniform with CLI here, by
making print_stack_frame also center when MI is active. That changed
the output of a "list" command in mi-cli.exp, to expect line 57
instead of 62, as per the example above.
However, looking deeper, that list in question is the first "list"
after the program stops, and right after the stop, before the "list",
the test did "set listsize 1". Let's try the same thing with the CLI:
(gdb) start
62 callee1 (2, "A string argument.", 3.5);
(gdb) set listsize 1
(gdb) list
57 {
Huh, that's unexpected. Why the 57? It's because print_stack_frame,
called in reaction to the breakpoint stop, expecting the next "list"
to show 10 lines (the listsize at the time) around line 62, sets the
lines listed range to 57-67 (62 +/- 5). If the user changes the
listsize before "list", why would we still show that range? Looks
bogus to me.
So the fix for this whole issue should be delay trying to center the
listing to until actually listing, so that the correct listsize can be
taken into account. This makes MI and CLI uniform too, as it deletes
the center code from print_stack_frame.
A series of tests are added to list.exp to cover this. mi-cli.exp was
after all correct all along, but it now gains an additional test that
lists lines with listsize 10, to ensure the centering is consistent
with CLI's.
One related Python test changed related output -- it's a test that
prints the line number after stopping for a breakpoint, similar to the
new list.exp tests. Previously we'd print the stop line minus 5 (due
to the premature centering), now we print the stop line. I think
that's a good change.
Tested on x86_64 Fedora 20.
gdb/
2014-05-21 Pedro Alves <palves@redhat.com>
* cli/cli-cmds.c (list_command): Handle the first "list" after the
current source line having changed.
* frame.h (set_current_sal_from_frame): Remove 'center' parameter.
* infrun.c (normal_stop): Adjust call to
set_current_sal_from_frame.
* source.c (clear_lines_listed_range): New function.
(set_current_source_symtab_and_line, identify_source_line): Clear
the lines listed range.
(line_info): Handle the first "info line" after the current source
line having changed.
* stack.c (print_stack_frame): Remove center handling.
(set_current_sal_from_frame): Remove 'center' parameter. Don't
center sal.line.
gdb/testsuite/
2014-05-21 Pedro Alves <palves@redhat.com>
* gdb.base/list.exp (build_pattern, test_list): New procedures.
Use them to test variations of "list" after reaching a breakpoint.
* gdb.mi/mi-cli.exp (line_main_callme_2): New global.
Test "list" with listsize 10 after reaching a breakpoint.
* gdb.python/python.exp (decode_line current location line
number): Adjust expected line number.
2014-05-21 22:15:27 +00:00
|
|
|
|
2014-05-21 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* cli/cli-cmds.c (list_command): Handle the first "list" after the
|
|
|
|
|
current source line having changed.
|
|
|
|
|
* frame.h (set_current_sal_from_frame): Remove 'center' parameter.
|
|
|
|
|
* infrun.c (normal_stop): Adjust call to
|
|
|
|
|
set_current_sal_from_frame.
|
|
|
|
|
* source.c (clear_lines_listed_range): New function.
|
|
|
|
|
(set_current_source_symtab_and_line, identify_source_line): Clear
|
|
|
|
|
the lines listed range.
|
|
|
|
|
(line_info): Handle the first "info line" after the current source
|
|
|
|
|
line having changed.
|
|
|
|
|
* stack.c (print_stack_frame): Remove center handling.
|
|
|
|
|
(set_current_sal_from_frame): Remove 'center' parameter. Don't
|
|
|
|
|
center sal.line.
|
|
|
|
|
|
2014-05-21 21:28:23 +00:00
|
|
|
|
2014-05-21 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* inf-child.c (inf_child_mourn_inferior): New function.
|
|
|
|
|
* inf-child.h (inf_child_mourn_inferior): New declaration.
|
|
|
|
|
* darwin-nat.c (darwin_mourn_inferior): Use
|
|
|
|
|
inf_child_mourn_inferior.
|
|
|
|
|
* gnu-nat.c (gnu_mourn_inferior): Likewise.
|
|
|
|
|
* inf-ptrace.c (inf_ptrace_mourn_inferior): Likewise.
|
|
|
|
|
* inf-ttrace.c (inf_ttrace_mourn_inferior): Likewise.
|
|
|
|
|
* nto-procfs.c (procfs_mourn_inferior): Likewise.
|
|
|
|
|
* windows-nat.c (windows_mourn_inferior): Likewise.
|
|
|
|
|
|
2014-05-21 19:04:45 +00:00
|
|
|
|
2014-05-21 Doug Evans <xdje42@gmail.com>
|
|
|
|
|
|
2014-05-21 22:00:31 +00:00
|
|
|
|
* guile/scm-breakpoint.c (breakpoint_functions): Fix typo.
|
2014-05-21 19:04:45 +00:00
|
|
|
|
|
2014-05-21 18:52:51 +00:00
|
|
|
|
2014-05-21 Doug Evans <xdje42@gmail.com>
|
|
|
|
|
|
2014-05-26 19:32:09 +00:00
|
|
|
|
* guile/scm-exception.c (gdbscm_invalid_object_error): Make result void.
|
2014-05-21 18:52:51 +00:00
|
|
|
|
(gdbscm_out_of_range_error): Ditto.
|
|
|
|
|
(gdbscm_memory_error): Ditto.
|
2014-05-21 22:00:31 +00:00
|
|
|
|
* guile/scm-string.c (gdbscm_scm_to_target_string_unsafe): Delete.
|
|
|
|
|
* guile/guile-internal.h (gdbscm_invalid_object_error): Update.
|
2014-05-21 18:52:51 +00:00
|
|
|
|
(gdbscm_out_of_range_error): Update.
|
|
|
|
|
(gdbscm_memory_error): Update.
|
|
|
|
|
(gdbscm_scm_to_target_string_unsafe): Delete.
|
|
|
|
|
|
Allow making GDB not automatically connect to the native target.
Sometimes it's useful to be able to disable the automatic connection
to the native target. E.g., sometimes GDB disconnects from the
extended-remote target I was debugging, without me noticing it, and
then I do "run". That starts the program locally, and only after a
little head scratch session do I figure out the program is running
locally instead of remotely as intended. Same thing with "attach",
"info os", etc.
With the patch, we now can have this instead:
(gdb) set auto-connect-native-target off
(gdb) target extended-remote :9999
...
*gdb disconnects*
(gdb) run
Don't know how to run. Try "help target".
To still be able to connect to the native target with
auto-connect-native-target set to off, I've made "target native" work
instead of erroring out as today.
Before:
(gdb) target native
Use the "run" command to start a native process.
After:
(gdb) target native
Done. Use the "run" command to start a process.
(gdb) maint print target-stack
The current target stack is:
- native (Native process)
- exec (Local exec file)
- None (None)
(gdb) run
Starting program: ./a.out
...
I've also wanted this for the testsuite, when running against the
native-extended-gdbserver.exp board (runs against gdbserver in
extended-remote mode). With a non-native-target board, it's always a
bug to launch a program with the native target. Turns out we still
have one such case this patch catches:
(gdb) break main
Breakpoint 1 at 0x4009e5: file ../../../src/gdb/testsuite/gdb.base/coremaker.c, line 138.
(gdb) run
Don't know how to run. Try "help target".
(gdb) FAIL: gdb.base/corefile.exp: run: with core
On the patch itself, probably the least obvious bit is the need to go
through all targets, and move the unpush_target call to after the
generic_mourn_inferior call instead of before. This is what
inf-ptrace.c does too, ever since multi-process support was added.
The reason inf-ptrace.c does things in that order is that in the
current multi-process/single-target model, we shouldn't unpush the
target if there are still other live inferiors being debugged. The
check for that is "have_inferiors ()" (a misnomer nowadays...), which
does:
have_inferiors (void)
{
for (inf = inferior_list; inf; inf = inf->next)
if (inf->pid != 0)
return 1;
It's generic_mourn_inferior that ends up clearing inf->pid, so we need
to call it before the have_inferiors check. To make all native
targets behave the same WRT to explicit "target native", I've added an
inf_child_maybe_unpush_target function that targets call instead of
calling unpush_target directly, and as that includes the
have_inferiors check, I needed to adjust the targets.
Tested on x86_64 Fedora 20, native, and also with the
extended-gdbserver board.
Confirmed a cross build of djgpp gdb still builds.
Smoke tested a cross build of Windows gdb under Wine.
Untested otherwise.
gdb/
2014-05-21 Pedro Alves <palves@redhat.com>
* inf-child.c (inf_child_ops, inf_child_explicitly_opened): New
globals.
(inf_child_open_target): New function.
(inf_child_open): Use inf_child_open_target to push the target
instead of erroring out.
(inf_child_disconnect, inf_child_close)
(inf_child_maybe_unpush_target): New functions.
(inf_child_target): Install inf_child_disconnect and
inf_child_close. Store a pointer to the returned object.
* inf-child.h (inf_child_open_target, inf_child_maybe_unpush): New
declarations.
* target.c (auto_connect_native_target): New global.
(show_default_run_target): New function.
(find_default_run_target): Return NULL if automatically connecting
to the native target is disabled.
(_initialize_target): Install set/show auto-connect-native-target.
* NEWS: Mention "set auto-connect-native-target", and "target
native".
* linux-nat.c (super_close): New global.
(linux_nat_close): Call super_close.
(linux_nat_add_target): Store a pointer to the base class's
to_close method.
* inf-ptrace.c (inf_ptrace_mourn_inferior, inf_ptrace_detach): Use
inf_child_maybe_unpush.
* inf-ttrace.c (inf_ttrace_him): Don't push the target if it is
already pushed.
(inf_ttrace_mourn_inferior): Only unpush the target after mourning
the inferior. Use inf_child_maybe_unpush_target.
(inf_ttrace_attach): Don't push the target if it is already
pushed.
(inf_ttrace_detach): Use inf_child_maybe_unpush_target.
* darwin-nat.c (darwin_mourn_inferior): Only unpush the target
after mourning the inferior. Use inf_child_maybe_unpush_target.
(darwin_attach_pid): Don't push the target if it is already
pushed.
* gnu-nat.c (gnu_mourn_inferior): Only unpush the target after
mourning the inferior. Use inf_child_maybe_unpush_target.
(gnu_detach): Use inf_child_maybe_unpush_target.
* go32-nat.c (go32_create_inferior): Don't push the target if it
is already pushed.
(go32_mourn_inferior): Use inf_child_maybe_unpush_target.
* nto-procfs.c (procfs_is_nto_target): Adjust comment.
(procfs_open): Rename to ...
(procfs_open_1): ... this. Add target_ops parameter. Adjust
comments. Can target_preopen before changing node. Call
inf_child_open_target to push the target explicitly.
(procfs_attach): Don't push the target if it is already pushed.
(procfs_detach): Use inf_child_maybe_unpush_target.
(procfs_create_inferior): Don't push the target if it is already
pushed.
(nto_native_ops): New global.
(procfs_open): Reimplement.
(procfs_native_open): New function.
(init_procfs_targets): Install procfs_native_open as to_open of
"target native". Store a pointer to the "native" target in
nto_native_ops.
* procfs.c (procfs_attach): Don't push the target if it is already
pushed.
(procfs_detach): Use inf_child_maybe_unpush_target.
(procfs_mourn_inferior): Only unpush the target after mourning the
inferior. Use inf_child_maybe_unpush_target.
(procfs_init_inferior): Don't push the target if it is already
pushed.
* windows-nat.c (do_initial_windows_stuff): Don't push the target
if it is already pushed.
(windows_detach): Use inf_child_maybe_unpush_target.
(windows_mourn_inferior): Only unpush the target after mourning
the inferior. Use inf_child_maybe_unpush_target.
gdb/doc/
2014-05-21 Pedro Alves <palves@redhat.com>
* gdb.texinfo (Starting): Document "set/show
auto-connect-native-target".
(Target Commands): Document "target native".
gdb/testsuite/
2014-05-21 Pedro Alves <palves@redhat.com>
* boards/gdbserver-base.exp (GDBFLAGS): Set to "set
auto-connect-native-target off".
* gdb.base/auto-connect-native-target.c: New file.
* gdb.base/auto-connect-native-target.exp: New file.
2014-05-21 17:30:47 +00:00
|
|
|
|
2014-05-21 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* inf-child.c (inf_child_ops, inf_child_explicitly_opened): New
|
|
|
|
|
globals.
|
|
|
|
|
(inf_child_open_target): New function.
|
|
|
|
|
(inf_child_open): Use inf_child_open_target to push the target
|
|
|
|
|
instead of erroring out.
|
|
|
|
|
(inf_child_disconnect, inf_child_close)
|
|
|
|
|
(inf_child_maybe_unpush_target): New functions.
|
|
|
|
|
(inf_child_target): Install inf_child_disconnect and
|
|
|
|
|
inf_child_close. Store a pointer to the returned object.
|
|
|
|
|
* inf-child.h (inf_child_open_target, inf_child_maybe_unpush): New
|
|
|
|
|
declarations.
|
|
|
|
|
* target.c (auto_connect_native_target): New global.
|
|
|
|
|
(show_default_run_target): New function.
|
|
|
|
|
(find_default_run_target): Return NULL if automatically connecting
|
|
|
|
|
to the native target is disabled.
|
|
|
|
|
(_initialize_target): Install set/show auto-connect-native-target.
|
|
|
|
|
* NEWS: Mention "set auto-connect-native-target", and "target
|
|
|
|
|
native".
|
|
|
|
|
* linux-nat.c (super_close): New global.
|
|
|
|
|
(linux_nat_close): Call super_close.
|
|
|
|
|
(linux_nat_add_target): Store a pointer to the base class's
|
|
|
|
|
to_close method.
|
|
|
|
|
* inf-ptrace.c (inf_ptrace_mourn_inferior, inf_ptrace_detach): Use
|
|
|
|
|
inf_child_maybe_unpush.
|
|
|
|
|
* inf-ttrace.c (inf_ttrace_him): Don't push the target if it is
|
|
|
|
|
already pushed.
|
|
|
|
|
(inf_ttrace_mourn_inferior): Only unpush the target after mourning
|
|
|
|
|
the inferior. Use inf_child_maybe_unpush_target.
|
|
|
|
|
(inf_ttrace_attach): Don't push the target if it is already
|
|
|
|
|
pushed.
|
|
|
|
|
(inf_ttrace_detach): Use inf_child_maybe_unpush_target.
|
|
|
|
|
* darwin-nat.c (darwin_mourn_inferior): Only unpush the target
|
|
|
|
|
after mourning the inferior. Use inf_child_maybe_unpush_target.
|
|
|
|
|
(darwin_attach_pid): Don't push the target if it is already
|
|
|
|
|
pushed.
|
|
|
|
|
* gnu-nat.c (gnu_mourn_inferior): Only unpush the target after
|
|
|
|
|
mourning the inferior. Use inf_child_maybe_unpush_target.
|
|
|
|
|
(gnu_detach): Use inf_child_maybe_unpush_target.
|
|
|
|
|
* go32-nat.c (go32_create_inferior): Don't push the target if it
|
|
|
|
|
is already pushed.
|
|
|
|
|
(go32_mourn_inferior): Use inf_child_maybe_unpush_target.
|
|
|
|
|
* nto-procfs.c (procfs_is_nto_target): Adjust comment.
|
|
|
|
|
(procfs_open): Rename to ...
|
|
|
|
|
(procfs_open_1): ... this. Add target_ops parameter. Adjust
|
|
|
|
|
comments. Can target_preopen before changing node. Call
|
|
|
|
|
inf_child_open_target to push the target explicitly.
|
|
|
|
|
(procfs_attach): Don't push the target if it is already pushed.
|
|
|
|
|
(procfs_detach): Use inf_child_maybe_unpush_target.
|
|
|
|
|
(procfs_create_inferior): Don't push the target if it is already
|
|
|
|
|
pushed.
|
|
|
|
|
(nto_native_ops): New global.
|
|
|
|
|
(procfs_open): Reimplement.
|
|
|
|
|
(procfs_native_open): New function.
|
|
|
|
|
(init_procfs_targets): Install procfs_native_open as to_open of
|
|
|
|
|
"target native". Store a pointer to the "native" target in
|
|
|
|
|
nto_native_ops.
|
|
|
|
|
* procfs.c (procfs_attach): Don't push the target if it is already
|
|
|
|
|
pushed.
|
|
|
|
|
(procfs_detach): Use inf_child_maybe_unpush_target.
|
|
|
|
|
(procfs_mourn_inferior): Only unpush the target after mourning the
|
|
|
|
|
inferior. Use inf_child_maybe_unpush_target.
|
|
|
|
|
(procfs_init_inferior): Don't push the target if it is already
|
|
|
|
|
pushed.
|
|
|
|
|
* windows-nat.c (do_initial_windows_stuff): Don't push the target
|
|
|
|
|
if it is already pushed.
|
|
|
|
|
|
2014-05-21 17:30:46 +00:00
|
|
|
|
2014-05-21 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* NEWS: Mention that the "child", "GNU, "djgpp", "darwin-child"
|
|
|
|
|
and "procfs" targets are now called "native" instead.
|
|
|
|
|
|
2014-05-21 17:30:46 +00:00
|
|
|
|
2014-05-21 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* go32-nat.c (go32_open): Delete.
|
|
|
|
|
(go32_target): Don't override the to_open method.
|
|
|
|
|
|
2014-05-21 17:30:45 +00:00
|
|
|
|
2014-05-21 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* nto-procfs.c (procfs_can_run): New function.
|
|
|
|
|
(nto_procfs_ops): New global.
|
|
|
|
|
(init_procfs_targets): New, based on procfs_target. Install
|
|
|
|
|
"target native" in addition to "target procfs".
|
|
|
|
|
(_initialize_procfs): Call init_procfs_targets instead of adding
|
|
|
|
|
the target here.
|
|
|
|
|
|
2014-05-21 17:30:45 +00:00
|
|
|
|
2014-05-21 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* windows-nat.c (windows_target): Don't override to_shortname,
|
|
|
|
|
to_longname or to_doc.
|
|
|
|
|
|
2014-05-21 17:30:44 +00:00
|
|
|
|
2014-05-21 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* gnu-nat.c (gnu): Don't override to_shortname, to_longname or
|
|
|
|
|
to_doc.
|
|
|
|
|
|
2014-05-21 17:30:43 +00:00
|
|
|
|
2014-05-21 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* darwin-nat.c (_initialize_darwin_inferior): Don't override
|
|
|
|
|
to_shortname, to_longname or to_doc.
|
|
|
|
|
|
2014-05-21 17:30:43 +00:00
|
|
|
|
2014-05-21 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* go32-nat.c (go32_target): Don't override to_shortname,
|
|
|
|
|
to_longname or to_doc.
|
|
|
|
|
|
2014-05-21 17:30:43 +00:00
|
|
|
|
2014-05-21 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* inf-child.c (inf_child_open): Remove mention of "child".
|
|
|
|
|
(inf_child_target): Rename target to "native" instead of "child".
|
|
|
|
|
|
2013-11-22 18:49:51 +00:00
|
|
|
|
2014-05-21 Andreas Arnez <arnez@linux.vnet.ibm.com>
|
|
|
|
|
|
|
|
|
|
* Makefile.in (SFILES): Delete "regset.c".
|
|
|
|
|
(COMMON_OBS): Delete "regset.o".
|
|
|
|
|
* regset.c: Remove.
|
|
|
|
|
* regset.h (regset_alloc): Delete prototype.
|
|
|
|
|
|
2014-02-24 10:58:15 +00:00
|
|
|
|
2014-05-21 Andreas Arnez <arnez@linux.vnet.ibm.com>
|
|
|
|
|
|
|
|
|
|
* sparc-linux-tdep.c (sparc32_linux_gregset)
|
|
|
|
|
(sparc32_linux_fpregset): New static regset structures.
|
|
|
|
|
(sparc32_linux_init_abi): Drop dynamic regset allocations.
|
|
|
|
|
* sparc-tdep.h (struct gdbarch_tdep): Constify 'gregset' and
|
|
|
|
|
'fpregset' fields.
|
|
|
|
|
* sparc64-linux-tdep.c: (sparc64_linux_gregset)
|
|
|
|
|
(sparc64_linux_fpregset): New static regset structures.
|
|
|
|
|
(sparc64_linux_init_abi): Drop dynamic regset allocations.
|
|
|
|
|
* sparc64fbsd-tdep.c (sparc64fbsd_gregset, sparc64fbsd_fpregset):
|
|
|
|
|
New static regset structures.
|
|
|
|
|
(sparc64fbsd_init_abi): Drop dynamic regset allocations.
|
|
|
|
|
* sparc64nbsd-tdep.c (sparc64nbsd_gregset, sparc64nbsd_fpregset):
|
|
|
|
|
New static regset structures.
|
|
|
|
|
(sparc64nbsd_init_abi): Drop dynamic regset allocations.
|
|
|
|
|
* sparc64obsd-tdep.c (sparc64obsd_gregset, sparc64obsd_fpregset):
|
|
|
|
|
New static regset structures.
|
|
|
|
|
(sparc64obsd_init_abi): Drop dynamic regset allocations.
|
|
|
|
|
* sparcnbsd-tdep.c (sparc32nbsd_gregset, sparc32nbsd_fpregset):
|
|
|
|
|
New static regset structures.
|
|
|
|
|
(sparc32nbsd_init_abi): Drop dynamic regset allocations.
|
|
|
|
|
|
2014-03-28 17:34:19 +00:00
|
|
|
|
2014-05-21 Andreas Arnez <arnez@linux.vnet.ibm.com>
|
|
|
|
|
|
|
|
|
|
* sparc-linux-nat.c (supply_gregset, supply_fpregset)
|
|
|
|
|
(fill_gregset, fill_fpregset, _initialize_sparc_linux_nat): Rename
|
|
|
|
|
register maps ("regmaps") from "*regset" to "*regmap". Do this
|
|
|
|
|
for all regmap types and variables.
|
|
|
|
|
* sparc-linux-tdep.c (sparc32_linux_step_trap)
|
|
|
|
|
(sparc32_linux_supply_core_gregset)
|
|
|
|
|
(sparc32_linux_collect_core_gregset)
|
|
|
|
|
(sparc32_linux_supply_core_fpregset)
|
|
|
|
|
(sparc32_linux_collect_core_fpregset): Likewise.
|
|
|
|
|
* sparc-nat.c (sparc_gregset, sparc_fpregset): Rename to...
|
|
|
|
|
(sparc_gregmap, sparc_fpregmap): ... these.
|
|
|
|
|
(sparc_supply_gregset, sparc_collect_gregset)
|
|
|
|
|
(sparc_supply_fpregset, sparc_collect_fpregset): Likewise.
|
|
|
|
|
(sparc_fetch_inferior_registers, sparc_store_inferior_registers)
|
|
|
|
|
(_initialize_sparc_nat): Rename regmaps.
|
|
|
|
|
* sparc-nat.h (sparc_gregset, sparc_fpregset): Rename to...
|
|
|
|
|
(sparc_gregmap, sparc_fpregmap): ... these.
|
|
|
|
|
(sparc_supply_gregset, sparc_collect_gregset)
|
|
|
|
|
(sparc_supply_fpregset, sparc_collect_fpregset): Likewise.
|
|
|
|
|
* sparc-sol2-nat.c (sparc_sol2_gregset, sparc_sol2_fpregset):
|
|
|
|
|
Rename macros to...
|
|
|
|
|
(sparc_sol2_gregmap, sparc_sol2_fpregmap): ... these.
|
|
|
|
|
(supply_gregset, supply_fpregset, fill_gregset, fill_fpregset):
|
|
|
|
|
Likewise.
|
|
|
|
|
* sparc-sol2-tdep.c (sparc32_sol2_gregset, sparc32_sol2_fpregset):
|
|
|
|
|
Rename to...
|
|
|
|
|
(sparc32_sol2_gregmap, sparc32_sol2_fpregmap): ... these.
|
|
|
|
|
* sparc-tdep.c (sparc32_supply_gregset, sparc32_collect_gregset)
|
|
|
|
|
(sparc32_supply_fpregset, sparc32_collect_fpregset): Rename
|
|
|
|
|
regmaps.
|
|
|
|
|
(sparc32_sunos4_gregset, sparc32_sunos4_fpregset)
|
|
|
|
|
(sparc32_bsd_fpregset): Rename to...
|
|
|
|
|
(sparc32_sunos4_gregmap, sparc32_sunos4_fpregmap)
|
|
|
|
|
(sparc32_bsd_fpregmap): ... these.
|
|
|
|
|
* sparc-tdep.h (struct sparc_gregset, struct sparc_fpregset)
|
|
|
|
|
(sparc32_sunos4_gregset, sparc32_sunos4_fpregset)
|
|
|
|
|
(sparc32_bsd_fpregset, sparc32_sol2_gregset)
|
|
|
|
|
(sparc32_sol2_fpregset, sparc32nbsd_gregset): Rename to...
|
|
|
|
|
(struct sparc_gregmap, struct sparc_fpregmap)
|
|
|
|
|
(sparc32_sunos4_gregmap, sparc32_sunos4_fpregmap)
|
|
|
|
|
(sparc32_bsd_fpregmap, sparc32_sol2_gregmap)
|
|
|
|
|
(sparc32_sol2_fpregmap, sparc32nbsd_gregmap): ... these.
|
|
|
|
|
(sparc32_supply_regset, sparc32_collect_gregset)
|
|
|
|
|
(sparc32_supply_fpregset, sparc32_collect_fpregset): Adjust
|
|
|
|
|
prototypes.
|
|
|
|
|
* sparc64-linux-nat.c (sparc64_linux_ptrace_gregset): Rename to...
|
|
|
|
|
(sparc64_linux_ptrace_gregmap): ... this.
|
|
|
|
|
(supply_gregset, supply_fpregset, fill_gregset, fill_fpregset)
|
|
|
|
|
(_initialize_sparc64_linux_nat): Rename regmaps.
|
|
|
|
|
* sparc64-linux-tdep.c (sparc64_linux_core_gregset): Rename to...
|
|
|
|
|
(sparc64_linux_core_gregmap): ... this.
|
|
|
|
|
(sparc64_linux_supply_core_gregset)
|
|
|
|
|
(sparc64_linux_collect_core_gregset)
|
|
|
|
|
(sparc64_linux_supply_core_fpregset)
|
|
|
|
|
(sparc64_linux_collect_core_fpregset): Rename regmaps.
|
|
|
|
|
* sparc64-sol2-tdep.c (sparc64_sol2_gregset)
|
|
|
|
|
(sparc64_sol2_fpregset): Rename to...
|
|
|
|
|
(sparc64_sol2_gregmap, sparc64_sol2_fpregmap): ... these.
|
|
|
|
|
* sparc64-tdep.c (sparc64_supply_gregset, sparc64_collect_gregset)
|
|
|
|
|
(sparc64_supply_fpregset, sparc64_collect_fpregset): Rename
|
|
|
|
|
regmaps.
|
|
|
|
|
* sparc64-tdep.h (struct sparc_gregset, sparc64_sol2_gregset)
|
|
|
|
|
(sparc64_sol2_fpregset, sparc64fbsd_gregset, sparc64nbsd_gregset)
|
|
|
|
|
(sparc64_bsd_fpregset): Rename to...
|
|
|
|
|
(struct sparc_gregmap, sparc64_sol2_gregmap)
|
|
|
|
|
(sparc64_sol2_fpregmap, sparc64fbsd_gregmap, sparc64nbsd_gregmap)
|
|
|
|
|
(sparc64_bsd_fpregmap): ... these.
|
|
|
|
|
(sparc64_supply_gregset, sparc64_collect_gregset)
|
|
|
|
|
(sparc64_supply_fpregset, sparc64_collect_fpregset): Adjust
|
|
|
|
|
prototypes.
|
|
|
|
|
* sparc64fbsd-nat.c (_initialize_sparc64fbsd_nat): Rename regmaps.
|
|
|
|
|
* sparc64fbsd-tdep.c (sparc64fbsd_gregset): Rename to...
|
|
|
|
|
(sparc64fbsd_gregmap): ... this.
|
|
|
|
|
(sparc64fbsd_supply_gregset, sparc64fbsd_collect_gregset)
|
|
|
|
|
(sparc64fbsd_supply_fpregset, sparc64fbsd_collect_fpregset):
|
|
|
|
|
Rename regmaps.
|
|
|
|
|
* sparc64nbsd-nat.c (sparc64nbsd_supply_gregset)
|
|
|
|
|
(sparc64nbsd_collect_gregset, sparc64nbsd_supply_fpregset)
|
|
|
|
|
(sparc64nbsd_collect_fpregset): Likewise.
|
|
|
|
|
* sparc64nbsd-tdep.c (sparc64nbsd_gregset): Rename to...
|
|
|
|
|
(sparc64nbsd_gregmap): ... this.
|
|
|
|
|
(sparc64nbsd_supply_gregset, sparc64nbsd_supply_fpregset): Rename
|
|
|
|
|
regmaps.
|
|
|
|
|
* sparc64obsd-nat.c (_initialize_sparc64obsd_nat): Likewise.
|
|
|
|
|
* sparc64obsd-tdep.c (sparc64obsd_gregset): Rename to...
|
|
|
|
|
(sparc64obsd_gregmap): ... this.
|
|
|
|
|
(sparc64obsd_supply_gregset, sparc64obsd_supply_fpregset): Rename
|
|
|
|
|
regmaps.
|
|
|
|
|
* sparcnbsd-nat.c (_initialize_sparcnbsd_nat): Likewise.
|
|
|
|
|
* sparcnbsd-tdep.c (sparc32nbsd_gregset): Rename to...
|
|
|
|
|
(sparc32nbsd_gregmap): ... this.
|
|
|
|
|
(sparc32nbsd_supply_gregset, sparc32nbsd_supply_fpregset): Rename
|
|
|
|
|
regmaps.
|
|
|
|
|
|
2014-03-31 09:07:42 +00:00
|
|
|
|
2014-05-21 Andreas Arnez <arnez@linux.vnet.ibm.com>
|
|
|
|
|
|
|
|
|
|
* score-tdep.c (score7_linux_gregset): New static regset
|
|
|
|
|
structure.
|
|
|
|
|
(score7_linux_regset_from_core_section): Remove dynamic regset
|
|
|
|
|
allocation.
|
|
|
|
|
(score_gdbarch_init): Drop allocation of tdep structure.
|
|
|
|
|
* score-tdep.h (struct gdbarch_tdep): Remove declaration.
|
|
|
|
|
|
2013-11-22 18:43:00 +00:00
|
|
|
|
2014-05-21 Andreas Arnez <arnez@linux.vnet.ibm.com>
|
|
|
|
|
|
|
|
|
|
* mn10300-linux-tdep.c (am33_gregset, am33_fpregset): New static
|
|
|
|
|
regset structures.
|
|
|
|
|
(am33_regset_from_core_section): Remove dynamic regset
|
|
|
|
|
allocations.
|
|
|
|
|
|
2013-11-22 18:40:06 +00:00
|
|
|
|
2014-05-21 Andreas Arnez <arnez@linux.vnet.ibm.com>
|
|
|
|
|
|
|
|
|
|
* mips-linux-tdep.c (mips_linux_gregset, mips64_linux_gregset)
|
|
|
|
|
(mips_linux_fpregset, mips64_linux_fpregset): New static regset
|
|
|
|
|
structures.
|
|
|
|
|
(mips_linux_regset_from_core_section): Remove dynamic regset
|
|
|
|
|
allocations.
|
|
|
|
|
* mips-tdep.h (struct gdbarch_tdep): Remove fields 'gregset',
|
|
|
|
|
'gregset64', 'fpregset', and 'fpregset64'.
|
|
|
|
|
* mips-tdep.c (mips_gdbarch_init): Remove initialization of
|
|
|
|
|
deleted tdep fields.
|
|
|
|
|
|
2014-05-05 12:58:11 +00:00
|
|
|
|
2014-05-21 Andreas Arnez <arnez@linux.vnet.ibm.com>
|
|
|
|
|
|
|
|
|
|
* amd64-tdep.c (amd64_fpregset, amd64_xstateregset): New static
|
|
|
|
|
regset structures.
|
|
|
|
|
(amd64_regset_from_core_section): Remove dynamic regset
|
|
|
|
|
allocations.
|
|
|
|
|
* amd64obsd-tdep.c (amd64obsd_combined_regset): New static regset
|
|
|
|
|
structure.
|
|
|
|
|
(amd64obsd_regset_from_core_section): Remove dynamic regset
|
|
|
|
|
allocation.
|
|
|
|
|
* i386-cygwin-tdep.c (i386_windows_regset_from_core_section):
|
|
|
|
|
Likewise.
|
|
|
|
|
* i386-nto-tdep.c (i386nto_supply_gregset): Adjust call to
|
|
|
|
|
x86-common regset supply function.
|
|
|
|
|
* i386-tdep.c (i386_collect_gregset): Make static.
|
|
|
|
|
(i386_gregset): New global regset structure.
|
|
|
|
|
(i386_fpregset, i386_xstateregset): New static regset structures.
|
|
|
|
|
(i386_regset_from_core_section): Remove dynamic regset
|
|
|
|
|
allocations.
|
|
|
|
|
(i386_gdbarch_init): Remove initialization of tdep fields
|
|
|
|
|
'gregset', 'fpregset', and 'xstateregset'.
|
|
|
|
|
* i386-tdep.h (struct gdbarch_tdep): Remove fields 'gregset',
|
|
|
|
|
'fpregset', and 'xstateregset'.
|
|
|
|
|
(i386_collect_gregset): Remove prototype.
|
|
|
|
|
(i386_gregset): New declaration.
|
|
|
|
|
* i386obsd-tdep.c (i386obsd_aout_gregset): New static regset
|
|
|
|
|
structure.
|
|
|
|
|
(i386obsd_aout_regset_from_core_section): Remove dynamic regset
|
|
|
|
|
allocation.
|
|
|
|
|
|
2014-03-28 17:21:39 +00:00
|
|
|
|
2014-05-21 Andreas Arnez <arnez@linux.vnet.ibm.com>
|
|
|
|
|
|
|
|
|
|
* arm-linux-tdep.c (arm_linux_gregset, arm_linux_fpregset)
|
|
|
|
|
(arm_linux_vfpregset): New static regset structures.
|
|
|
|
|
(arm_linux_regset_from_core_section): Remove dynamic allocation of
|
|
|
|
|
regset structures.
|
|
|
|
|
* arm-tdep.h (struct gdbarch_tdep): Remove 'gregset', 'fpregset',
|
|
|
|
|
and 'vfpregset' fields.
|
|
|
|
|
|
2013-11-22 18:29:26 +00:00
|
|
|
|
2014-05-21 Andreas Arnez <arnez@linux.vnet.ibm.com>
|
|
|
|
|
|
|
|
|
|
* aarch64-linux-tdep.c (aarch64_linux_gregset)
|
|
|
|
|
(aarch64_linux_fpregset): New static regset structures.
|
|
|
|
|
(aarch64_linux_regset_from_core_section): Drop dynamic allocation
|
|
|
|
|
of regset structures.
|
|
|
|
|
* aarch64-tdep.h (struct gdbarch_tdep): Remove 'gregset' and
|
|
|
|
|
'fpregset' fields.
|
|
|
|
|
|
2014-05-13 11:05:57 +00:00
|
|
|
|
2014-05-21 Andreas Arnez <arnez@linux.vnet.ibm.com>
|
|
|
|
|
|
|
|
|
|
* regset.h (struct regset): Remove gdbarch field.
|
|
|
|
|
* regset.c (regset_alloc): Drop initialization of gdbarch field.
|
|
|
|
|
* nios2-linux-tdep.c (nios2_core_regset): Likewise.
|
|
|
|
|
* ppcfbsd-tdep.c (ppc32_fbsd_gregset, ppc64_fbsd_gregset):
|
|
|
|
|
Likewise.
|
|
|
|
|
* ppc-linux-tdep.c (ppc32_linux_gregset, ppc64_linux_gregset)
|
|
|
|
|
(ppc32_linux_fpregset, ppc32_linux_vrregset)
|
|
|
|
|
(ppc32_linux_vsxregset): Likewise.
|
|
|
|
|
* i386obsd-tdep.c (i386obsd_aout_supply_regset): Get the gdbarch
|
|
|
|
|
via the regcache instead of the regset.
|
|
|
|
|
* i386-tdep.c (i386_supply_gregset, i386_collect_gregset)
|
|
|
|
|
(i386_supply_fpregset, i386_collect_fpregset): Likewise.
|
|
|
|
|
* amd64obsd-tdep.c (amd64obsd_supply_regset): Likewise.
|
|
|
|
|
* amd64-tdep.c (amd64_supply_fpregset, amd64_collect_fpregset):
|
|
|
|
|
Likewise.
|
|
|
|
|
|
2014-03-03 09:31:21 +00:00
|
|
|
|
2014-05-21 Andreas Arnez <arnez@linux.vnet.ibm.com>
|
|
|
|
|
|
|
|
|
|
* alpha-linux-tdep.c (alpha_linux_gregset, alpha_linux_fpregset):
|
|
|
|
|
Constify structures.
|
|
|
|
|
* alphanbsd-tdep.c (alphanbsd_gregset, alphanbsd_fpregset)
|
|
|
|
|
(alphanbsd_aout_gregset): Likewise.
|
|
|
|
|
* armbsd-tdep.c (armbsd_gregset, armbsd_fpregset): Likewise.
|
|
|
|
|
* frv-linux-tdep.c (frv_linux_gregset, frv_linux_fpregset):
|
|
|
|
|
Likewise.
|
|
|
|
|
* hppa-hpux-tdep.c (hppa_hpux_regset): Likewise.
|
|
|
|
|
* hppa-linux-tdep.c (hppa_linux_regset, hppa_linux_fpregset):
|
|
|
|
|
Likewise.
|
|
|
|
|
* hppanbsd-tdep.c (hppanbsd_gregset): Likewise.
|
|
|
|
|
* hppaobsd-tdep.c (hppaobsd_gregset, hppaobsd_fpregset): Likewise.
|
|
|
|
|
* m32r-linux-tdep.c (m32r_linux_gregset): Likewise.
|
|
|
|
|
* m68kbsd-tdep.c (m68kbsd_gregset, m68kbsd_fpregset): Likewise.
|
|
|
|
|
* m88k-tdep.c (m88k_gregset): Likewise.
|
|
|
|
|
* mips64obsd-tdep.c (mips64obsd_gregset): Likewise.
|
|
|
|
|
* mipsnbsd-tdep.c (mipsnbsd_gregset, mipsnbsd_fpregset): Likewise.
|
|
|
|
|
* nios2-linux-tdep.c (nios2_core_regset): Likewise.
|
|
|
|
|
* ppcfbsd-tdep.c (ppc32_fbsd_fpregset): Likewise.
|
|
|
|
|
* ppcnbsd-tdep.c (ppcnbsd_gregset, ppcnbsd_fpregset): Likewise.
|
|
|
|
|
* ppcnbsd-tdep.h (ppcnbsd_gregset, ppcnbsd_fpregset): Likewise.
|
|
|
|
|
* ppcobsd-tdep.c (ppcobsd_gregset, ppcobsd_fpregset): Likewise.
|
|
|
|
|
* ppcobsd-tdep.h (ppcobsd_gregset, ppcobsd_fpregset): Likewise.
|
|
|
|
|
* rs6000-aix-tdep.c (rs6000_aix32_regset, rs6000_aix64_regset):
|
|
|
|
|
Likewise.
|
|
|
|
|
* sh-tdep.c (sh_corefile_gregset, sh_corefile_fpregset): Likewise.
|
|
|
|
|
* sh-tdep.h (sh_corefile_gregset): Likewise.
|
|
|
|
|
* tilegx-linux-tdep.c (tilegx_linux_regset): Likewise.
|
|
|
|
|
* vax-tdep.c (vax_gregset): Likewise.
|
|
|
|
|
|
2014-05-21 14:25:53 +00:00
|
|
|
|
2014-05-21 Jan Kratochvil <jan.kratochvil@redhat.com>
|
|
|
|
|
|
|
|
|
|
Fix TLS access for -static -pthread.
|
|
|
|
|
* linux-thread-db.c (struct thread_db_info): Add td_thr_tlsbase_p.
|
|
|
|
|
(try_thread_db_load_1): Initialize it.
|
|
|
|
|
(thread_db_get_thread_local_address): Call it if LM is zero.
|
|
|
|
|
* target.c (target_translate_tls_address): Remove LM_ADDR zero check.
|
|
|
|
|
* target.h (struct target_ops) (to_get_thread_local_address): Add
|
|
|
|
|
load_module_addr comment.
|
|
|
|
|
|
2014-05-21 12:58:16 +00:00
|
|
|
|
2014-05-21 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* dcache.c (dcache_read_memory_partial): If reading the cache line
|
|
|
|
|
fails, fallback to reading just the memory the caller wanted.
|
|
|
|
|
|
2014-05-20 20:06:26 +00:00
|
|
|
|
2014-05-20 Doug Evans <dje@google.com>
|
|
|
|
|
|
|
|
|
|
* python/py-progspace.c (py_free_pspace): Call target_gdbarch
|
|
|
|
|
instead of get_current_arch.
|
|
|
|
|
|
Make compare-sections work against all targets; add compare-sections [-r] tests.
This does two things:
1. Adds a test.
Recently compare-sections got a new "-r" switch, but given no test
existed for compare-sections, the patch was allowed in with no
testsuite addition. This now adds a test for both compare-sections
and compare-sections -r.
2. Makes the compare-sections command work against all targets.
Currently, compare-sections only works with remote targets, and only
those that support the qCRC packet. The patch makes it so that if the
target doesn't support accelerating memory verification, then GDB
falls back to comparing memory itself. This is of course slower, but
it's better than nothing, IMO. While testing against extended-remote
GDBserver I noticed that we send the qCRC request to the target if
we're connected, but not yet running a program. That can't work of
course -- the patch fixes that. This all also goes in the direction
of bridging the local/remote parity gap.
I didn't decouple 1. from 2., because that would mean that the test
would need to handle the case of the target not supporting the
command.
Tested on x86_64 Fedora 17, native, remote GDBserver, and
extended-remote GDBserver. I also hack-disabled qCRC support to make
sure the fallback paths in remote.c work.
gdb/doc/
2014-05-20 Pedro Alves <palves@redhat.com>
* gdb.texinfo (Memory) <compare-sections>: Generalize comments to
not be remote specific. Add cross reference to the qCRC packet.
(Separate Debug Files): Update cross reference to the qCRC packet.
(General Query Packets) <qCRC packet>: Add anchor.
gdb/
2014-05-20 Pedro Alves <palves@redhat.com>
* NEWS: Mention that compare-sections now works with all targets.
* remote.c (PACKET_qCRC): New enum value.
(remote_verify_memory): Don't send qCRC if the target has no
execution. Use packet_support/packet_ok. If the target doesn't
support the qCRC packet, fallback to a deep memory copy.
(compare_sections_command): Say "target image" instead of "remote
executable".
(_initialize_remote): Add PACKET_qCRC to the list of config
packets that have no associated command. Extend comment.
* target.c (simple_verify_memory, default_verify_memory): New
function.
* target.h (struct target_ops) <to_verify_memory>: Default to
default_verify_memory.
(simple_verify_memory): New declaration.
* target-delegates.c: Regenerate.
gdb/testsuite/
2014-05-20 Pedro Alves <palves@redhat.com>
* gdb.base/compare-sections.c: New file.
* gdb.base/compare-sections.exp: New file.
2014-05-20 18:11:39 +00:00
|
|
|
|
2014-05-20 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* NEWS: Mention that compare-sections now works with all targets.
|
|
|
|
|
|
|
|
|
|
* remote.c (PACKET_qCRC): New enum value.
|
|
|
|
|
(remote_verify_memory): Don't send qCRC if the target has no
|
|
|
|
|
execution. Use packet_support/packet_ok. If the target doesn't
|
|
|
|
|
support the qCRC packet, fallback to a deep memory copy.
|
|
|
|
|
(compare_sections_command): Say "target image" instead of "remote
|
|
|
|
|
executable".
|
|
|
|
|
(_initialize_remote): Add PACKET_qCRC to the list of config
|
|
|
|
|
packets that have no associated command. Extend comment.
|
|
|
|
|
* target.c (simple_verify_memory, default_verify_memory): New
|
|
|
|
|
function.
|
|
|
|
|
* target.h (struct target_ops) <to_verify_memory>: Default to
|
|
|
|
|
default_verify_memory.
|
|
|
|
|
(simple_verify_memory): New declaration.
|
|
|
|
|
* target-delegates.c: Regenerate.
|
|
|
|
|
|
2014-05-15 08:57:36 +00:00
|
|
|
|
2014-05-20 Markus Metzger <markus.t.metzger@intel.com>
|
|
|
|
|
|
|
|
|
|
* record-btrace.c (record_btrace_step_thread): Check for empty history.
|
|
|
|
|
|
Fix issue #15778: GDB Aarch64 signal frame unwinder issue
The root cause of this issue is unwinder of "#3 <signal handler called>"
doesn't supply right values of registers.
When GDB want to get the previous frame of "#3 <signal handler called>",
it will call cache init function of unwinder "aarch64_linux_sigframe_init".
The address or the value of the registers is get from this function.
So the bug is inside thie function.
I check the asm code of "#3 <signal handler called>":
(gdb) frame 3
(gdb) p $pc
$1 = (void (*)()) 0x7f931fa4d0
(gdb) disassemble $pc, +10
Dump of assembler code from 0x7f931fa4d0 to 0x7f931fa4da:
=> 0x0000007f931fa4d0: mov x8, #0x8b // #139
0x0000007f931fa4d4: svc #0x0
0x0000007f931fa4d8: nop
This is the syscall sys_rt_sigreturn, Linux kernel function "restore_sigframe"
will set the frame:
for (i = 0; i < 31; i++)
__get_user_error(regs->regs[i], &sf->uc.uc_mcontext.regs[i],
err);
__get_user_error(regs->sp, &sf->uc.uc_mcontext.sp, err);
__get_user_error(regs->pc, &sf->uc.uc_mcontext.pc, err);
The struct of uc_mcontext is:
struct sigcontext {
__u64 fault_address;
/* AArch64 registers */
__u64 regs[31];
__u64 sp;
__u64 pc;
__u64 pstate;
/* 4K reserved for FP/SIMD state and future expansion */
__u8 __reserved[4096] __attribute__((__aligned__(16)));
};
But in GDB function "aarch64_linux_sigframe_init", the code the get address
of registers is:
for (i = 0; i < 31; i++)
{
trad_frame_set_reg_addr (this_cache,
AARCH64_X0_REGNUM + i,
sigcontext_addr + AARCH64_SIGCONTEXT_XO_OFFSET
+ i * AARCH64_SIGCONTEXT_REG_SIZE);
}
trad_frame_set_reg_addr (this_cache, AARCH64_FP_REGNUM, fp);
trad_frame_set_reg_addr (this_cache, AARCH64_LR_REGNUM, fp + 8);
trad_frame_set_reg_addr (this_cache, AARCH64_PC_REGNUM, fp + 8);
The code that get pc and sp is not right, so I change the code according
to Linux kernel code:
trad_frame_set_reg_addr (this_cache, AARCH64_SP_REGNUM,
sigcontext_addr + AARCH64_SIGCONTEXT_XO_OFFSET
+ 31 * AARCH64_SIGCONTEXT_REG_SIZE);
trad_frame_set_reg_addr (this_cache, AARCH64_PC_REGNUM,
sigcontext_addr + AARCH64_SIGCONTEXT_XO_OFFSET
+ 32 * AARCH64_SIGCONTEXT_REG_SIZE);
The issue was fixed by this change, and I did the regression test. It
also fixed a lot of other XFAIL and FAIL.
2014-05-20 Hui Zhu <hui@codesourcery.com>
Yao Qi <yao@codesourcery.com>
PR backtrace/16558
* aarch64-linux-tdep.c (aarch64_linux_sigframe_init): Update comments
and change address of sp and pc.
2014-05-20 05:19:06 +00:00
|
|
|
|
2014-05-20 Hui Zhu <hui@codesourcery.com>
|
|
|
|
|
Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR backtrace/16558
|
|
|
|
|
* aarch64-linux-tdep.c (aarch64_linux_sigframe_init): Update comments
|
|
|
|
|
and change address of sp and pc.
|
|
|
|
|
|
2014-05-19 19:10:21 +00:00
|
|
|
|
2014-05-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* gdbtypes.c (rank_function): Use XNEWVEC.
|
|
|
|
|
* mi/mi-cmds.c (build_table): Use XCNEWVEC.
|
|
|
|
|
|
2014-05-19 23:05:01 +00:00
|
|
|
|
2014-05-19 Doug Evans <dje@google.com>
|
|
|
|
|
|
|
|
|
|
* dwarf2read.c (build_type_psymtabs_1): Renamed from
|
|
|
|
|
build_type_unit_groups and moved closer to only caller. Remove
|
|
|
|
|
arguments. All references updated. Remove outdated .gdb_index
|
|
|
|
|
comment.
|
|
|
|
|
(struct tu_abbrev_offset, sort_tu_by_abbrev_offset): Move with
|
|
|
|
|
build_type_psymtabs_1.
|
|
|
|
|
|
2014-05-19 19:50:44 +00:00
|
|
|
|
2014-05-19 Doug Evans <dje@google.com>
|
|
|
|
|
|
|
|
|
|
* dwarf2read.c (struct dwarf2_per_objfile): Delete unused members
|
|
|
|
|
n_type_unit_groups, all_type_unit_groups. All uses removed.
|
|
|
|
|
(get_type_unit_group, build_type_unit_groups): Delete forward decls.
|
|
|
|
|
(dw2_get_cutu): Renamed from dw2_get_cu. All callers updated.
|
|
|
|
|
(dw2_get_cu): Renamed from dw2_get_primary_cu. All callers updated.
|
|
|
|
|
(add_type_unit_group_to_table): Delete.
|
|
|
|
|
|
2014-05-19 17:51:08 +00:00
|
|
|
|
2014-05-19 Doug Evans <dje@google.com>
|
|
|
|
|
|
|
|
|
|
* eval.c (evaluate_subexp_standard): Add some comments.
|
|
|
|
|
|
2014-05-17 19:18:26 +00:00
|
|
|
|
2014-05-17 Doug Evans <xdje42@gmail.com>
|
|
|
|
|
|
|
|
|
|
* progspace.c (remove_program_space): Delete, unused.
|
|
|
|
|
* progspace.h (remove_program_space): Ditto.
|
|
|
|
|
|
2014-05-17 18:59:34 +00:00
|
|
|
|
2014-05-17 Doug Evans <xdje42@gmail.com>
|
|
|
|
|
|
|
|
|
|
* inferior.c (prune_inferiors): Fix comment.
|
|
|
|
|
(remove_inferior_command): Call prune_program_spaces.
|
|
|
|
|
|
2014-05-16 19:15:10 +00:00
|
|
|
|
2014-05-16 Doug Evans <dje@google.com>
|
|
|
|
|
|
|
|
|
|
New command line option -D.
|
|
|
|
|
* NEWS: Mention it.
|
|
|
|
|
* main.c (set_gdb_data_directory): New function.
|
|
|
|
|
(captured_main): Recognize -D. Flag error for --data-directory "".
|
|
|
|
|
Call set_gdb_data_directory.
|
|
|
|
|
(print_gdb_help): Print --data-directory, -D.
|
|
|
|
|
* main.h (set_gdb_data_directory): Declare.
|
|
|
|
|
* top.c (staged_gdb_datadir): New static global.
|
|
|
|
|
(set_gdb_datadir): Call set_gdb_data_directory
|
|
|
|
|
(show_gdb_datadir): New function.
|
|
|
|
|
(init_main): Update init of data-directory parameter.
|
|
|
|
|
|
2014-05-16 18:26:33 +00:00
|
|
|
|
2014-05-16 Gregory Fong <gregory.0xf0@gmail.com>
|
|
|
|
|
|
|
|
|
|
Import the "dirfd" gnulib module.
|
|
|
|
|
* gnulib/update-gnulib.sh (IMPORTED_GNULIB_MODULES): Add dirfd.
|
|
|
|
|
* gnulib/aclocal.m4: Update.
|
|
|
|
|
* gnulib/config.in: Update.
|
|
|
|
|
* gnulib/configure: Update.
|
|
|
|
|
* gnulib/import/Makefile.am: Update.
|
|
|
|
|
* gnulib/import/Makefile.in: Update.
|
|
|
|
|
* gnulib/import/dirfd.c: New.
|
|
|
|
|
* gnulib/import/m4/dirfd.m4: New.
|
|
|
|
|
* gnulib/import/m4/gnulib-cache.m4: Update.
|
|
|
|
|
* gnulib/import/m4/gnulib-comp.m4: Update.
|
|
|
|
|
|
2014-04-22 04:56:08 +00:00
|
|
|
|
2014-05-16 Pierre Muller <muller@sourceware.org>
|
|
|
|
|
Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* valprint.c (print_wchar): Move the code on checking whether
|
|
|
|
|
W is a printable wide char to the default branch of switch
|
|
|
|
|
statement below. Call wchar_printable instead of gdb_iswprint.
|
|
|
|
|
|
2014-05-16 06:39:05 +00:00
|
|
|
|
2014-05-16 Taimoor Mirza <tmirza@codesourcery.com>
|
|
|
|
|
|
2014-05-16 12:10:38 +00:00
|
|
|
|
* arm-tdep.c (thumb_analyze_prologue): Fix offset calculation for
|
2014-05-16 06:39:05 +00:00
|
|
|
|
ldr.w and ldrd instructions.
|
|
|
|
|
|
2014-05-15 22:45:05 +00:00
|
|
|
|
2014-05-15 Doug Evans <dje@google.com>
|
|
|
|
|
|
|
|
|
|
* dwarf2read.c (read_structure_type): Delete outdated comments.
|
|
|
|
|
|
2014-05-14 19:31:10 +00:00
|
|
|
|
2014-05-14 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* macrocmd.c (print_macro_definition): Reindent.
|
|
|
|
|
|
2014-05-14 02:44:51 +00:00
|
|
|
|
2014-05-13 Doug Evans <xdje42@gmail.com>
|
|
|
|
|
|
|
|
|
|
* python/py-cmd.c (cmdpy_completer): Add comment.
|
|
|
|
|
(completers): Make const.
|
|
|
|
|
|
2014-04-21 15:49:59 +00:00
|
|
|
|
2014-05-13 Simon Marchi <simon.marchi@ericsson.com>
|
|
|
|
|
|
|
|
|
|
* infrun.c (resume): Remove should_resume (unused). Move up
|
|
|
|
|
declaration of resume_ptid.
|
|
|
|
|
|
2014-05-13 17:35:18 +00:00
|
|
|
|
2014-05-13 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* language.h (unop_type_check): Remove.
|
|
|
|
|
(binop_type_check): Don't declare.
|
|
|
|
|
|
2014-05-13 12:55:53 +00:00
|
|
|
|
2014-05-13 Andreas Arnez <arnez@vnet.linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
* s390-linux-nat.c (fill_gregset): Remove erroneous offset 4 in
|
|
|
|
|
call to regcache_raw_collect.
|
|
|
|
|
|
2014-04-26 22:10:40 +00:00
|
|
|
|
2014-05-12 Simon Marchi <simon.marchi@ericsson.com>
|
|
|
|
|
|
|
|
|
|
* mi/mi-console.c (mi_console_raw_packet): Use the value from
|
|
|
|
|
mi_console->quote as the quoting character.
|
|
|
|
|
|
2014-05-12 17:06:11 +00:00
|
|
|
|
2014-05-12 Simon Marchi <simon.marchi@ericsson.com>
|
|
|
|
|
|
|
|
|
|
* MAINTAINERS (Write After Approval): Add "Simon Marchi".
|
|
|
|
|
|
2014-04-29 14:27:31 +00:00
|
|
|
|
2014-04-29 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* varobj.c (_initialize_varobj): Rename to "set debug varobj" and
|
|
|
|
|
"show debug varobj".
|
|
|
|
|
|
2014-04-30 16:04:50 +00:00
|
|
|
|
2014-05-07 Kyle McMartin <kyle@redhat.com>
|
|
|
|
|
|
|
|
|
|
Pushed by Joel Brobecker <brobecker@adacore.com>.
|
|
|
|
|
* aarch64-tdep.c (aarch64_software_single_step): New function.
|
|
|
|
|
(aarch64_gdbarch_init): Handle single stepping of atomic sequences
|
|
|
|
|
with aarch64_software_single_step.
|
|
|
|
|
|
2014-05-05 22:03:06 +00:00
|
|
|
|
2014-05-05 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
GDB 7.7.1 released.
|
|
|
|
|
|
2014-05-05 20:43:31 +00:00
|
|
|
|
2014-05-05 Keith Seitz <keiths@redhat.com>
|
|
|
|
|
|
|
|
|
|
* linespec.c (linespec_parse_basic): Run cleanups if a convenience
|
|
|
|
|
variable or history value is successfully parsed.
|
|
|
|
|
|
Partially available/unavailable data in requested range
In gdb.trace/unavailable.exp, an action is defined to collect
struct_b.struct_a.array[2] and struct_b.struct_a.array[100],
struct StructB
{
int d, ef;
StructA struct_a;
int s:1;
static StructA static_struct_a;
const char *string;
};
and the other files are not collected.
When GDB examine traceframe collected by the action, "struct_b" is
unavailable completely, which is wrong.
(gdb) p struct_b
$1 = <unavailable>
When GDB reads 'struct_b', it will request to read memory at struct_b's address
of length LEN. Since struct_b.d is not collected, no 'M' block
includes the first part of the desired range, so tfile_xfer_partial returns
TARGET_XFER_UNAVAILABLE and GDB thinks the whole requested range is unavailable.
In order to fix this problem, in the iteration to 'M' blocks, we record the
lowest address of blocks within the request range. If it has, the requested
range isn't unavailable completely. This applies to ctf too. With this patch
applied, the result looks good and fails in unavailable.exp is fixed.
(gdb) p struct_b
$1 = {d = <unavailable>, ef = <unavailable>, struct_a = {a = <unavailable>, b = <unavailable>, array = {<unavailable>,
<unavailable>, -1431655766, <unavailable> <repeats 97 times>, -1431655766, <unavailable> <repeats 9899 times>}, ptr = <unavailable>, bitfield = <unavailable>}, s = <unavailable>, static static_struct_a = {a = <unavailable>, b = <unavailable>, array = {<unavailable> <repeats 10000 times>}, ptr = <unavailable>,
bitfield = <unavailable>}, string = <unavailable>}
gdb:
2014-05-05 Yao Qi <yao@codesourcery.com>
Pedro Alves <palves@redhat.com>
* tracefile-tfile.c (tfile_xfer_partial): Record the lowest
address of blocks that intersects the requested range. Trim
LEN up to LOW_ADDR_AVAILABLE if read from executable read-only
sections.
* ctf.c (ctf_xfer_partial): Likewise.
gdb/testsuite:
2014-05-05 Yao Qi <yao@codesourcery.com>
* gdb.trace/unavailable.exp (gdb_collect_args_test): Save
traceframes into tfile and ctf trace files. Read data from
trace file and test collected data.
(gdb_collect_locals_test): Likewise.
(gdb_unavailable_registers_test): Likewise.
(gdb_unavailable_floats): Likewise.
(gdb_collect_globals_test): Likewise.
(top-level): Append "ctf" to trace_file_targets if GDB
supports.
2014-04-26 02:14:52 +00:00
|
|
|
|
2014-05-05 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* tracefile-tfile.c (tfile_xfer_partial): Record the lowest
|
|
|
|
|
address of blocks that intersects the requested range. Trim
|
|
|
|
|
LEN up to LOW_ADDR_AVAILABLE if read from executable read-only
|
|
|
|
|
sections.
|
|
|
|
|
* ctf.c (ctf_xfer_partial): Likewise.
|
|
|
|
|
|
Show new created display
When I run refactored unavailable.exp, I find
command display behaves a little different on live inferior and on
examining traceframes. In live inferior, when command "display argc"
is typed, the value of "argc" is shown.
(gdb) display argc
1: argc = 1 '\001'
however, on tfile target, when command "display argc" is typed, the
value of "argc" is not shown.
(gdb) tfind
Found trace frame 0, tracepoint 1
at ../../../../git/gdb/testsuite/gdb.trace/unavailable.cc:198
198 i = (int) argc + argi + argf + argd + argstruct.memberi + argarray[1];
(gdb) display argc
I also notice that on "core" target, the value of "argc" isn't shown
either. This difference is caused by the code below in printcmd.c:display_command,
if (from_tty && target_has_execution)
do_one_display (new);
Looks the value of each display is shown if the target has execution.
Source code archaeology doesn't tell much about this requirement.
However, if we type command "display" then on "core" or "tfile"
target, the value of "argc" is still displayed,
for "core" target,
(gdb) display argc
(gdb) display
1: argc = 1 '\001'
for "tfile" target,
(gdb) display argc
(gdb) display
1: argc = <unavailable>
I feel that it is not necessary to have such "target has execution"
requirement to show the value of new created display. Auto-display is
a feature to show the value of expression frequently, has nothing to
do with whether target has execution or not. On the other hand, GDB
has the requirement for new created display, but command "display" can
still show them, this is an inconsistency, which should be fixed.
This patch is to remove the checking to target_has_execution from the
condition.
gdb:
2014-05-05 Yao Qi <yao@codesourcery.com>
* printcmd.c (display_command): Remove the check to
target_has_execution.
2014-04-26 00:47:33 +00:00
|
|
|
|
2014-05-05 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* printcmd.c (display_command): Remove the check to
|
|
|
|
|
target_has_execution.
|
|
|
|
|
|
2014-05-03 20:36:44 +00:00
|
|
|
|
2014-05-03 Mark Kettenis <kettenis@gnu.org>
|
|
|
|
|
|
|
|
|
|
* ppcobsd-nat.c: Include "obsd-nat.h".
|
|
|
|
|
(_initialize_ppcobsd_nat): Call obsd_add_target instead of
|
|
|
|
|
add_target.
|
|
|
|
|
* config/powerpc/obsd.mh (NATDEPFILES): Add obsd-nat.o.
|
|
|
|
|
|
2014-05-02 20:50:45 +00:00
|
|
|
|
2014-05-02 Sergio Durigan Junior <sergiodj@redhat.com>
|
|
|
|
|
|
|
|
|
|
* stap-probe.c (enum stap_arg_bitness): New enums to represent 8
|
|
|
|
|
and 16-bit signed and unsigned arguments. Update comment.
|
|
|
|
|
(stap_parse_probe_arguments): Extend code to handle such
|
|
|
|
|
arguments. Use warning instead of complaint to notify about
|
|
|
|
|
unrecognized bitness.
|
|
|
|
|
|
2014-05-02 20:45:35 +00:00
|
|
|
|
2014-05-02 Sergio Durigan Junior <sergiodj@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR breakpoints/16889
|
|
|
|
|
* stap-probe.c (stap_parse_probe_arguments): Simplify
|
|
|
|
|
check for non-prefixed probes (i.e., probes whose
|
|
|
|
|
arguments do not start with "N@"). Always set the
|
|
|
|
|
argument type to a sane value.
|
|
|
|
|
|
2014-05-01 17:09:43 +00:00
|
|
|
|
2014-05-01 David Taylor <dtaylor@emc.com>
|
|
|
|
|
|
|
|
|
|
* remote.c (compare_sections_command): Add -r option to compare
|
|
|
|
|
all loadable read-only sections.
|
|
|
|
|
|
2014-04-29 12:27:14 +00:00
|
|
|
|
2014-04-30 Siva Chandra Reddy <sivachandra@google.com>
|
|
|
|
|
|
|
|
|
|
* dwarf2loc.c (dwarf2_locexpr_baton_eval,
|
|
|
|
|
dwarf2_evaluate_property): Remove unused CORE_ADDR argument.
|
|
|
|
|
Update all callers.
|
|
|
|
|
* dwarf2loc.h (dwarf2_evaluate_property): Update signature.
|
|
|
|
|
* gdbtypes.c (resolve_dynamic_range, resolve_dynamic_array):
|
|
|
|
|
Remove unused CORE_ADDR argument. Update all callers.
|
|
|
|
|
|
Fix remote connection to targets that don't support the QNonStop packet.
... and others. The recent patch that fixed several "set remote
foo-packet on/off" commands introduced a regression, observable when
connecting GDB to QEMU. For instance:
(gdb) set debug remote 1
(gdb) tar rem :4444
Remote debugging using :4444
Sending packet: $qSupported:multiprocess+;qRelocInsn+#2a...Ack
Packet received: PacketSize=1000;qXfer:features:read+
Packet qSupported (supported-packets) is supported
Sending packet: $Hgp0.0#ad...Ack
Packet received: OK
Sending packet: $qXfer:features:read:target.xml:0,ffb#79...Ack
Packet received: [...]
Sending packet: $qXfer:features:read:arm-core.xml:0,ffb#08...Ack
Packet received: [...]
!!! -> Sending packet: $QNonStop:0#8c...Ack
Packet received:
Remote refused setting all-stop mode with:
The "QNonStop" feature is associated with the PACKET_QNonStop packet,
with a default of PACKET_DISABLE, so GDB should not be sending the
packet at all.
The patch that introduced the regression decoupled packet_config's
'detect' and 'support' fields, making the former (an auto_boolean)
purely the associated "set remote foo-packet" command's variable. In
the example above, the packet config's 'supported' field does end up
correctly set to PACKET_DISABLE. However, nothing is presently
initializing packet configs that don't actually have a command
associated. Those configs's 'detect' field then ends up set to
AUTO_BOOLEAN_TRUE, simply because that happens to be 0. This forces
GDB to assume the packet is supported, irrespective of what the target
claims it supports, just like if the user had done "set remote
foo-packet on" (this being the associated command, if there was one).
Ideally, all packet configs would have a command associated. While
that isn't true, make sure all packet configs are initialized, even if
no command is associated, and add an assertion that prevents adding
more packets/features without an associated command.
Tested on x86_64 Fedora 17, against pristine gdbserver, and against a
gdbserver with the QNonStop packet/feature disabled with a local hack.
gdb/
2014-04-29 Pedro Alves <palves@redhat.com>
* remote.c (struct packet_config) <detect>: Extend comment.
(add_packet_config_cmd): Don't set the config's detect or support
fields here.
(init_all_packet_configs): Also initialize the config's 'detect'
field.
(reset_all_packet_configs_support): New function.
(remote_open_1): Call reset_all_packet_configs_support instead of
init_all_packet_configs.
(_initialize_remote): Initialize all packet configs. Assert that
all packets have an associated command, except a few known
outliers.
2014-04-29 13:01:27 +00:00
|
|
|
|
2014-04-29 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* remote.c (struct packet_config) <detect>: Extend comment.
|
|
|
|
|
(add_packet_config_cmd): Don't set the config's detect or support
|
|
|
|
|
fields here.
|
|
|
|
|
(init_all_packet_configs): Also initialize the config's 'detect'
|
|
|
|
|
field.
|
|
|
|
|
(reset_all_packet_configs_support): New function.
|
|
|
|
|
(remote_open_1): Call reset_all_packet_configs_support instead of
|
|
|
|
|
init_all_packet_configs.
|
|
|
|
|
(_initialize_remote): Initialize all packet configs. Assert that
|
|
|
|
|
all packets have an associated command, except a few known
|
|
|
|
|
outliers.
|
|
|
|
|
|
dwarf2read.c::read_subrange_type: Handle dynamic lower bounds
Currently, read_subrange_type handles dynamicity only in the case of
the upper bound, and assumes that the lower bound is always static.
That's rooted in the fact that dynamicity was added to support C99
variable-length arrays, where the lower bound is always zero, and
therefore never dynamic. But the lower bound can, in fact, be dynamic
in other languages such as Ada.
Consider for instance the following declaration in Ada...
type Array_Type is array (L .. U) of Natural;
... where L and U are parameters of the function where the declaration
above was made, and whose value are 5 and 10. Currently, the debugger
is able to print the value of the upper bound correctly, but not the
lower bound:
(gdb) ptype array_type
type = array (1 .. 10) of natural
After this patch, the debugger now prints:
(gdb) ptype array_type
type = array (5 .. 10) of natural
gdb/ChangeLog:
* dwarf2read.c (read_subrange_type): Handle dynamic
DW_AT_lower_bound attributes.
2014-04-20 03:41:56 +00:00
|
|
|
|
2014-04-28 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* dwarf2read.c (read_subrange_type): Handle dynamic
|
|
|
|
|
DW_AT_lower_bound attributes.
|
|
|
|
|
|
2014-04-19 16:55:14 +00:00
|
|
|
|
2014-04-28 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* ada-lang.c (ada_discrete_type_high_bound): Resolve the type's
|
|
|
|
|
dynamic bounds before computing its upper bound.
|
|
|
|
|
(ada_discrete_type_low_bound): Same as above with the lower bound.
|
|
|
|
|
|
2014-04-19 16:40:53 +00:00
|
|
|
|
2014-04-28 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* dwarf2read.c (is_dynamic_type): Return true for dynamic
|
|
|
|
|
range types. Adjust the array handling implementation to
|
|
|
|
|
take advantage of this change.
|
|
|
|
|
(resolve_dynamic_range): New function, mostly extracted from
|
|
|
|
|
resolve_dynamic_bounds.
|
|
|
|
|
(resolve_dynamic_array): New function, mostly extracted from
|
|
|
|
|
resolve_dynamic_bounds.
|
|
|
|
|
(resolve_dynamic_bounds): Delete.
|
|
|
|
|
(resolve_dynamic_type): Reimplement. Add handling of
|
|
|
|
|
TYPE_CODE_RANGE types.
|
|
|
|
|
|
2014-04-24 16:09:11 +00:00
|
|
|
|
2014-04-28 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* ada-varobj.c (ada_varobj_describe_simple_array_child): Remove
|
|
|
|
|
handling of parallel ___XA types.
|
|
|
|
|
|
2014-03-18 17:52:08 +00:00
|
|
|
|
2014-04-28 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* ada-lang.c (ada_evaluate_subexp) <OP_VAR_VALUE>: Remove
|
|
|
|
|
unnecessary second call to static_unwrap_type.
|
|
|
|
|
|
2014-04-27 14:23:43 +00:00
|
|
|
|
2014-04-27 Hui Zhu <hui@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* stack.c (print_frame_info): Call do_gdb_disassembly with
|
|
|
|
|
DUMMY_FRAME, SIGTRAMP_FRAME and ARCH_FRAME.
|
|
|
|
|
|
2014-04-26 20:13:13 +00:00
|
|
|
|
2014-04-26 Doug Evans <xdje42@gmail.com>
|
|
|
|
|
|
|
|
|
|
* guile/scm-safe-call.c (scscm_eval_scheme_string): Fix comment.
|
|
|
|
|
|
PR server/16255: gdbserver cannot attach to a second inferior that is multi-threaded.
On Linux, we need to explicitly ptrace attach to all lwps of a
process. Because GDB might not be connected yet when an attach is
requested, and thus it may not be possible to activate thread_db, as
that requires access to symbols (IOW, gdbserver --attach), a while ago
we make linux_attach loop over the lwps as listed by /proc/PID/task to
find the lwps to attach to.
linux_attach_lwp_1 has:
...
if (initial)
/* If lwp is the tgid, we handle adding existing threads later.
Otherwise we just add lwp without bothering about any other
threads. */
ptid = ptid_build (lwpid, lwpid, 0);
else
{
/* Note that extracting the pid from the current inferior is
safe, since we're always called in the context of the same
process as this new thread. */
int pid = pid_of (current_inferior);
ptid = ptid_build (pid, lwpid, 0);
}
That "safe" comment referred to linux_attach_lwp being called by
thread-db.c. But this was clearly missed when a new call to
linux_attach_lwp_1 was added to linux_attach. As a result,
current_inferior will be set to some random process, and non-initial
lwps of the second inferior get assigned the pid of the wrong
inferior. E.g., in the case of attaching to two inferiors, for the
second inferior (and so on), non-initial lwps of the second inferior
get assigned the pid of the first inferior. This doesn't trigger on
the first inferior, when current_inferior is NULL, add_thread switches
the current inferior to the newly added thread.
Rather than making linux_attach switch current_inferior temporarily
(thus avoiding further reliance on global state), or making
linux_attach_lwp_1 get the tgid from /proc, which add extra syscalls,
and will be wrong in case of the user having originally attached
directly to a non-tgid lwp, and then that lwp spawning new clones (the
ptid.pid field of further new clones should be the same as the
original lwp's pid, which is not the tgid), we note that callers of
linux_attach_lwp/linux_attach_lwp_1 always have the right pid handy
already, so they can pass it down along with the lwpid.
The only other reason for the "initial" parameter is to error out
instead of warn in case of attach failure, when we're first attaching
to a process. There are only three callers of
linux_attach_lwp/linux_attach_lwp_1, and each wants to print a
different warn/error string, so we can just move the error/warn out of
linux_attach_lwp_1 to the callers, thus getting rid of the "initial"
parameter.
There really nothing gdbserver-specific about attaching to two
threaded processes, so this adds a new test under gdb.multi/. The
test passes cleanly against the native GNU/Linux target, but
fails/triggers the bug against GDBserver (before the patch), with the
native-extended-remote board (as plain remote doesn't support
multi-process).
Tested on x86_64 Fedora 17, with the native-extended-gdbserver board.
gdb/gdbserver/
2014-04-25 Pedro Alves <palves@redhat.com>
PR server/16255
* linux-low.c (linux_attach_fail_reason_string): New function.
(linux_attach_lwp): Delete.
(linux_attach_lwp_1): Rename to ...
(linux_attach_lwp): ... this. Take a ptid instead of a pid as
argument. Remove "initial" parameter. Return int instead of
void. Don't error or warn here.
(linux_attach): Adjust to call linux_attach_lwp. Call error on
failure to attach to the tgid. Call warning when failing to
attach to an lwp.
* linux-low.h (linux_attach_lwp): Take a ptid instead of a pid as
argument. Remove "initial" parameter. Return int instead of
void. Don't error or warn here.
(linux_attach_fail_reason_string): New declaration.
* thread-db.c (attach_thread): Adjust to linux_attach_lwp's
interface change. Use linux_attach_fail_reason_string.
gdb/
2014-04-25 Pedro Alves <palves@redhat.com>
PR server/16255
* common/linux-ptrace.c (linux_ptrace_attach_warnings): Rename to ...
(linux_ptrace_attach_fail_reason): ... this. Remove "warning: "
and newline from built string.
* common/linux-ptrace.h (linux_ptrace_attach_warnings): Rename to ...
(linux_ptrace_attach_fail_reason): ... this.
* linux-nat.c (linux_nat_attach): Adjust to use
linux_ptrace_attach_fail_reason.
gdb/testsuite/
2014-04-25 Simon Marchi <simon.marchi@ericsson.com>
Pedro Alves <palves@redhat.com>
PR server/16255
* gdb.multi/multi-attach.c: New file.
* gdb.multi/multi-attach.exp: New file.
2014-04-25 18:07:33 +00:00
|
|
|
|
2014-04-25 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR server/16255
|
|
|
|
|
* common/linux-ptrace.c (linux_ptrace_attach_warnings): Rename to ...
|
|
|
|
|
(linux_ptrace_attach_fail_reason): ... this. Remove "warning: "
|
|
|
|
|
and newline from built string.
|
|
|
|
|
* common/linux-ptrace.h (linux_ptrace_attach_warnings): Rename to ...
|
|
|
|
|
(linux_ptrace_attach_fail_reason): ... this.
|
|
|
|
|
* linux-nat.c (linux_nat_attach): Adjust to use
|
|
|
|
|
linux_ptrace_attach_fail_reason.
|
|
|
|
|
|
Fix several "set remote foo-packet on/off" commands.
For several RSP packets, there's a corresponding "set remote
foo-packet on/off/auto" command that one can use do bypass
auto-detection of support for the packet or feature. However, I
noticed that setting several of these commands to 'on' or 'off'
doesn't actually have any effect. These are, at least:
set remote breakpoint-commands-packet
set remote conditional-breakpoints-packet
set remote fast-tracepoints-packet
set remote static-tracepoints-packet
set remote install-in-trace-packet
These are commands that control a remote protocol feature that doesn't
have a corresponding regular packet, and because of that we cache the
knowledge of the remote side support as returned by the qSupported
packet in the remote_state object.
E.g., in the case of the 'set remote breakpoint-commands-packet'
command, whether the feature is supported is recorded in the
'breakpoint_commands' field of the remote_state object.
Whether to bypass packet support auto-detection or not is controlled
by the 'detect' field of the corresponding packet's packet_config
structure. That field is the variable associated directly with the
"set remote foo-packet" command. Actual remote stub support for the
packet (or feature) is recorded in the 'support' field of the same
structure.
However, when the user toggles the command, the 'support' field is
also correspondingly updated to PACKET_ENABLE/DISABLE/SUPPORT_UNKNOWN,
discarding the knowledge of whether the target actually supports the
feature. If one toggles back to 'auto', it's no big issue for real
packets, as they'll just end up re-probed the next time they might be
necessary. But features whose support is only reported through
qSupported don't get their corresponding (manually added/maintained)
fields in remote_state objected updated. As we lost the actual status
of the target support for the feature, GDB would need to probe the
qSupported features again, which GDB doesn't do.
But we can avoid that extra traffic, and clean things up, IMO.
Instead of going in that direction, this patch completely decouples
struct packet_config's 'detect' and 'support' fields. E.g., when the
user does "set remote foo-packet off", instead of setting the packet
config's 'support' field to PACKET_DISABLE, the 'support' field is not
touched at all anymore. That is, we end up respecting this simple
table:
| packet_config->detect | packet_config->support | should use packet/feature? |
|-----------------------+------------------------+----------------------------|
| auto | PACKET_ENABLE | PACKET_ENABLE |
| auto | PACKET_DISABLE | PACKET_DISABLE |
| auto | PACKET_UNKNOWN | PACKET_UNKNOWN |
| yes | don't care | PACKET_ENABLE |
| no | don't care | PACKET_DISABLE |
This is implemented by the new packet_support function. With that, we
need to update this pattern throughout:
if (remote_protocol_packets[PACKET_foo].support == PACKET_DISABLE)
to do this instead:
if (packet_support (PACKET_qAttached) == PACKET_DISABLE)
where as mentioned, the packet_support function takes struct
packet_config's 'detect' field into account, like in the table above.
As when the packet is force-disabled or force-enabled, the 'support'
field is just ignored, if the command is set back to auto, we'll
resume respecting whatever the target said it supports. IOW, the end
result is that the 'support' field always represents whether the
target actually supports the packet or not.
After all that, the manually maintained breakpoint_commands and
equivalent fields of struct remote_state can then be eliminated, with
references replaced by checking the result of calling the
packet_support function on the corresponding packet or feature. This
required adding new PACKET_foo enum values for several features that
didn't have it yet. (The patch does not add corresponding "set remote
foo-packet" style commands though, focusing only on bug fixing and
laying the groundwork).
Tested on x86_64 Fedora 17, native GDBserver. The new tests all fail
without this patch.
gdb/
2014-04-25 Pedro Alves <palves@redhat.com>
* remote.c (struct remote_state): Remove multi_process_aware,
non_stop_aware, cond_tracepoints, cond_breakpoints,
breakpoint_commands, fast_tracepoints, static_tracepoints,
install_in_trace, disconnected_tracing,
enable_disable_tracepoints, string_tracing, and
augmented_libraries_svr4_read fields.
(remote_multi_process_p): Move further below in the file.
(struct packet_config): Add comments.
(update_packet_config): Delete function.
(show_packet_config_cmd): Use packet_config_support.
(add_packet_config_cmd): Use NULL as set callback.
(packet_ok): "set remote foo-packet"-style commands no longer
change config->supported -- adjust.
(PACKET_ConditionalTracepoints, PACKET_ConditionalBreakpoints)
(PACKET_BreakpointCommands, PACKET_FastTracepoints)
(PACKET_StaticTracepoints, PACKET_InstallInTrace): Add comments.
(PACKET_QNonStop, PACKET_multiprocess_feature)
(PACKET_EnableDisableTracepoints_feature, PACKET_tracenz_feature)
(PACKET_DisconnectedTracing_feature)
(PACKET_augmented_libraries_svr4_read_feature): New enum values.
(set_remote_protocol_packet_cmd): Delete function.
(packet_config_support, packet_support): New functions.
(set_remote_protocol_Z_packet_cmd): Don't call
update_packet_config.
(remote_query_attached, remote_pass_signals)
(remote_program_signals, remote_threads_info)
(remote_threads_extra_info, remote_start_remote): Use
packet_support.
(remote_start_remote): Use packet_config_support and
packet_support.
(init_all_packet_configs): Set all packets to unknown support,
instead of calling update_packet_config.
(remote_check_symbols): Use packet_support.
(remote_supported_packet): Unconditionally set the packet config's
support status.
(remote_multi_process_feature, remote_non_stop_feature)
(remote_cond_tracepoint_feature, remote_cond_breakpoint_feature)
(remote_breakpoint_commands_feature)
(remote_fast_tracepoint_feature, remote_static_tracepoint_feature)
(remote_install_in_trace_feature)
(remote_disconnected_tracing_feature)
(remote_enable_disable_tracepoint_feature)
(remote_string_tracing_feature)
(remote_augmented_libraries_svr4_read_feature): Delete functions.
(remote_protocol_features): Adjust to use remote_supported_packet
for "augmented-libraries-svr4-read", "multiprocess", "QNonStop",
"ConditionalTracepoints", "ConditionalBreakpoints",
"BreakpointCommands", "FastTracepoints", "StaticTracepoints",
"InstallInTrace", "DisconnectedTracing", "DisconnectedTracing",
"EnableDisableTracepoints", and "tracenz".
(remote_query_supported): Use packet_support.
(remote_open_1): Adjust.
(extended_remote_attach_1): Use packet_support. Switch on the
result of packet_ok instead of checking whether the packet ended
up disabled.
(remote_vcont_resume): Use packet_support.
(remote_resume, remote_stop_ns, fetch_register_using_p)
(remote_prepare_to_store, store_register_using_P)
(check_binary_download, remote_write_bytes): Use packet_support.
(remote_vkill): Use packet_support. Switch on the result of
packet_ok instead of checking whether the packet ended up
disabled.
(extended_remote_supports_disable_randomization): Use
packet_support.
(extended_remote_run): Switch on the result of packet_ok instead
of checking whether the packet ended up disabled.
(remote_insert_breakpoint, remote_remove_breakpoint)
(remote_insert_watchpoint, remote_remove_watchpoint)
(remote_insert_hw_breakpoint, remote_remove_hw_breakpoint): Use
packet_support.
(remote_search_memory): Use packet_config_support.
(remote_get_thread_local_address, remote_get_tib_address)
(remote_hostio_send_command, remote_can_execute_reverse): Use
packet_support.
(remote_supports_cond_tracepoints)
(remote_supports_cond_breakpoints)
(remote_supports_fast_tracepoints)
(remote_supports_static_tracepoints)
(remote_supports_install_in_trace)
(remote_supports_enable_disable_tracepoint)
(remote_supports_string_tracing)
(remote_can_run_breakpoint_commands): Rewrite, checking whether
the packet config says the feature is enabled or disabled.
(remote_download_tracepoint, remote_trace_set_readonly_regions)
(remote_get_trace_status): Use packet_support.
(remote_set_disconnected_tracing): Adjust to check whether the
feature is enabled with packet_support.
(remote_set_trace_buffer_size, remote_use_agent)
(remote_can_use_agent, remote_supports_btrace): Use
packet_support.
(remote_enable_btrace, remote_disable_btrace, remote_read_btrace):
Use packet_config_support.
(remote_augmented_libraries_svr4_read): Rewrite, checking whether
the packet config says the feature is enabled or disabled.
(set_range_stepping): Use packet_support.
gdb/testsuite/
2014-04-25 Pedro Alves <palves@redhat.com>
* gdb.base/cond-eval-mode.exp (warning): Move trailing \r\n to
user.
(top level): Test that "set remote conditional-breakpoints-packet
off" works as intended.
* gdb.base/dprintf.exp: Test that "set remote
breakpoint-commands-packet off" works as intended.
* gdb.trace/change-loc.exp (tracepoint_install_in_trace_disabled):
New function.
(top level): Call it.
* gdb.trace/ftrace.exp (test_fast_tracepoints): Test that "set
remote fast-tracepoints-packet off" works as intended.
* gdb.trace/qtro.exp (gdb_is_target_remote): Moved ...
* lib/gdb.exp (gdb_is_target_remote): ... here.
2014-04-25 17:07:02 +00:00
|
|
|
|
2014-04-25 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* remote.c (struct remote_state): Remove multi_process_aware,
|
|
|
|
|
non_stop_aware, cond_tracepoints, cond_breakpoints,
|
|
|
|
|
breakpoint_commands, fast_tracepoints, static_tracepoints,
|
|
|
|
|
install_in_trace, disconnected_tracing,
|
|
|
|
|
enable_disable_tracepoints, string_tracing, and
|
|
|
|
|
augmented_libraries_svr4_read fields.
|
|
|
|
|
(remote_multi_process_p): Move further below in the file.
|
|
|
|
|
(struct packet_config): Add comments.
|
|
|
|
|
(update_packet_config): Delete function.
|
|
|
|
|
(show_packet_config_cmd): Use packet_config_support.
|
|
|
|
|
(add_packet_config_cmd): Use NULL as set callback.
|
|
|
|
|
(packet_ok): "set remote foo-packet"-style commands no longer
|
|
|
|
|
change config->supported -- adjust.
|
|
|
|
|
(PACKET_ConditionalTracepoints, PACKET_ConditionalBreakpoints)
|
|
|
|
|
(PACKET_BreakpointCommands, PACKET_FastTracepoints)
|
|
|
|
|
(PACKET_StaticTracepoints, PACKET_InstallInTrace): Add comments.
|
|
|
|
|
(PACKET_QNonStop, PACKET_multiprocess_feature)
|
|
|
|
|
(PACKET_EnableDisableTracepoints_feature, PACKET_tracenz_feature)
|
|
|
|
|
(PACKET_DisconnectedTracing_feature)
|
|
|
|
|
(PACKET_augmented_libraries_svr4_read_feature): New enum values.
|
|
|
|
|
(set_remote_protocol_packet_cmd): Delete function.
|
|
|
|
|
(packet_config_support, packet_support): New functions.
|
|
|
|
|
(set_remote_protocol_Z_packet_cmd): Don't call
|
|
|
|
|
update_packet_config.
|
|
|
|
|
(remote_query_attached, remote_pass_signals)
|
|
|
|
|
(remote_program_signals, remote_threads_info)
|
|
|
|
|
(remote_threads_extra_info, remote_start_remote): Use
|
|
|
|
|
packet_support.
|
|
|
|
|
(remote_start_remote): Use packet_config_support and
|
|
|
|
|
packet_support.
|
|
|
|
|
(init_all_packet_configs): Set all packets to unknown support,
|
|
|
|
|
instead of calling update_packet_config.
|
|
|
|
|
(remote_check_symbols): Use packet_support.
|
|
|
|
|
(remote_supported_packet): Unconditionally set the packet config's
|
|
|
|
|
support status.
|
|
|
|
|
(remote_multi_process_feature, remote_non_stop_feature)
|
|
|
|
|
(remote_cond_tracepoint_feature, remote_cond_breakpoint_feature)
|
|
|
|
|
(remote_breakpoint_commands_feature)
|
|
|
|
|
(remote_fast_tracepoint_feature, remote_static_tracepoint_feature)
|
|
|
|
|
(remote_install_in_trace_feature)
|
|
|
|
|
(remote_disconnected_tracing_feature)
|
|
|
|
|
(remote_enable_disable_tracepoint_feature)
|
|
|
|
|
(remote_string_tracing_feature)
|
|
|
|
|
(remote_augmented_libraries_svr4_read_feature): Delete functions.
|
|
|
|
|
(remote_protocol_features): Adjust to use remote_supported_packet
|
|
|
|
|
for "augmented-libraries-svr4-read", "multiprocess", "QNonStop",
|
|
|
|
|
"ConditionalTracepoints", "ConditionalBreakpoints",
|
|
|
|
|
"BreakpointCommands", "FastTracepoints", "StaticTracepoints",
|
|
|
|
|
"InstallInTrace", "DisconnectedTracing", "DisconnectedTracing",
|
|
|
|
|
"EnableDisableTracepoints", and "tracenz".
|
|
|
|
|
(remote_query_supported): Use packet_support.
|
|
|
|
|
(remote_open_1): Adjust.
|
|
|
|
|
(extended_remote_attach_1): Use packet_support. Switch on the
|
|
|
|
|
result of packet_ok instead of checking whether the packet ended
|
|
|
|
|
up disabled.
|
|
|
|
|
(remote_vcont_resume): Use packet_support.
|
|
|
|
|
(remote_resume, remote_stop_ns, fetch_register_using_p)
|
|
|
|
|
(remote_prepare_to_store, store_register_using_P)
|
|
|
|
|
(check_binary_download, remote_write_bytes): Use packet_support.
|
|
|
|
|
(remote_vkill): Use packet_support. Switch on the result of
|
|
|
|
|
packet_ok instead of checking whether the packet ended up
|
|
|
|
|
disabled.
|
|
|
|
|
(extended_remote_supports_disable_randomization): Use
|
|
|
|
|
packet_support.
|
|
|
|
|
(extended_remote_run): Switch on the result of packet_ok instead
|
|
|
|
|
of checking whether the packet ended up disabled.
|
|
|
|
|
(remote_insert_breakpoint, remote_remove_breakpoint)
|
|
|
|
|
(remote_insert_watchpoint, remote_remove_watchpoint)
|
|
|
|
|
(remote_insert_hw_breakpoint, remote_remove_hw_breakpoint): Use
|
|
|
|
|
packet_support.
|
|
|
|
|
(remote_search_memory): Use packet_config_support.
|
|
|
|
|
(remote_get_thread_local_address, remote_get_tib_address)
|
|
|
|
|
(remote_hostio_send_command, remote_can_execute_reverse): Use
|
|
|
|
|
packet_support.
|
|
|
|
|
(remote_supports_cond_tracepoints)
|
|
|
|
|
(remote_supports_cond_breakpoints)
|
|
|
|
|
(remote_supports_fast_tracepoints)
|
|
|
|
|
(remote_supports_static_tracepoints)
|
|
|
|
|
(remote_supports_install_in_trace)
|
|
|
|
|
(remote_supports_enable_disable_tracepoint)
|
|
|
|
|
(remote_supports_string_tracing)
|
|
|
|
|
(remote_can_run_breakpoint_commands): Rewrite, checking whether
|
|
|
|
|
the packet config says the feature is enabled or disabled.
|
|
|
|
|
(remote_download_tracepoint, remote_trace_set_readonly_regions)
|
|
|
|
|
(remote_get_trace_status): Use packet_support.
|
|
|
|
|
(remote_set_disconnected_tracing): Adjust to check whether the
|
|
|
|
|
feature is enabled with packet_support.
|
|
|
|
|
(remote_set_trace_buffer_size, remote_use_agent)
|
|
|
|
|
(remote_can_use_agent, remote_supports_btrace): Use
|
|
|
|
|
packet_support.
|
|
|
|
|
(remote_enable_btrace, remote_disable_btrace, remote_read_btrace):
|
|
|
|
|
Use packet_config_support.
|
|
|
|
|
(remote_augmented_libraries_svr4_read): Rewrite, checking whether
|
|
|
|
|
the packet config says the feature is enabled or disabled.
|
|
|
|
|
(set_range_stepping): Use packet_support.
|
|
|
|
|
|
2014-04-25 15:43:47 +00:00
|
|
|
|
2014-04-25 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* cli/cli-cmds.c (_initialize_cli_cmds): Document "quit" command's
|
|
|
|
|
argument.
|
|
|
|
|
|
2014-04-22 14:26:33 +00:00
|
|
|
|
2014-04-24 Sanimir Agovic <sanimir.agovic@intel.com>
|
|
|
|
|
|
|
|
|
|
* NEWS: Mention support for C99 variable length arrays.
|
|
|
|
|
|
2014-04-24 20:16:38 +00:00
|
|
|
|
2014-04-24 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* ada-lang.c (standard_exc): Expand introductory comment.
|
|
|
|
|
|
Add AVX512 registers support to GDB and GDBserver.
This patch adds support for the Intel(R) Advanced Vector
Extensions 512 (Intel(R) AVX-512) registers. Native and remote
debugging are covered by this patch.
Intel(R) AVX-512 is an extension to AVX to support 512-bit wide
SIMD registers in 64-bit mode (XMM0-XMM31, YMM0-YMM31, ZMM0-ZMM31).
The number of available registers in 32-bit mode is still 8
(XMM0-7, YMM0-7, ZMM0-7). The lower 256-bits of the ZMM registers
are aliased to the respective 256-bit YMM registers. The lower
128-bits are aliased to the respective 128-bit XMM registers.
There are also 8 new, dedicated mask registers (K0-K7) in both 32-bit
mode and 64-bit mode.
For more information please see
Intel(R) Developer Zone: Intel(R) AVX
http://software.intel.com/en-us/intel-isa-extensions#pid-16007-1495
Intel(R) Architecture Instruction Set Extensions Programming Reference:
http://software.intel.com/en-us/file/319433-017pdf
2014-04-24 Michael Sturm <michael.sturm@mintel.com>
Walfred Tedeschi <walfred.tedeschi@intel.com>
* amd64-linux-nat.c (amd64_linux_gregset32_reg_offset): Add
AVX512 registers.
(amd64_linux_read_description): Add code to handle AVX512 xstate
mask and return respective tdesc.
* amd64-linux-tdep.c: Include features/i386/amd64-avx512-linux.c
and features/i386/x32-avx512-linux.c.
(amd64_linux_gregset_reg_offset): Add AVX512 registers.
(amd64_linux_core_read_description): Add code to handle AVX512
xstate mask and return respective tdesc.
(_initialize_amd64_linux_tdep): Initialize AVX512 tdesc.
* amd64-linux-tdep.h (AMD64_LINUX_ORIG_RAX_REGNUM): Adjust regnum
calculation.
(AMD64_LINUX_NUM_REGS): Adjust to new number of registers.
(tdesc_amd64_avx512_linux): New prototype.
(tdesc_x32_avx512_linux): Likewise.
* amd64-tdep.c: Include features/i386/amd64-avx512.c and
features/i386/x32-avx512.c.
(amd64_ymm_avx512_names): New register names for pseudo
registers YMM16-31.
(amd64_ymmh_avx512_names): New register names for raw registers
YMMH16-31.
(amd64_k_names): New register names for K registers.
(amd64_zmmh_names): New register names for ZMM raw registers.
(amd64_zmm_names): New registers names for ZMM pseudo registers.
(amd64_xmm_avx512_names): New register names for XMM16-31
registers.
(amd64_pseudo_register_name): Add code to return AVX512 pseudo
registers.
(amd64_init_abi): Add code to intitialize AVX512 tdep variables
if feature is present.
(_initialize_amd64_tdep): Call AVX512 tdesc initializers.
* amd64-tdep.h (enum amd64_regnum): Add AVX512 registers.
(AMD64_NUM_REGS): Adjust to new number of registers.
* i386-linux-nat.c (GETXSTATEREGS_SUPPLIES): Extend range of
registers supplied via XSTATE by AVX512 registers.
(i386_linux_read_description): Add case for AVX512.
* i386-linux-tdep.c: Include i386-avx512-linux.c.
(i386_linux_gregset_reg_offset): Add AVX512 registers.
(i386_linux_core_read_description): Add case for AVX512.
(i386_linux_init_abi): Install supported register note section
for AVX512.
(_initialize_i386_linux_tdep): Add call to tdesc init function for
AVX512.
* i386-linux-tdep.h (I386_LINUX_NUM_REGS): Set number of
registers to be number of zmm7h + 1.
(tdesc_i386_avx512_linux): Add tdesc for AVX512 registers.
* i386-tdep.c: Include features/i386/i386-avx512.c.
(i386_zmm_names): Add ZMM pseudo register names array.
(i386_zmmh_names): Add ZMM raw register names array.
(i386_k_names): Add K raw register names array.
(num_lower_zmm_regs): Add constant for the number of lower ZMM
registers. AVX512 has 16 more ZMM registers than there are YMM
registers.
(i386_zmmh_regnum_p): Add function to look up register number of
ZMM raw registers.
(i386_zmm_regnum_p): Likewise for ZMM pseudo registers.
(i386_k_regnum_p): Likewise for K raw registers.
(i386_ymmh_avx512_regnum_p): Likewise for additional YMM raw
registers added by AVX512.
(i386_ymm_avx512_regnum_p): Likewise for additional YMM pseudo
registers added by AVX512.
(i386_xmm_avx512_regnum_p): Likewise for additional XMM registers
added by AVX512.
(i386_register_name): Add code to hide YMMH16-31 and ZMMH0-31.
(i386_pseudo_register_name): Add ZMM pseudo registers.
(i386_zmm_type): Construct and return vector registers type for ZMM
registers.
(i386_pseudo_register_type): Return appropriate type for YMM16-31,
ZMM0-31 pseudo registers and K registers.
(i386_pseudo_register_read_into_value): Add code to read K, ZMM
and YMM16-31 registers from register cache.
(i386_pseudo_register_write): Add code to write K, ZMM and
YMM16-31 registers.
(i386_register_reggroup_p): Add code to include/exclude AVX512
registers in/from respective register groups.
(i386_validate_tdesc_p): Handle AVX512 feature, add AVX512
registers if feature is present in xcr0.
(i386_gdbarch_init): Add code to initialize AVX512 feature
variables in tdep structure, wire in pseudo registers and call
initialize_tdesc_i386_avx512.
* i386-tdep.h (struct gdbarch_tdep): Add AVX512 related
variables.
(i386_regnum): Add AVX512 registers.
(I386_SSE_NUM_REGS): New define for number of SSE registers.
(I386_AVX_NUM_REGS): Likewise for AVX registers.
(I386_AVX512_NUM_REGS): Likewise for AVX512 registers.
(I386_MAX_REGISTER_SIZE): Change to 64 bytes, ZMM registers are
512 bits wide.
(i386_xmm_avx512_regnum_p): New prototype for register look up.
(i386_ymm_avx512_regnum_p): Likewise.
(i386_k_regnum_p): Likewise.
(i386_zmm_regnum_p): Likewise.
(i386_zmmh_regnum_p): Likewise.
* i387-tdep.c : Update year in copyright notice.
(xsave_ymm_avx512_offset): New table for YMM16-31 offsets in
XSAVE buffer.
(XSAVE_YMM_AVX512_ADDR): New macro.
(xsave_xmm_avx512_offset): New table for XMM16-31 offsets in
XSAVE buffer.
(XSAVE_XMM_AVX512_ADDR): New macro.
(xsave_avx512_k_offset): New table for K register offsets in
XSAVE buffer.
(XSAVE_AVX512_K_ADDR): New macro.
(xsave_avx512_zmm_h_offset): New table for ZMM register offsets
in XSAVE buffer.
(XSAVE_AVX512_ZMM_H_ADDR): New macro.
(i387_supply_xsave): Add code to supply AVX512 registers to XSAVE
buffer.
(i387_collect_xsave): Add code to collect AVX512 registers from
XSAVE buffer.
* i387-tdep.h (I387_NUM_XMM_AVX512_REGS): New define for number
of XMM16-31 registers.
(I387_NUM_K_REGS): New define for number of K registers.
(I387_K0_REGNUM): New define for K0 register number.
(I387_NUM_ZMMH_REGS): New define for number of ZMMH registers.
(I387_ZMM0H_REGNUM): New define for ZMM0H register number.
(I387_NUM_YMM_AVX512_REGS): New define for number of YMM16-31
registers.
(I387_YMM16H_REGNUM): New define for YMM16H register number.
(I387_XMM16_REGNUM): New define for XMM16 register number.
(I387_YMM0_REGNUM): New define for YMM0 register number.
(I387_KEND_REGNUM): New define for last K register number.
(I387_ZMMENDH_REGNUM): New define for last ZMMH register number.
(I387_YMMH_AVX512_END_REGNUM): New define for YMM31 register
number.
(I387_XMM_AVX512_END_REGNUM): New define for XMM31 register
number.
* common/i386-xstate.h: Add AVX 3.1 feature bits, mask and XSTATE
size.
* features/Makefile: Add AVX512 related files.
* features/i386/32bit-avx512.xml: New file.
* features/i386/64bit-avx512.xml: Likewise.
* features/i386/amd64-avx512-linux.c: Likewise.
* features/i386/amd64-avx512-linux.xml: Likewise.
* features/i386/amd64-avx512.c: Likewise.
* features/i386/amd64-avx512.xml: Likewise.
* features/i386/i386-avx512-linux.c: Likewise.
* features/i386/i386-avx512-linux.xml: Likewise.
* features/i386/i386-avx512.c: Likewise.
* features/i386/i386-avx512.xml: Likewise.
* features/i386/x32-avx512-linux.c: Likewise.
* features/i386/x32-avx512-linux.xml: Likewise.
* features/i386/x32-avx512.c: Likewise.
* features/i386/x32-avx512.xml: Likewise.
* regformats/i386/amd64-avx512-linux.dat: New file.
* regformats/i386/amd64-avx512.dat: Likewise.
* regformats/i386/i386-avx512-linux.dat: Likewise.
* regformats/i386/i386-avx512.dat: Likewise.
* regformats/i386/x32-avx512-linux.dat: Likewise.
* regformats/i386/x32-avx512.dat: Likewise.
* NEWS: Add note about new support for AVX512.
testsuite/
* Makefile.in (EXECUTABLES): Added i386-avx512.
* gdb.arch/i386-avx512.c: New file.
* gdb.arch/i386-avx512.exp: Likewise.
gdbserver/
* Makefile.in: Added rules to handle new files
i386-avx512.c i386-avx512-linux.c amd64-avx512.c
amd64-avx512-linux.c x32-avx512.c x32-avx512-linux.c.
* configure.srv (srv_i386_regobj): Add i386-avx512.o.
(srv_i386_linux_regobj): Add i386-avx512-linux.o.
(srv_amd64_regobj): Add amd64-avx512.o and x32-avx512.o.
(srv_amd64_linux_regobj): Add amd64-avx512-linux.o and
x32-avx512-linux.o.
(srv_i386_32bit_xmlfiles): Add i386/32bit-avx512.xml.
(srv_i386_64bit_xmlfiles): Add i386/64bit-avx512.xml.
(srv_amd64_xmlfiles): Add i386/amd64-avx512.xml and
i386/x32-avx512.xml.
(srv_i386_linux_xmlfiles): Add i386/i386-avx512-linux.xml.
(srv_amd64_linux_xmlfiles): Add i386/amd64-avx512-linux.xml and
i386/x32-avx512-linux.xml.
* i387-fp.c (num_avx512_k_registers): New constant for number
of K registers.
(num_avx512_zmmh_low_registers): New constant for number of
lower ZMM registers (0-15).
(num_avx512_zmmh_high_registers): New constant for number of
higher ZMM registers (16-31).
(num_avx512_ymmh_registers): New contant for number of higher
YMM registers (ymm16-31 added by avx521 on x86_64).
(num_avx512_xmm_registers): New constant for number of higher
XMM registers (xmm16-31 added by AVX512 on x86_64).
(struct i387_xsave): Add space for AVX512 registers.
(i387_cache_to_xsave): Change raw buffer size to 64 characters.
Add code to handle AVX512 registers.
(i387_xsave_to_cache): Add code to handle AVX512 registers.
* linux-x86-low.c (init_registers_amd64_avx512_linux): New
prototypei from generated file.
(tdesc_amd64_avx512_linux): Likewise.
(init_registers_x32_avx512_linux): Likewise.
(tdesc_x32_avx512_linux): Likewise.
(init_registers_i386_avx512_linux): Likewise.
(tdesc_i386_avx512_linux): Likewise.
(x86_64_regmap): Add AVX512 registers.
(x86_linux_read_description): Add code to handle AVX512 XSTATE
mask.
(initialize_low_arch): Add code to initialize AVX512 registers.
doc/
* gdb.texinfo (i386 Features): Add description of AVX512
registers.
Change-Id: Ifc4c08c76b85dbec18d02efdbe6182e851584438
Signed-off-by: Michael Sturm <michael.sturm@intel.com>
2013-12-16 15:43:05 +00:00
|
|
|
|
2014-04-24 Michael Sturm <michael.sturm@mintel.com>
|
|
|
|
|
Walfred Tedeschi <walfred.tedeschi@intel.com>
|
|
|
|
|
|
|
|
|
|
* amd64-linux-nat.c (amd64_linux_gregset32_reg_offset): Add
|
|
|
|
|
AVX512 registers.
|
|
|
|
|
(amd64_linux_read_description): Add code to handle AVX512 xstate
|
|
|
|
|
mask and return respective tdesc.
|
|
|
|
|
* amd64-linux-tdep.c: Include features/i386/amd64-avx512-linux.c
|
|
|
|
|
and features/i386/x32-avx512-linux.c.
|
|
|
|
|
(amd64_linux_gregset_reg_offset): Add AVX512 registers.
|
|
|
|
|
(amd64_linux_core_read_description): Add code to handle AVX512
|
|
|
|
|
xstate mask and return respective tdesc.
|
|
|
|
|
(_initialize_amd64_linux_tdep): Initialize AVX512 tdesc.
|
|
|
|
|
* amd64-linux-tdep.h (AMD64_LINUX_ORIG_RAX_REGNUM): Adjust regnum
|
|
|
|
|
calculation.
|
|
|
|
|
(AMD64_LINUX_NUM_REGS): Adjust to new number of registers.
|
|
|
|
|
(tdesc_amd64_avx512_linux): New prototype.
|
|
|
|
|
(tdesc_x32_avx512_linux): Likewise.
|
|
|
|
|
* amd64-tdep.c: Include features/i386/amd64-avx512.c and
|
|
|
|
|
features/i386/x32-avx512.c.
|
|
|
|
|
(amd64_ymm_avx512_names): New register names for pseudo
|
|
|
|
|
registers YMM16-31.
|
|
|
|
|
(amd64_ymmh_avx512_names): New register names for raw registers
|
|
|
|
|
YMMH16-31.
|
|
|
|
|
(amd64_k_names): New register names for K registers.
|
|
|
|
|
(amd64_zmmh_names): New register names for ZMM raw registers.
|
|
|
|
|
(amd64_zmm_names): New registers names for ZMM pseudo registers.
|
|
|
|
|
(amd64_xmm_avx512_names): New register names for XMM16-31
|
|
|
|
|
registers.
|
|
|
|
|
(amd64_pseudo_register_name): Add code to return AVX512 pseudo
|
|
|
|
|
registers.
|
|
|
|
|
(amd64_init_abi): Add code to intitialize AVX512 tdep variables
|
|
|
|
|
if feature is present.
|
|
|
|
|
(_initialize_amd64_tdep): Call AVX512 tdesc initializers.
|
|
|
|
|
* amd64-tdep.h (enum amd64_regnum): Add AVX512 registers.
|
|
|
|
|
(AMD64_NUM_REGS): Adjust to new number of registers.
|
|
|
|
|
* i386-linux-nat.c (GETXSTATEREGS_SUPPLIES): Extend range of
|
|
|
|
|
registers supplied via XSTATE by AVX512 registers.
|
|
|
|
|
(i386_linux_read_description): Add case for AVX512.
|
|
|
|
|
* i386-linux-tdep.c: Include i386-avx512-linux.c.
|
|
|
|
|
(i386_linux_gregset_reg_offset): Add AVX512 registers.
|
|
|
|
|
(i386_linux_core_read_description): Add case for AVX512.
|
|
|
|
|
(i386_linux_init_abi): Install supported register note section
|
|
|
|
|
for AVX512.
|
|
|
|
|
(_initialize_i386_linux_tdep): Add call to tdesc init function for
|
|
|
|
|
AVX512.
|
|
|
|
|
* i386-linux-tdep.h (I386_LINUX_NUM_REGS): Set number of
|
|
|
|
|
registers to be number of zmm7h + 1.
|
|
|
|
|
(tdesc_i386_avx512_linux): Add tdesc for AVX512 registers.
|
|
|
|
|
* i386-tdep.c: Include features/i386/i386-avx512.c.
|
|
|
|
|
(i386_zmm_names): Add ZMM pseudo register names array.
|
|
|
|
|
(i386_zmmh_names): Add ZMM raw register names array.
|
|
|
|
|
(i386_k_names): Add K raw register names array.
|
|
|
|
|
(num_lower_zmm_regs): Add constant for the number of lower ZMM
|
|
|
|
|
registers. AVX512 has 16 more ZMM registers than there are YMM
|
|
|
|
|
registers.
|
|
|
|
|
(i386_zmmh_regnum_p): Add function to look up register number of
|
|
|
|
|
ZMM raw registers.
|
|
|
|
|
(i386_zmm_regnum_p): Likewise for ZMM pseudo registers.
|
|
|
|
|
(i386_k_regnum_p): Likewise for K raw registers.
|
|
|
|
|
(i386_ymmh_avx512_regnum_p): Likewise for additional YMM raw
|
|
|
|
|
registers added by AVX512.
|
|
|
|
|
(i386_ymm_avx512_regnum_p): Likewise for additional YMM pseudo
|
|
|
|
|
registers added by AVX512.
|
|
|
|
|
(i386_xmm_avx512_regnum_p): Likewise for additional XMM registers
|
|
|
|
|
added by AVX512.
|
|
|
|
|
(i386_register_name): Add code to hide YMMH16-31 and ZMMH0-31.
|
|
|
|
|
(i386_pseudo_register_name): Add ZMM pseudo registers.
|
|
|
|
|
(i386_zmm_type): Construct and return vector registers type for ZMM
|
|
|
|
|
registers.
|
|
|
|
|
(i386_pseudo_register_type): Return appropriate type for YMM16-31,
|
|
|
|
|
ZMM0-31 pseudo registers and K registers.
|
|
|
|
|
(i386_pseudo_register_read_into_value): Add code to read K, ZMM
|
|
|
|
|
and YMM16-31 registers from register cache.
|
|
|
|
|
(i386_pseudo_register_write): Add code to write K, ZMM and
|
|
|
|
|
YMM16-31 registers.
|
|
|
|
|
(i386_register_reggroup_p): Add code to include/exclude AVX512
|
|
|
|
|
registers in/from respective register groups.
|
|
|
|
|
(i386_validate_tdesc_p): Handle AVX512 feature, add AVX512
|
|
|
|
|
registers if feature is present in xcr0.
|
|
|
|
|
(i386_gdbarch_init): Add code to initialize AVX512 feature
|
|
|
|
|
variables in tdep structure, wire in pseudo registers and call
|
|
|
|
|
initialize_tdesc_i386_avx512.
|
|
|
|
|
* i386-tdep.h (struct gdbarch_tdep): Add AVX512 related
|
|
|
|
|
variables.
|
|
|
|
|
(i386_regnum): Add AVX512 registers.
|
|
|
|
|
(I386_SSE_NUM_REGS): New define for number of SSE registers.
|
|
|
|
|
(I386_AVX_NUM_REGS): Likewise for AVX registers.
|
|
|
|
|
(I386_AVX512_NUM_REGS): Likewise for AVX512 registers.
|
|
|
|
|
(I386_MAX_REGISTER_SIZE): Change to 64 bytes, ZMM registers are
|
|
|
|
|
512 bits wide.
|
|
|
|
|
(i386_xmm_avx512_regnum_p): New prototype for register look up.
|
|
|
|
|
(i386_ymm_avx512_regnum_p): Likewise.
|
|
|
|
|
(i386_k_regnum_p): Likewise.
|
|
|
|
|
(i386_zmm_regnum_p): Likewise.
|
|
|
|
|
(i386_zmmh_regnum_p): Likewise.
|
|
|
|
|
* i387-tdep.c : Update year in copyright notice.
|
|
|
|
|
(xsave_ymm_avx512_offset): New table for YMM16-31 offsets in
|
|
|
|
|
XSAVE buffer.
|
|
|
|
|
(XSAVE_YMM_AVX512_ADDR): New macro.
|
|
|
|
|
(xsave_xmm_avx512_offset): New table for XMM16-31 offsets in
|
|
|
|
|
XSAVE buffer.
|
|
|
|
|
(XSAVE_XMM_AVX512_ADDR): New macro.
|
|
|
|
|
(xsave_avx512_k_offset): New table for K register offsets in
|
|
|
|
|
XSAVE buffer.
|
|
|
|
|
(XSAVE_AVX512_K_ADDR): New macro.
|
|
|
|
|
(xsave_avx512_zmm_h_offset): New table for ZMM register offsets
|
|
|
|
|
in XSAVE buffer.
|
|
|
|
|
(XSAVE_AVX512_ZMM_H_ADDR): New macro.
|
|
|
|
|
(i387_supply_xsave): Add code to supply AVX512 registers to XSAVE
|
|
|
|
|
buffer.
|
|
|
|
|
(i387_collect_xsave): Add code to collect AVX512 registers from
|
|
|
|
|
XSAVE buffer.
|
|
|
|
|
* i387-tdep.h (I387_NUM_XMM_AVX512_REGS): New define for number
|
|
|
|
|
of XMM16-31 registers.
|
|
|
|
|
(I387_NUM_K_REGS): New define for number of K registers.
|
|
|
|
|
(I387_K0_REGNUM): New define for K0 register number.
|
|
|
|
|
(I387_NUM_ZMMH_REGS): New define for number of ZMMH registers.
|
|
|
|
|
(I387_ZMM0H_REGNUM): New define for ZMM0H register number.
|
|
|
|
|
(I387_NUM_YMM_AVX512_REGS): New define for number of YMM16-31
|
|
|
|
|
registers.
|
|
|
|
|
(I387_YMM16H_REGNUM): New define for YMM16H register number.
|
|
|
|
|
(I387_XMM16_REGNUM): New define for XMM16 register number.
|
|
|
|
|
(I387_YMM0_REGNUM): New define for YMM0 register number.
|
|
|
|
|
(I387_KEND_REGNUM): New define for last K register number.
|
|
|
|
|
(I387_ZMMENDH_REGNUM): New define for last ZMMH register number.
|
|
|
|
|
(I387_YMMH_AVX512_END_REGNUM): New define for YMM31 register
|
|
|
|
|
number.
|
|
|
|
|
(I387_XMM_AVX512_END_REGNUM): New define for XMM31 register
|
|
|
|
|
number.
|
|
|
|
|
* common/i386-xstate.h: Add AVX 3.1 feature bits, mask and XSTATE
|
|
|
|
|
size.
|
|
|
|
|
* features/Makefile: Add AVX512 related files.
|
|
|
|
|
* features/i386/32bit-avx512.xml: New file.
|
|
|
|
|
* features/i386/64bit-avx512.xml: Likewise.
|
|
|
|
|
* features/i386/amd64-avx512-linux.c: Likewise.
|
|
|
|
|
* features/i386/amd64-avx512-linux.xml: Likewise.
|
|
|
|
|
* features/i386/amd64-avx512.c: Likewise.
|
|
|
|
|
* features/i386/amd64-avx512.xml: Likewise.
|
|
|
|
|
* features/i386/i386-avx512-linux.c: Likewise.
|
|
|
|
|
* features/i386/i386-avx512-linux.xml: Likewise.
|
|
|
|
|
* features/i386/i386-avx512.c: Likewise.
|
|
|
|
|
* features/i386/i386-avx512.xml: Likewise.
|
|
|
|
|
* features/i386/x32-avx512-linux.c: Likewise.
|
|
|
|
|
* features/i386/x32-avx512-linux.xml: Likewise.
|
|
|
|
|
* features/i386/x32-avx512.c: Likewise.
|
|
|
|
|
* features/i386/x32-avx512.xml: Likewise.
|
|
|
|
|
* regformats/i386/amd64-avx512-linux.dat: New file.
|
|
|
|
|
* regformats/i386/amd64-avx512.dat: Likewise.
|
|
|
|
|
* regformats/i386/i386-avx512-linux.dat: Likewise.
|
|
|
|
|
* regformats/i386/i386-avx512.dat: Likewise.
|
|
|
|
|
* regformats/i386/x32-avx512-linux.dat: Likewise.
|
|
|
|
|
* regformats/i386/x32-avx512.dat: Likewise.
|
|
|
|
|
* NEWS: Add note about new support for AVX512.
|
|
|
|
|
|
|
|
|
|
|
Stale breakpoint instructions, spurious SIGTRAPS.
Without the code portion of the patch, we get these failures:
FAIL: gdb.base/break-unload-file.exp: always-inserted on: break: continue
FAIL: gdb.base/break-unload-file.exp: always-inserted on: hbreak: continue
FAIL: gdb.base/sym-file.exp: stale bkpts: continue to breakpoint: end here
They all looks like random SIGTRAPs:
continue
Continuing.
Program received signal SIGTRAP, Trace/breakpoint trap.
0x0000000000400541 in foo () at ../../../src/gdb/testsuite/gdb.base/break-unload-file.c:21
21 }
(gdb) FAIL: gdb.base/break-unload-file.exp: always-inserted on: break: continue
(This is a regression caused by the remove-symbol-file command
series.)
break-unload-file.exp is about having breakpoints inserted, and then
doing "file". I caught this while writing a test that does "file
PROGRAM", while PROGRAM was already loaded, which internally does
"file" first, because I wanted to force a breakpoint_re_set, but the
test is more explicit in case GDB ever optimizes out that re-set.
The problem is that unloading the file with "file" ends up in
disable_breakpoints_in_freed_objfile, which marks all breakpoint
locations of the objfile as both shlib_disabled, _and_ clears the
inserted flag, without actually removing the breakpoints from the
inferior. Now, usually, in all-stop, breakpoints will already be
removed from the inferior before the user can issue the "file"
command, but, with non-stop, or breakpoints always-inserted on mode,
breakpoints stay inserted even while the user has the prompt. In the
latter case, then, if we let the program continue, and it executes the
address where we had previously set the breakpoint, it'll actually
execute the breakpoint instruction that we left behind...
Now, one issue is that the intent of
disable_breakpoints_in_freed_objfile is really to handle the unloading
of OBJF_USERLOADED objfiles. These are objfiles that were added with
add-symbol-file and that are removed with remove-symbol-file.
"add-symbol-file"'s docs in the manual clearly say these commands are
used to let GDB know about dynamically loaded code:
You would use this command when @var{filename} has been dynamically
loaded (by some other means) into the program that is running.
Similarly, the online help says:
(gdb) help add-symbol-file
Load symbols from FILE, assuming FILE has been dynamically loaded.
So it makes sense to, like when shared libraries are unloaded through
the generic solib machinery, mark the breakpoint locations as
shlib_disabled. But, the "file" command is not about dynamically
loaded code, it's about the main program. So the patch makes
disable_breakpoints_in_freed_objfile skip all objfiles but
OBJF_USERLOADED ones, thus skipping the main objfile.
Then, the reason that disable_breakpoints_in_freed_objfile was
clearing the inserted flag isn't clear, but likely to avoid breakpoint
removal errors, assuming remove-symbol-file was called after the
dynamic object was already unmapped from the inferior. In that case,
it'd okay to simply clear the inserted flag, but not so if the user
for example does remove-symbol-file to remove the library because he
made a mistake in the library's address, and wants to re-do
add-symbol-file with the correct address.
To address all that, I propose an alternative implementation, that
handles both cases. The patch includes changes to sym-file.exp to
cover them.
This implementation leaves the inserted flag alone, and handles
breakpoint insertion/removal failure gracefully when the locations are
in OBJF_USERLOADED objfiles, just like we handle insertion/removal
failure gracefully for locations in shared libraries.
To try to make sure we aren't patching back stale shadow memory
contents into the inferior, in case the program mapped a different
library at the same address where we had the breakpoint, without the
user having had a chance of remove-symbol-file'ing before, this adds a
new memory_validate_breakpoint function that checks if the breakpoint
instruction is still in memory. ppc_linux_memory_remove_breakpoint
does this unconditionally for all memory breakpoints, and questions
whether memory_remove_breakpoint should be changed to do this for all
breakpoints. Possibly yes, though I'm not certain, hence this
baby-steps patch.
Tested on x86_64 Fedora 17, native and gdbserver.
gdb/
2014-04-23 Pedro Alves <palves@redhat.com>
* breakpoint.c (insert_bp_location): Tolerate errors if the
breakpoint is set in a user-loaded objfile.
(remove_breakpoint_1): Likewise. Also tolerate errors if the
location is marked shlib_disabled. If the breakpoint is set in a
user-loaded objfile is a GDB-side memory breakpoint, validate it
before uninsertion. (disable_breakpoints_in_freed_objfile): Skip
non-OBJF_USERLOADED objfiles. Don't clear the location's inserted
flag.
* mem-break.c (memory_validate_breakpoint): New function.
* objfiles.c (userloaded_objfile_contains_address_p): New
function.
* objfiles.h (userloaded_objfile_contains_address_p): Declare.
* target.h (memory_validate_breakpoint): New declaration.
gdb/testsuite/
2014-04-23 Pedro Alves <palves@redhat.com>
* gdb.base/break-unload-file.c: New file.
* gdb.base/break-unload-file.exp: New file.
* gdb.base/sym-file-lib.c (baz): New function.
* gdb.base/sym-file-loader.c (struct segment) <mapped_size>: New
field.
(load): Store the segment's mapped size.
(unload): New function.
(unload_shlib): New function.
* gdb.base/sym-file-loader.h (unload_shlib): New declaration.
* gdb.base/sym-file-main.c (main): Unload, and reload the library,
set a breakpoint at baz, and call it.
* gdb.base/sym-file.exp: New tests for stale breakpoint
instructions.
2014-04-22 22:19:19 +00:00
|
|
|
|
2014-04-23 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* breakpoint.c (insert_bp_location): Tolerate errors if the
|
|
|
|
|
breakpoint is set in a user-loaded objfile.
|
|
|
|
|
(remove_breakpoint_1): Likewise. Also tolerate errors if the
|
|
|
|
|
location is marked shlib_disabled. If the breakpoint is set in a
|
|
|
|
|
user-loaded objfile is a GDB-side memory breakpoint, validate it
|
|
|
|
|
before uninsertion. (disable_breakpoints_in_freed_objfile): Skip
|
|
|
|
|
non-OBJF_USERLOADED objfiles. Don't clear the location's inserted
|
|
|
|
|
flag.
|
|
|
|
|
* mem-break.c (memory_validate_breakpoint): New function.
|
|
|
|
|
* objfiles.c (userloaded_objfile_contains_address_p): New
|
|
|
|
|
function.
|
|
|
|
|
* objfiles.h (userloaded_objfile_contains_address_p): Declare.
|
|
|
|
|
* target.h (memory_validate_breakpoint): New declaration.
|
|
|
|
|
|
Don't suppress errors inserting/removing hardware breakpoints in shared
libraries.
As explained in
https://sourceware.org/ml/gdb-patches/2008-08/msg00361.html, after a
shared library was unloaded, we can no longer insert or remove
breakpoints into/from its (no longer present) code segment. That'll
fail with memory errors. However, that concern does not apply to
hardware breakpoints. By definition, hardware breakpoints are
implemented using a mechanism that is not dependent on being able to
modify the target's memory. Usually, by setting up CPU debug
registers. IOW, we should be able to set hw breakpoints in an
unmapped address. We don't seem to have a test that exercises that,
so this patch adds one.
I noticed the error supression because of a related issue -- the
target_insert_hw_breakpoint/target_remove_hw_breakpoint interfaces
don't really distinguish "not supported" from "error" return, and so
remote.c returns -1 in both cases. This results in hardware
breakpoints set in shared libraries silently ending up pending forever
even though the target doesn't actually support hw breakpoints.
(gdb) set breakpoint always-inserted on
(gdb) set remote Z-packet off
(gdb) info breakpoints
No breakpoints or watchpoints.
(gdb) hbreak shrfunc
Hardware assisted breakpoint 3 at 0x7ffff7dfb657: file ../../../src/gdb/testsuite/gdb.base/hbreak-in-shr-unsupported-shr.c, line 21.
(gdb) info break
Num Type Disp Enb Address What
3 hw breakpoint keep y <PENDING> shrfunc
After the patch we get the expected:
(gdb) hbreak shrfunc
Hardware assisted breakpoint 3 at 0x7ffff7dfb657: file ../../../src/gdb/testsuite/gdb.base/hbreak-in-shr-unsupported-shr.c, line 21.
Warning:
Cannot insert hardware breakpoint 3.
Could not insert hardware breakpoints:
You may have requested too many hardware breakpoints/watchpoints.
(gdb) info break
Num Type Disp Enb Address What
3 hw breakpoint keep y 0x00007ffff7dfb657 in shrfunc at ../../../src/gdb/testsuite/gdb.base/hbreak-in-shr-unsupported-shr.c:21
(HW breakpoints set in the main executable, when the target doesn't
support HW breakpoints always resulted in the latter output.)
We probably should improve the insert/remove interface to return a
different error code for unsupported. But I chose to fix the error
supression first, as it's a deeper and wider issue.
Tested on x86_64 Fedora 17, native and gdbserver.
gdb/
2014-04-23 Pedro Alves <palves@redhat.com>
* breakpoint.c (insert_bp_location, remove_breakpoint_1): If
the breakpoint is set in a shared library, only suppress
errors for software breakpoints, not hardware breakpoints.
gdb/testsuite/
2014-04-23 Pedro Alves <palves@redhat.com>
* gdb.base/hbreak-in-shr-unsupported-shr.c: New file.
* gdb.base/hbreak-in-shr-unsupported.c: New file.
* gdb.base/hbreak-in-shr-unsupported.exp: New file.
* gdb.base/hbreak-unmapped.c: New file.
* gdb.base/hbreak-unmapped.exp: New file.
* gdb.trace/qtro.exp (gdb_is_target_remote): Move ...
* lib/gdb.exp (gdb_is_target_remote): ... here.
2014-04-23 14:06:47 +00:00
|
|
|
|
2014-04-23 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* breakpoint.c (insert_bp_location, remove_breakpoint_1): If
|
|
|
|
|
the breakpoint is set in a shared library, only suppress
|
|
|
|
|
errors for software breakpoints, not hardware breakpoints.
|
|
|
|
|
|
Consecutive step-overs trigger internal error.
If a thread trips on a breakpoint that needs stepping over just after
finishing a step over, GDB currently fails an assertion. This is a
regression caused by the "Handle multiple step-overs." patch
(99619beac6252113fed212fdb9e1ab97bface423) at
https://sourceware.org/ml/gdb-patches/2014-02/msg00765.html.
(gdb) x /4i $pc
=> 0x400540 <main+4>: movl $0x0,0x2003da(%rip) # 0x600924 <i>
0x40054a <main+14>: movl $0x1,0x2003d0(%rip) # 0x600924 <i>
0x400554 <main+24>: movl $0x2,0x2003c6(%rip) # 0x600924 <i>
0x40055e <main+34>: movl $0x3,0x2003bc(%rip) # 0x600924 <i>
(gdb) PASS: gdb.base/consecutive-step-over.exp: get breakpoint addresses
break *0x40054a
Breakpoint 2 at 0x40054a: file ../../../src/gdb/testsuite/gdb.base/consecutive-step-over.c, line 23.
(gdb) PASS: gdb.base/consecutive-step-over.exp: insn 1: set breakpoint
condition $bpnum condition
(gdb) PASS: gdb.base/consecutive-step-over.exp: insn 1: set condition
break *0x400554
Breakpoint 3 at 0x400554: file ../../../src/gdb/testsuite/gdb.base/consecutive-step-over.c, line 24.
(gdb) PASS: gdb.base/consecutive-step-over.exp: insn 2: set breakpoint
condition $bpnum condition
(gdb) PASS: gdb.base/consecutive-step-over.exp: insn 2: set condition
break *0x40055e
Breakpoint 4 at 0x40055e: file ../../../src/gdb/testsuite/gdb.base/consecutive-step-over.c, line 25.
(gdb) PASS: gdb.base/consecutive-step-over.exp: insn 3: set breakpoint
condition $bpnum condition
(gdb) PASS: gdb.base/consecutive-step-over.exp: insn 3: set condition
break 27
Breakpoint 5 at 0x400568: file ../../../src/gdb/testsuite/gdb.base/consecutive-step-over.c, line 27.
(gdb) continue
Continuing.
../../src/gdb/infrun.c:5200: internal-error: switch_back_to_stepped_thread: Assertion `!tp->control.trap_expected' failed.
A problem internal to GDB has been detected,
further debugging may prove unreliable.
FAIL: gdb.base/consecutive-step-over.exp: continue to breakpoint: break here (GDB internal error)
The assertion fails, because the code is not expecting that the event
thread itself might need another step over. IOW, not expecting that
TP in:
tp = find_thread_needs_step_over (stepping_thread != NULL,
stepping_thread);
could be the event thread.
A small fix for this would be to clear the event thread's
trap_expected earlier, before asserting. But looking deeper, although
currently_stepping_or_nexting_callback's intention is finding the
thread that is doing a step/next, it also returns the thread that is
doing a step-over dance, with trap_expected set. If there ever was a
reason for that (it was I who added
currently_stepping_or_nexting_callback , but I can't recall why I put
trap_expected there in the first place), the only remaining reason
nowadays is to aid in implementing switch_back_to_stepped_thread's
assertion that is now triggering, by piggybacking on the walk over all
threads, thus avoiding a separate walk. This is quite obscure, and I
think we can do even better, by merging the walks that look for the
stepping thread, and the walk that looks for some thread that might
need a step over.
Tested on x86_64 Fedora 17, native and gdbserver, and also native on
top of my "software single-step on x86_64" series.
gdb/
2014-04-22 Pedro Alves <palves@redhat.com>
* infrun.c (schedlock_applies): New function, factored out from
find_thread_needs_step_over.
(find_thread_needs_step_over): Use it.
(switch_back_to_stepped_thread): Always clear trap_expected if the
step over is finished. Return early if scheduler locking applies.
Look for the stepping thread and a potential step-over thread with
a single loop.
(currently_stepping_or_nexting_callback): Delete.
2014-04-22 Pedro Alves <palves@redhat.com>
* gdb.base/consecutive-step-over.c: New file.
* gdb.base/consecutive-step-over.exp: New file.
2014-04-22 14:00:56 +00:00
|
|
|
|
2014-04-22 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* infrun.c (schedlock_applies): New function, factored out from
|
|
|
|
|
find_thread_needs_step_over.
|
|
|
|
|
(find_thread_needs_step_over): Use it.
|
|
|
|
|
(switch_back_to_stepped_thread): Always clear trap_expected if the
|
|
|
|
|
step over is finished. Return early if scheduler locking applies.
|
|
|
|
|
Look for the stepping thread and a potential step-over thread with
|
|
|
|
|
a single loop.
|
|
|
|
|
(currently_stepping_or_nexting_callback): Delete.
|
|
|
|
|
|
2014-04-22 10:23:05 +00:00
|
|
|
|
2014-04-22 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* NEWS: Mention that ARM sim now supports tracing.
|
|
|
|
|
|
2014-04-18 11:32:01 +00:00
|
|
|
|
2014-04-22 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* tracefile-tfile.c (tfile_fetch_registers): Move the bottom
|
|
|
|
|
to ...
|
|
|
|
|
* tracefile.c (tracefile_fetch_registers): ... it. New
|
|
|
|
|
function.
|
|
|
|
|
* tracefile.h (tracefile_fetch_registers): Declare.
|
|
|
|
|
* ctf.c (ctf_fetch_registers): Remove the bottom. Call
|
|
|
|
|
tracefile_fetch_registers.
|
|
|
|
|
|
2014-04-19 08:12:19 +00:00
|
|
|
|
2014-04-19 Eli Zaretskii <eliz@gnu.org>
|
|
|
|
|
|
|
|
|
|
PR gdb/14018
|
|
|
|
|
* windows-nat.c (thread_rec): Don't display a warning when
|
|
|
|
|
SuspendThread fails with ERROR_ACCESS_DENIED. If SuspendThread
|
|
|
|
|
fails for any reason, set th->suspended to -1, so that we don't
|
|
|
|
|
try to resume such a thread. Also, don't return NULL in these
|
|
|
|
|
cases, to avoid completely ruin the session due to "PC register is
|
|
|
|
|
not available" error.
|
|
|
|
|
(do_windows_fetch_inferior_registers): Check errors in
|
|
|
|
|
GetThreadContext call.
|
|
|
|
|
(windows_continue): Accept an additional argument KILLED; if not
|
|
|
|
|
zero, ignore errors in the SetThreadContext call, since the
|
|
|
|
|
inferior was killed and is shutting down.
|
|
|
|
|
(windows_resume, get_windows_debug_event)
|
|
|
|
|
(windows_create_inferior, windows_mourn_inferior)
|
|
|
|
|
(windows_kill_inferior): All callers of windows_continue changed
|
|
|
|
|
to adjust to its new calling sequence.
|
|
|
|
|
|
2014-04-18 11:19:22 +00:00
|
|
|
|
2014-04-19 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* ctf.c (ctf_open): Call post_create_inferior.
|
|
|
|
|
|
2014-04-19 02:14:58 +00:00
|
|
|
|
2014-04-19 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* ctf.c (handle_id): New static variable.
|
|
|
|
|
(ctf_open_dir): Get handle_id from bt_context_add_trace return
|
|
|
|
|
value. Get the declaration of event "register" and get length
|
|
|
|
|
of field "contents".
|
|
|
|
|
|
2014-04-18 11:22:23 +00:00
|
|
|
|
2014-04-19 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* ctf.c (ctf_xfer_partial): Check 'name' is NULL before strcmp.
|
|
|
|
|
|
2014-03-03 13:08:47 +00:00
|
|
|
|
2014-04-18 Siva Chandra Reddy <sivachandra@google.com>
|
|
|
|
|
|
|
|
|
|
* valops.c (oload_method_static): Remove unnecessary argument
|
|
|
|
|
METHOD. Update all callers.
|
|
|
|
|
|
Fix PR backtrace/15558
This PR is about an assertion failure in GDB that can be triggered by
setting "backtrace limit" to a value that causes GDB to stop unwinding
after an inline frame. In this case, an assertion in
inline_frame_this_id will trigger:
/* We need a valid frame ID, so we need to be based on a valid
frame. (...). */
gdb_assert (frame_id_p (*this_id));
Looking at the function:
static void
inline_frame_this_id (struct frame_info *this_frame,
void **this_cache,
struct frame_id *this_id)
{
struct symbol *func;
/* In order to have a stable frame ID for a given inline function,
we must get the stack / special addresses from the underlying
real frame's this_id method. So we must call get_prev_frame.
Because we are inlined into some function, there must be previous
frames, so this is safe - as long as we're careful not to
create any cycles. */
*this_id = get_frame_id (get_prev_frame (this_frame));
we see we're computing the frame id for the inline frame. If this is
an inline frame, which is a virtual frame constructed based on debug
info, on top of a real stack frame, we should _always_ be able to find
where the frame was inlined into, as that ultimately just means
peeling off the virtual frames on top of the real stack frame. If
there ultimately was no prev (real) stack frame, then we wouldn't have
been able to construct the inline frame either, by design. That's
what the assertion catches.
So we have an inline frame, we should _always_ be able to compute its
ID, even if that means bypassing the user backtrace limits to get at
the real stack frame's info. The problem is that inline_frame_id
calls get_prev_frame, and that takes user backtrace limits into
account. Code that wants to bypass the limits calls get_prev_frame_1
instead.
Note how get_prev_frame_1 already skips all checks for inline frames:
/* If we are unwinding from an inline frame, all of the below tests
were already performed when we unwound from the next non-inline
frame. We must skip them, since we can not get THIS_FRAME's ID
until we have unwound all the way down to the previous non-inline
frame. */
if (get_frame_type (this_frame) == INLINE_FRAME)
return get_prev_frame_if_no_cycle (this_frame);
And note how the related frame_unwind_caller_id function also uses
get_prev_frame_1:
struct frame_id
frame_unwind_caller_id (struct frame_info *next_frame)
{
struct frame_info *this_frame;
/* Use get_prev_frame_1, and not get_prev_frame. The latter will truncate
the frame chain, leading to this function unintentionally
returning a null_frame_id (e.g., when a caller requests the frame
ID of "main()"s caller. */
next_frame = skip_artificial_frames (next_frame);
this_frame = get_prev_frame_1 (next_frame);
if (this_frame)
return get_frame_id (skip_artificial_frames (this_frame));
else
return null_frame_id;
}
get_prev_frame_1 is currently static in frame.c. As a _1 suffix is
not a good name for an extern function, I've renamed it.
Tested on x86-64 Fedora 17.
gdb/
2014-04-18 Pedro alves <palves@redhat.com>
Tom Tromey <tromey@redhat.com>
PR backtrace/15558
* frame.c (get_prev_frame_1): Rename to ...
(get_prev_frame_always): ... this, and make extern. Adjust.
(skip_artificial_frames): Use get_prev_frame_always.
(frame_unwind_caller_id, frame_pop, get_prev_frame)
(get_frame_unwind_stop_reason): Adjust to rename.
* frame.h (get_prev_frame_always): Declare.
* inline-frame.c: Include frame.h.
(inline_frame_this_id): Use get_prev_frame_always.
gdb/testsuite/
2014-04-18 Tom Tromey <palves@redhat.com>
Pedro alves <tromey@redhat.com>
PR backtrace/15558
* gdb.opt/inline-bt.exp: Test backtracing from an inline function
with a backtrace limit.
* gdb.python/py-frame-inline.exp: Test running to an inline
function with a backtrace limit, and printing the newest frame.
* gdb.python/py-frame-inline.c (main): Call f.
2014-04-18 09:15:21 +00:00
|
|
|
|
2014-04-18 Pedro alves <palves@redhat.com>
|
|
|
|
|
Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR backtrace/15558
|
|
|
|
|
* frame.c (get_prev_frame_1): Rename to ...
|
|
|
|
|
(get_prev_frame_always): ... this, and make extern. Adjust.
|
|
|
|
|
(skip_artificial_frames): Use get_prev_frame_always.
|
|
|
|
|
(frame_unwind_caller_id, frame_pop, get_prev_frame)
|
|
|
|
|
(get_frame_unwind_stop_reason): Adjust to rename.
|
|
|
|
|
* frame.h (get_prev_frame_always): Declare.
|
|
|
|
|
* inline-frame.c: Include frame.h.
|
|
|
|
|
(inline_frame_this_id): Use get_prev_frame_always.
|
|
|
|
|
|
2014-04-18 09:03:46 +00:00
|
|
|
|
2014-04-18 Tristan Gingold <gingold@adacore.com>
|
|
|
|
|
|
|
|
|
|
* solib-darwin.c (darwin_solib_create_inferior_hook): Simplify
|
|
|
|
|
code by using bfd_mach_o_get_base_address.
|
|
|
|
|
|
2014-04-17 12:09:49 +00:00
|
|
|
|
2014-04-17 Ulrich Weigand <uweigand@de.ibm.com>
|
|
|
|
|
|
|
|
|
|
* spu-tdep.c: Include "dwarf2-frame.h" and "ax.h".
|
|
|
|
|
(spu_ax_pseudo_register_collect): New function.
|
|
|
|
|
(spu_ax_pseudo_register_push_stack): Likewise.
|
|
|
|
|
(spu_dwarf_reg_to_regnum): Likewise.
|
|
|
|
|
(spu_gdbarch_init): Install them. Append DWARF unwinders.
|
|
|
|
|
|
Use address_from_register in dwarf2-frame.c:read_addr_from_reg
This patch fixes a problem that prevented use of the Dwarf unwinders on SPU,
because dwarf2-frame.c common code did not support the situation where the
stack and/or frame pointer is maintained in a *vector* register. This is
because read_addr_from_reg is hard-coded to assume that such pointers can
be read from registers via a simple get_frame_register / unpack_pointer
operation.
Now, there *is* a routine address_from_register that calls into the
appropriate tdep routines to handle pointer values in "weird" registers
like on SPU, but it turns out I cannot simply change dwarf2-frame.c to
use address_from_register. This is because address_from_register uses
value_from_register to create a (temporary) value, and that routine
at some point calls get_frame_id in order to set up that value's
VALUE_FRAME_ID entry.
However, the dwarf2-frame.c read_addr_from_reg routine will be called
during early unwinding (to unwind the frame's CFA), at which point the
frame's ID is not actually known yet! This would cause an assert.
On the other hand, we may notice that VALUE_FRAME_ID is only needed in the
value returned by value_from_register if that value is later used as an
lvalue. But this is obviously never done to the temporary value used in
address_from_register. So, if we could change address_from_register to
not call value_from_register but instead accept constructing a value
that doesn't have VALUE_FRAME_ID set, things should be fine.
To do that, we can change the value_from_register callback to accept
a FRAME_ID instead of a FRAME; the only existing uses of the FRAME
argument were either to extract its frame ID, or its gdbarch. (To
keep a way of getting at the latter, we also change the callback's
type from "f" to "m".) Together with the required follow-on changes
in the existing value_from_register implementations (including the
default one), this seems to fix the problem.
As another minor interface cleanup, I've removed the explicit TYPE
argument from address_from_register. This routine really always
uses a default pointer type, and in the new implementation it -to
some extent- relies on that fact, in that it will now no longer
handle types that require gdbarch_convert_register_p handling.
gdb:
2014-04-17 Ulrich Weigand <uweigand@de.ibm.com>
* gdbarch.sh (value_from_register): Make class "m" instead of "f".
Replace FRAME argument with FRAME_ID.
* gdbarch.c, gdbarch.h: Regenerate.
* findvar.c (default_value_from_register): Add GDBARCH argument;
replace FRAME by FRAME_ID. No longer call get_frame_id.
(value_from_register): Update call to gdbarch_value_from_register.
* value.h (default_value_from_register): Update prototype.
* s390-linux-tdep.c (s390_value_from_register): Update interface
and call to default_value_from_register.
* spu-tdep.c (spu_value_from_register): Likewise.
* findvar.c (address_from_register): Remove TYPE argument.
Do not call value_from_register; use gdbarch_value_from_register
with null_frame_id instead.
* value.h (address_from_register): Update prototype.
* dwarf2-frame.c (read_addr_from_reg): Use address_from_register.
* dwarf2loc.c (dwarf_expr_read_addr_from_reg): Update for
address_from_register interface change.
2014-04-17 12:01:39 +00:00
|
|
|
|
2014-04-17 Ulrich Weigand <uweigand@de.ibm.com>
|
|
|
|
|
|
|
|
|
|
* gdbarch.sh (value_from_register): Make class "m" instead of "f".
|
|
|
|
|
Replace FRAME argument with FRAME_ID.
|
|
|
|
|
* gdbarch.c, gdbarch.h: Regenerate.
|
|
|
|
|
* findvar.c (default_value_from_register): Add GDBARCH argument;
|
|
|
|
|
replace FRAME by FRAME_ID. No longer call get_frame_id.
|
|
|
|
|
(value_from_register): Update call to gdbarch_value_from_register.
|
|
|
|
|
* value.h (default_value_from_register): Update prototype.
|
|
|
|
|
* s390-linux-tdep.c (s390_value_from_register): Update interface
|
|
|
|
|
and call to default_value_from_register.
|
|
|
|
|
* spu-tdep.c (spu_value_from_register): Likewise.
|
|
|
|
|
|
|
|
|
|
* findvar.c (address_from_register): Remove TYPE argument.
|
|
|
|
|
Do not call value_from_register; use gdbarch_value_from_register
|
|
|
|
|
with null_frame_id instead.
|
|
|
|
|
* value.h (address_from_register): Update prototype.
|
|
|
|
|
* dwarf2-frame.c (read_addr_from_reg): Use address_from_register.
|
|
|
|
|
* dwarf2loc.c (dwarf_expr_read_addr_from_reg): Update for
|
|
|
|
|
address_from_register interface change.
|
|
|
|
|
|
2014-03-13 06:07:26 +00:00
|
|
|
|
2014-04-17 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* gdbtypes.h: Update comments to link to types and macros'
|
|
|
|
|
definitions.
|
|
|
|
|
|
2014-04-16 22:41:35 +00:00
|
|
|
|
2014-04-16 Siva Chandra Reddy <sivachandra@google.com>
|
|
|
|
|
|
|
|
|
|
* gdbtypes.h: Remove definition of the macro TYPE_FN_FIELDS.
|
|
|
|
|
|
2014-04-16 21:39:10 +00:00
|
|
|
|
2014-04-16 Keith Seitz <keiths@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR gdb/15827
|
|
|
|
|
* dwarf2read.c (skip_one_die): Check that all relative-offset
|
|
|
|
|
sibling DIEs fall within range of the current reader's buffer.
|
|
|
|
|
(read_partial_die): Likewise.
|
|
|
|
|
|
2014-04-16 21:20:19 +00:00
|
|
|
|
2014-04-16 Keith Seitz <keiths@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/16597
|
|
|
|
|
* cp-namespace.c (lookup_symbol_file): If the type name of
|
|
|
|
|
`this' is NULL, return immediately.
|
|
|
|
|
|
2014-04-14 22:47:15 +00:00
|
|
|
|
2014-04-14 Keith Seitz <keiths@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/16253
|
|
|
|
|
* ada-lang.c (ada_symbol_matches_domain): Moved here and renamed
|
|
|
|
|
from symbol_matches_domain in symtab.c. All local callers
|
|
|
|
|
of symbol_matches_domain updated.
|
|
|
|
|
(standard_lookup): If DOMAIN is VAR_DOMAIN and no symbol is found,
|
|
|
|
|
search STRUCT_DOMAIN.
|
|
|
|
|
(ada_find_any_type_symbol): Do not search STRUCT_DOMAIN
|
|
|
|
|
independently. standard_lookup will do that automatically.
|
|
|
|
|
* cp-namespace.c (cp_lookup_symbol_nonlocal): Explain when/why
|
|
|
|
|
VAR_DOMAIN searches may return a STRUCT_DOMAIN match.
|
|
|
|
|
(cp_lookup_symbol_in_namespace): Likewise.
|
|
|
|
|
If no VAR_DOMAIN symbol is found, search STRUCT_DOMAIN.
|
|
|
|
|
(cp_lookup_symbol_exports): Explain when/why VAR_DOMAIN searches
|
|
|
|
|
may return a STRUCT_DOMAIN match.
|
|
|
|
|
(lookup_symbol_file): Search for the class name in STRUCT_DOMAIN.
|
|
|
|
|
* cp-support.c: Include language.h.
|
|
|
|
|
(inspect_type): Explicitly search STRUCT_DOMAIN before searching
|
|
|
|
|
VAR_DOMAIN.
|
|
|
|
|
* psymtab.c (match_partial_symbol): Compare the requested
|
|
|
|
|
domain with the symbol's domain directly.
|
|
|
|
|
(lookup_partial_symbol): Likewise.
|
|
|
|
|
* symtab.c (lookup_symbol_in_language): Explain when/why
|
|
|
|
|
VAR_DOMAIN searches may return a STRUCT_DOMAIN match.
|
|
|
|
|
If no VAR_DOMAIN symbol is found, search STRUCT_DOMAIN for
|
|
|
|
|
appropriate languages.
|
|
|
|
|
(symbol_matches_domain): Renamed `ada_symbol_matches_domain'
|
|
|
|
|
and moved to ada-lang.c
|
|
|
|
|
(lookup_block_symbol): Explain that this function only returns
|
|
|
|
|
symbol matching the requested DOMAIN.
|
|
|
|
|
Compare the requested domain with the symbol's domain directly.
|
|
|
|
|
(iterate_over_symbols): Compare the requested domain with the
|
|
|
|
|
symbol's domain directly.
|
|
|
|
|
* symtab.h (symbol_matches_domain): Remove.
|
|
|
|
|
|
2014-03-27 18:24:27 +00:00
|
|
|
|
2014-04-14 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/15246:
|
|
|
|
|
* c-exp.y (type_aggregate_p): New function.
|
|
|
|
|
(qualified_name, classify_inner_name): Use it.
|
|
|
|
|
* c-typeprint.c (c_type_print_base): Handle TYPE_DECLARED_CLASS
|
|
|
|
|
and TYPE_TARGET_TYPE of an enum type.
|
|
|
|
|
* dwarf2read.c (read_enumeration_type): Set TYPE_DECLARED_CLASS on
|
|
|
|
|
an enum type.
|
|
|
|
|
(determine_prefix) <case DW_TAG_enumeration_type>: New case;
|
|
|
|
|
handle TYPE_DECLARED_CLASS.
|
|
|
|
|
* gdbtypes.c (rank_one_type): Handle TYPE_DECLARED_CLASS on enum
|
|
|
|
|
types.
|
|
|
|
|
* gdbtypes.h (TYPE_DECLARED_CLASS): Update comment.
|
|
|
|
|
* valops.c (enum_constant_from_type): New function.
|
|
|
|
|
(value_aggregate_elt): Use it.
|
|
|
|
|
* cp-namespace.c (cp_lookup_nested_symbol): Handle
|
|
|
|
|
TYPE_CODE_ENUM.
|
|
|
|
|
|
2014-03-27 18:16:38 +00:00
|
|
|
|
2014-04-14 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* valops.c (value_aggregate_elt, value_struct_elt_for_reference)
|
|
|
|
|
(value_namespace_elt, value_maybe_namespace_elt): Make "name"
|
|
|
|
|
const.
|
|
|
|
|
* value.h (value_aggregate_elt): Update.
|
|
|
|
|
|
2014-03-26 14:54:56 +00:00
|
|
|
|
2014-04-14 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* dwarf2read.c (read_enumeration_type): Handle DW_AT_type.
|
|
|
|
|
|
2014-02-05 16:22:08 +00:00
|
|
|
|
2014-04-14 Sanimir Agovic <sanimir.agovic@intel.com>
|
|
|
|
|
|
|
|
|
|
* eval.c (evaluate_subexp_for_sizeof): Add enum noside argument.
|
|
|
|
|
(evaluate_subexp_standard): Pass noside argument.
|
|
|
|
|
(evaluate_subexp_for_sizeof) <BINOP_SUBSCRIPT>: Handle subscript case
|
|
|
|
|
if noside equals EVAL_NORMAL. If the subscript yields a vla type
|
|
|
|
|
re-evaluate subscript operation with EVAL_NORMAL to enable sideffects.
|
|
|
|
|
* gdbtypes.c (resolve_dynamic_bounds): Mark bound as evaluated.
|
|
|
|
|
* gdbtypes.h (enum range_flags): Add RANGE_EVALUATED case.
|
|
|
|
|
|
2013-11-26 14:35:43 +00:00
|
|
|
|
2014-04-14 Sanimir Agovic <sanimir.agovic@intel.com>
|
|
|
|
|
|
|
|
|
|
* findvar.c (default_read_var_value): Resolve dynamic bounds if location
|
|
|
|
|
points to a constant blob.
|
|
|
|
|
|
2013-11-19 12:54:24 +00:00
|
|
|
|
2014-04-14 Sanimir Agovic <sanimir.agovic@intel.com>
|
|
|
|
|
|
|
|
|
|
* dwarf2read.c (read_subrange_type): Convert DW_AT_count to a dynamic
|
|
|
|
|
property and store it as the high bound and flag the range accordingly.
|
|
|
|
|
* gdbtypes.c (resolve_dynamic_bounds): If range is flagged as
|
|
|
|
|
RANGE_UPPER_BOUND_IS_COUNT assign low + high - 1 as the new high bound.
|
|
|
|
|
* gdbtypes.h (enum range_flags): New enum.
|
|
|
|
|
(struct range_bounds): Add flags member.
|
|
|
|
|
|
2013-11-14 09:55:52 +00:00
|
|
|
|
2014-04-14 Sanimir Agovic <sanimir.agovic@intel.com>
|
|
|
|
|
|
|
|
|
|
* c-typeprint.c (c_type_print_varspec_suffix): Added
|
|
|
|
|
check for not yet resolved high bound. If unresolved, print
|
|
|
|
|
"variable length" string to the console instead of random
|
|
|
|
|
length.
|
|
|
|
|
|
2013-10-14 07:36:13 +00:00
|
|
|
|
2014-04-14 Sanimir Agovic <sanimir.agovic@intel.com>
|
|
|
|
|
|
|
|
|
|
* ada-lang.c (ada_value_primitive_packed_val): Re-fetch type from
|
|
|
|
|
value.
|
|
|
|
|
(ada_template_to_fixed_record_type_1): Likewise.
|
|
|
|
|
(ada_to_fixed_type_1): Likewise.
|
|
|
|
|
* cp-valprint.c (cp_print_value_fields_rtti): Likewise.
|
|
|
|
|
(cp_print_value): Likewise.
|
|
|
|
|
* d-valprint.c (dynamic_array_type): Likewise.
|
|
|
|
|
* findvar.c (address_of_variable): Likewise.
|
|
|
|
|
* jv-valprint.c (java_value_print): Likewise.
|
|
|
|
|
* valops.c (value_ind): Likewise.
|
|
|
|
|
* value.c (coerce_ref): Likewise.
|
|
|
|
|
|
2013-10-12 11:36:16 +00:00
|
|
|
|
2014-04-14 Sanimir Agovic <sanimir.agovic@intel.com>
|
|
|
|
|
|
|
|
|
|
* eval.c (evaluate_subexp_for_sizeof) <UNOP_IND>: Create an indirect
|
|
|
|
|
value and retrieve the dynamic type size.
|
|
|
|
|
|
2013-10-09 14:28:22 +00:00
|
|
|
|
2014-04-14 Sanimir Agovic <sanimir.agovic@intel.com>
|
|
|
|
|
|
|
|
|
|
* eval.c (evaluate_subexp_for_sizeof) <OP_VAR_VALUE>: If the type
|
|
|
|
|
passed to sizeof is dynamic evaluate the argument to compute the length.
|
|
|
|
|
|
2013-10-09 14:28:22 +00:00
|
|
|
|
2014-04-14 Sanimir Agovic <sanimir.agovic@intel.com>
|
|
|
|
|
Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* dwarf2loc.c (dwarf2_locexpr_baton_eval): New function.
|
|
|
|
|
(dwarf2_evaluate_property): New function.
|
|
|
|
|
* dwarf2loc.h (dwarf2_evaluate_property): New function prototype.
|
|
|
|
|
* dwarf2read.c (attr_to_dynamic_prop): New function.
|
|
|
|
|
(read_subrange_type): Use attr_to_dynamic_prop to read high bound
|
|
|
|
|
attribute.
|
|
|
|
|
* gdbtypes.c: Include dwarf2loc.h.
|
|
|
|
|
(is_dynamic_type): New function.
|
|
|
|
|
(resolve_dynamic_type): New function.
|
|
|
|
|
(resolve_dynamic_bounds): New function.
|
|
|
|
|
(get_type_length): New function.
|
|
|
|
|
(check_typedef): Use get_type_length to compute type length.
|
|
|
|
|
* gdbtypes.h (TYPE_HIGH_BOUND_KIND): New macro.
|
|
|
|
|
(TYPE_LOW_BOUND_KIND): New macro.
|
|
|
|
|
(is_dynamic_type): New function prototype.
|
|
|
|
|
* value.c (value_from_contents_and_address): Call resolve_dynamic_type
|
|
|
|
|
to resolve dynamic properties of the type. Update comment.
|
|
|
|
|
* valops.c (get_value_at, value_at, value_at_lazy): Update comment.
|
|
|
|
|
|
2014-04-14 15:30:56 +00:00
|
|
|
|
2014-04-14 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* alpha-linux-nat.c (_initialize_alpha_linux_nat): Fix prototype.
|
|
|
|
|
|
2014-04-12 16:09:41 +00:00
|
|
|
|
2014-04-12 Siva Chandra Reddy <sivachandra@google.com>
|
|
|
|
|
Doug Evans <xdje42@gmail.com>
|
|
|
|
|
|
|
|
|
|
* guile/scm-value.c (gdbscm_value_dynamic_type): Use coerce_ref to
|
|
|
|
|
dereference TYPE_CODE_REF values.
|
|
|
|
|
|
2014-04-11 21:47:15 +00:00
|
|
|
|
2014-04-11 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
Revert the following changes due to regressions:
|
|
|
|
|
|
|
|
|
|
* dwarf2loc.c (dwarf2_locexpr_baton_eval): New function.
|
|
|
|
|
(dwarf2_evaluate_property): New function.
|
|
|
|
|
* dwarf2loc.h (dwarf2_evaluate_property): New function prototype.
|
|
|
|
|
* dwarf2read.c (attr_to_dynamic_prop): New function.
|
|
|
|
|
(read_subrange_type): Use attr_to_dynamic_prop to read high bound
|
|
|
|
|
attribute.
|
|
|
|
|
* gdbtypes.c: Include dwarf2loc.h.
|
|
|
|
|
(is_dynamic_type): New function.
|
|
|
|
|
(resolve_dynamic_type): New function.
|
|
|
|
|
(resolve_dynamic_bounds): New function.
|
|
|
|
|
(get_type_length): New function.
|
|
|
|
|
(check_typedef): Use get_type_length to compute type length.
|
|
|
|
|
* gdbtypes.h (TYPE_HIGH_BOUND_KIND): New macro.
|
|
|
|
|
(TYPE_LOW_BOUND_KIND): New macro.
|
|
|
|
|
(is_dynamic_type): New function prototype.
|
|
|
|
|
* value.c (value_from_contents_and_address): Call resolve_dynamic_type
|
|
|
|
|
to resolve dynamic properties of the type. Update comment.
|
|
|
|
|
* valops.c (get_value_at, value_at, value_at_lazy): Update comment.
|
|
|
|
|
|
|
|
|
|
* eval.c (evaluate_subexp_for_sizeof) <OP_VAR_VALUE>: If the type
|
|
|
|
|
passed to sizeof is dynamic evaluate the argument to compute the length.
|
|
|
|
|
|
|
|
|
|
* eval.c (evaluate_subexp_for_sizeof) <UNOP_IND>: Create an indirect
|
|
|
|
|
value and retrieve the dynamic type size.
|
|
|
|
|
|
|
|
|
|
* ada-lang.c (ada_value_primitive_packed_val): Re-fetch type from value.
|
|
|
|
|
(ada_template_to_fixed_record_type_1): Likewise.
|
|
|
|
|
(ada_to_fixed_type_1): Likewise.
|
|
|
|
|
* cp-valprint.c (cp_print_value_fields_rtti): Likewise.
|
|
|
|
|
(cp_print_value): Likewise.
|
|
|
|
|
* d-valprint.c (dynamic_array_type): Likewise.
|
|
|
|
|
* eval.c (evaluate_subexp_with_coercion): Likewise.
|
|
|
|
|
* findvar.c (address_of_variable): Likewise.
|
|
|
|
|
* jv-valprint.c (java_value_print): Likewise.
|
|
|
|
|
* valops.c (value_ind): Likewise.
|
|
|
|
|
* value.c (coerce_ref): Likewise.
|
|
|
|
|
|
|
|
|
|
* c-typeprint.c (c_type_print_varspec_suffix): Added
|
|
|
|
|
check for not yet resolved high bound. If unresolved, print
|
|
|
|
|
"variable length" string to the console instead of random
|
|
|
|
|
length.
|
|
|
|
|
|
|
|
|
|
* dwarf2read.c (read_subrange_type): Convert DW_AT_count to a dynamic
|
|
|
|
|
property and store it as the high bound and flag the range accordingly.
|
|
|
|
|
* gdbtypes.c (resolve_dynamic_bounds): If range is flagged as
|
|
|
|
|
RANGE_UPPER_BOUND_IS_COUNT assign low + high - 1 as the new high bound.
|
|
|
|
|
* gdbtypes.h (enum range_flags): New enum.
|
|
|
|
|
(struct range_bounds): Add flags member.
|
|
|
|
|
|
|
|
|
|
* findvar.c (default_read_var_value): Resolve dynamic bounds if location
|
|
|
|
|
points to a constant blob.
|
|
|
|
|
|
|
|
|
|
* eval.c (evaluate_subexp_for_sizeof): Add enum noside argument.
|
|
|
|
|
(evaluate_subexp_standard): Pass noside argument.
|
|
|
|
|
(evaluate_subexp_for_sizeof) <BINOP_SUBSCRIPT>: Handle subscript case
|
|
|
|
|
if noside equals EVAL_NORMAL. If the subscript yields a vla type
|
|
|
|
|
re-evaluate subscript operation with EVAL_NORMAL to enable sideffects.
|
|
|
|
|
* gdbtypes.c (resolve_dynamic_bounds): Mark bound as evaluated.
|
|
|
|
|
* gdbtypes.h (enum range_flags): Add RANGE_EVALUATED case.
|
|
|
|
|
|
2014-04-11 21:17:17 +00:00
|
|
|
|
2014-04-11 Keith Seitz <keiths@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/16675
|
|
|
|
|
* c-exp.y (exp : SIZEOF '(' type ')'): Handle reference types.
|
|
|
|
|
* eval.c (evaluate_subexp_for_sizeof): Refactor and handle
|
|
|
|
|
reference types.
|
|
|
|
|
|
2014-02-05 16:22:08 +00:00
|
|
|
|
2014-04-11 Sanimir Agovic <sanimir.agovic@intel.com>
|
|
|
|
|
|
|
|
|
|
* eval.c (evaluate_subexp_for_sizeof): Add enum noside argument.
|
|
|
|
|
(evaluate_subexp_standard): Pass noside argument.
|
|
|
|
|
(evaluate_subexp_for_sizeof) <BINOP_SUBSCRIPT>: Handle subscript case
|
|
|
|
|
if noside equals EVAL_NORMAL. If the subscript yields a vla type
|
|
|
|
|
re-evaluate subscript operation with EVAL_NORMAL to enable sideffects.
|
|
|
|
|
* gdbtypes.c (resolve_dynamic_bounds): Mark bound as evaluated.
|
|
|
|
|
* gdbtypes.h (enum range_flags): Add RANGE_EVALUATED case.
|
|
|
|
|
|
2013-11-26 14:35:43 +00:00
|
|
|
|
2014-04-11 Sanimir Agovic <sanimir.agovic@intel.com>
|
|
|
|
|
|
|
|
|
|
* findvar.c (default_read_var_value): Resolve dynamic bounds if location
|
|
|
|
|
points to a constant blob.
|
|
|
|
|
|
2013-11-19 12:54:24 +00:00
|
|
|
|
2014-04-11 Sanimir Agovic <sanimir.agovic@intel.com>
|
|
|
|
|
|
|
|
|
|
* dwarf2read.c (read_subrange_type): Convert DW_AT_count to a dynamic
|
|
|
|
|
property and store it as the high bound and flag the range accordingly.
|
|
|
|
|
* gdbtypes.c (resolve_dynamic_bounds): If range is flagged as
|
|
|
|
|
RANGE_UPPER_BOUND_IS_COUNT assign low + high - 1 as the new high bound.
|
|
|
|
|
* gdbtypes.h (enum range_flags): New enum.
|
|
|
|
|
(struct range_bounds): Add flags member.
|
|
|
|
|
|
2013-11-14 09:55:52 +00:00
|
|
|
|
2014-04-11 Sanimir Agovic <sanimir.agovic@intel.com>
|
|
|
|
|
|
|
|
|
|
* c-typeprint.c (c_type_print_varspec_suffix): Added
|
|
|
|
|
check for not yet resolved high bound. If unresolved, print
|
|
|
|
|
"variable length" string to the console instead of random
|
|
|
|
|
length.
|
|
|
|
|
|
2013-10-14 07:36:13 +00:00
|
|
|
|
2014-04-11 Sanimir Agovic <sanimir.agovic@intel.com>
|
|
|
|
|
|
|
|
|
|
* ada-lang.c (ada_value_primitive_packed_val): Re-fetch type from value.
|
|
|
|
|
(ada_template_to_fixed_record_type_1): Likewise.
|
|
|
|
|
(ada_to_fixed_type_1): Likewise.
|
|
|
|
|
* cp-valprint.c (cp_print_value_fields_rtti): Likewise.
|
|
|
|
|
(cp_print_value): Likewise.
|
|
|
|
|
* d-valprint.c (dynamic_array_type): Likewise.
|
|
|
|
|
* eval.c (evaluate_subexp_with_coercion): Likewise.
|
|
|
|
|
* findvar.c (address_of_variable): Likewise.
|
|
|
|
|
* jv-valprint.c (java_value_print): Likewise.
|
|
|
|
|
* valops.c (value_ind): Likewise.
|
|
|
|
|
* value.c (coerce_ref): Likewise.
|
|
|
|
|
|
2013-10-12 11:36:16 +00:00
|
|
|
|
2014-04-11 Sanimir Agovic <sanimir.agovic@intel.com>
|
|
|
|
|
|
|
|
|
|
* eval.c (evaluate_subexp_for_sizeof) <UNOP_IND>: Create an indirect
|
|
|
|
|
value and retrieve the dynamic type size.
|
|
|
|
|
|
2013-10-09 14:28:22 +00:00
|
|
|
|
2014-04-11 Sanimir Agovic <sanimir.agovic@intel.com>
|
|
|
|
|
|
|
|
|
|
* eval.c (evaluate_subexp_for_sizeof) <OP_VAR_VALUE>: If the type
|
|
|
|
|
passed to sizeof is dynamic evaluate the argument to compute the length.
|
|
|
|
|
|
2013-10-09 14:28:22 +00:00
|
|
|
|
2014-04-11 Sanimir Agovic <sanimir.agovic@intel.com>
|
|
|
|
|
|
|
|
|
|
* dwarf2loc.c (dwarf2_locexpr_baton_eval): New function.
|
|
|
|
|
(dwarf2_evaluate_property): New function.
|
|
|
|
|
* dwarf2loc.h (dwarf2_evaluate_property): New function prototype.
|
|
|
|
|
* dwarf2read.c (attr_to_dynamic_prop): New function.
|
|
|
|
|
(read_subrange_type): Use attr_to_dynamic_prop to read high bound
|
|
|
|
|
attribute.
|
|
|
|
|
* gdbtypes.c: Include dwarf2loc.h.
|
|
|
|
|
(is_dynamic_type): New function.
|
|
|
|
|
(resolve_dynamic_type): New function.
|
|
|
|
|
(resolve_dynamic_bounds): New function.
|
|
|
|
|
(get_type_length): New function.
|
|
|
|
|
(check_typedef): Use get_type_length to compute type length.
|
|
|
|
|
* gdbtypes.h (TYPE_HIGH_BOUND_KIND): New macro.
|
|
|
|
|
(TYPE_LOW_BOUND_KIND): New macro.
|
|
|
|
|
(is_dynamic_type): New function prototype.
|
|
|
|
|
* value.c (value_from_contents_and_address): Call resolve_dynamic_type
|
|
|
|
|
to resolve dynamic properties of the type. Update comment.
|
|
|
|
|
* valops.c (get_value_at, value_at, value_at_lazy): Update comment.
|
|
|
|
|
|
2013-10-08 14:04:49 +00:00
|
|
|
|
2014-04-11 Sanimir Agovic <sanimir.agovic@intel.com>
|
|
|
|
|
|
|
|
|
|
* dwarf2read.c (read_subrange_type): Use struct bound_prop for
|
|
|
|
|
declaring high/low bounds and change uses accordingly. Call
|
|
|
|
|
create_range_type instead of create_static_range_type.
|
|
|
|
|
* gdbtypes.c (create_range_type): New function.
|
|
|
|
|
(create_range_type): Convert bounds into struct bound_prop and pass
|
|
|
|
|
them to create_range_type.
|
|
|
|
|
* gdbtypes.h (struct bound_prop): New struct.
|
|
|
|
|
(create_range_type): New function prototype.
|
|
|
|
|
(struct range_bounds): Use struct bound_prop instead of LONGEST for
|
|
|
|
|
high/low bounds. Remove low_undefined/high_undefined and adapt all uses.
|
|
|
|
|
(TYPE_LOW_BOUND,TYPE_HIGH_BOUND): Adapt macros to refer to the static
|
|
|
|
|
part of the bound.
|
|
|
|
|
* parse.c (follow_types): Set high bound kind to BOUND_UNDEFINED.
|
|
|
|
|
|
2013-12-19 08:31:17 +00:00
|
|
|
|
2014-04-11 Sanimir Agovic <sanimir.agovic@intel.com>
|
|
|
|
|
|
|
|
|
|
* gdbtypes.c (create_static_range_type): Renamed from create_range_type.
|
|
|
|
|
* gdbtypes.h (create_static_range_type): Renamed from create_range_type.
|
|
|
|
|
* ada-lang.c: All uses of create_range_type updated.
|
|
|
|
|
* coffread.c: All uses of create_range_type updated.
|
|
|
|
|
* dwarf2read.c: All uses of create_range_type updated.
|
|
|
|
|
* f-exp.y: All uses of create_range_type updated.
|
|
|
|
|
* m2-valprint.c: All uses of create_range_type updated.
|
|
|
|
|
* mdebugread.c: All uses of create_range_type updated.
|
|
|
|
|
* stabsread.c: All uses of create_range_type updated.
|
|
|
|
|
* valops.c: All uses of create_range_type updated.
|
|
|
|
|
* valprint.c: All uses of create_range_type updated.
|
|
|
|
|
|
breakpoint shadowing, take single-step breakpoints into account.
Breakpoints are supposed to be transparent to memory accesses. For
all kinds of breakpoints breakpoint_xfer_memory hides the breakpoint
instructions. However, sss breakpoints aren't tracked like all other
breakpoints, and nothing is taking care of hiding them from memory
reads.
Say, as is, a background step + disassemble will see breakpoints
instructions on software step targets. E.g., stepping over this line:
while (1);
with s&
and then "disassemble" would show sss breakpoints.
Actually, that's still not be possible to see today, because:
- in native Linux, you can't read memory while the program
is running.
- with Linux gdbserver, you can, but in the all-stop RSP you
can't talk to the server while the program is running...
- and with non-stop, on software step targets, we presently
force the use of displaced-stepping for all single-steps,
so no single-step breakpoints are used...
I've been working towards making non-stop not force displaced stepping
on sss targets, and I noticed the issue then. With that, I indeed see
this:
(gdb) set remote Z-packet off
(gdb) s&
(gdb) disassemble main
Dump of assembler code for function main:
0x000000000040049c <+0>: push %rbp
0x000000000040049d <+1>: mov %rsp,%rbp
0x00000000004004a0 <+4>: int3
0x00000000004004a1 <+5>: (bad)
End of assembler dump.
Instead of the correct:
(gdb) disassemble main
Dump of assembler code for function main:
0x000000000040049c <+0>: push %rbp
0x000000000040049d <+1>: mov %rsp,%rbp
0x00000000004004a0 <+4>: jmp 0x4004a0 <main+4>
This is actually one thing that my v1 of the recent "fix a bunch of
run control bugs" series was fixing, because it made sss breakpoints
be regular breakpoints in the breakpoint chain. But dropped it in the
version that landed in the tree, due to some problems.
So instead of making sss breakpoints regular breakpoints, go with a
simpler fix (at least for now) -- make breakpoint_xfer_memory take
software single-step breakpoints into account. After the patch, I get
the correct disassemble output.
Tested on x86_64 Fedora 17, and also on top of my "use software
single-step on x86" series.
Also fixes the issue pointed out by Yao at
https://sourceware.org/ml/gdb-patches/2014-04/msg00045.html, where the
prologue analysis/frame sniffing manages to see software step
breakpoint instructions.
gdb/
2014-04-10 Pedro Alves <palves@redhat.com>
* breakpoint.c (single_step_breakpoints)
(single_step_gdbarch): Move up in the file.
(one_breakpoint_xfer_memory): New function, factored out from ...
(breakpoint_xfer_memory): ... here. Also process single-step
breakpoints.
2014-04-10 13:19:52 +00:00
|
|
|
|
2014-04-10 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* breakpoint.c (single_step_breakpoints)
|
|
|
|
|
(single_step_gdbarch): Move up in the file.
|
|
|
|
|
(one_breakpoint_xfer_memory): New function, factored out from ...
|
|
|
|
|
(breakpoint_xfer_memory): ... here. Also process single-step
|
|
|
|
|
breakpoints.
|
|
|
|
|
|
2014-04-09 08:23:19 +00:00
|
|
|
|
2014-04-09 Tristan Gingold <gingold@adacore.com>
|
|
|
|
|
|
|
|
|
|
* darwin-nat.c (darwin_check_new_threads): Fix port leak, add
|
|
|
|
|
comments.
|
|
|
|
|
(darwin_decode_exception_message): Free port only after use.
|
|
|
|
|
|
2014-04-04 17:31:36 +00:00
|
|
|
|
2014-04-08 Pierre Langlois <pierre.langlois@embecosm.com>
|
|
|
|
|
|
|
|
|
|
* avr-tdep.c (struct gdbarch_tdep): Mention avrxmega in the comment.
|
|
|
|
|
(avr_gdbarch_init): Add xmega architectures given by bfd_architecture
|
|
|
|
|
when setting the size of call_length.
|
|
|
|
|
|
2014-03-21 13:42:50 +00:00
|
|
|
|
2014-04-07 Siva Chandra Reddy <sivachandra@google.com>
|
|
|
|
|
|
|
|
|
|
* python/py-value.c (valpy_get_dynamic_type): Use coerce_ref to
|
|
|
|
|
dereference TYPE_CODE_REF values.
|
|
|
|
|
|
2014-04-07 16:43:23 +00:00
|
|
|
|
2014-04-07 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* darwin-nat.c (darwin_decode_message): Remove trailing '\n' at
|
|
|
|
|
end of warning message.
|
|
|
|
|
|
2014-04-03 19:07:25 +00:00
|
|
|
|
2014-04-03 Doug Evans <dje@google.com>
|
|
|
|
|
|
|
|
|
|
* dwarf2read.c (read_cutu_die_from_dwo): Fix assertion, at most one
|
|
|
|
|
of stub_comp_unit_die, stub_comp_dir is non-NULL.
|
|
|
|
|
|
2014-04-02 01:37:33 +00:00
|
|
|
|
2014-04-02 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* symfile-mem.c (symbol_file_add_from_memory): Add size parameter.
|
|
|
|
|
Pass to bfd_elf_bfd_from_remote_memory. Adjust all callers.
|
|
|
|
|
(struct symbol_file_add_from_memory_args): Add size field.
|
|
|
|
|
(find_vdso_size): New function.
|
|
|
|
|
(add_vsyscall_page): Attempt to find vdso size.
|
|
|
|
|
|
2014-04-01 17:17:12 +00:00
|
|
|
|
2014-04-01 Doug Evans <dje@google.com>
|
|
|
|
|
|
|
|
|
|
* dwarf2read.c (read_cutu_die_from_dwo): Improve comment.
|
|
|
|
|
|
2014-03-21 15:56:39 +00:00
|
|
|
|
2014-04-01 Tristan Gingold <gingold@adacore.com>
|
|
|
|
|
|
|
|
|
|
* darwin-nat.c (darwin_encode_reply): Add prototype.
|
|
|
|
|
(darwin_decode_exception_message): Reply to unknown inferiors.
|
|
|
|
|
(darwin_decode_message): Handle message by id. Ignore message
|
|
|
|
|
to unknown inferior.
|
|
|
|
|
(darwin_wait): Discard unknown messages, add debug trace.
|
|
|
|
|
|
2014-03-31 23:51:37 +00:00
|
|
|
|
2014-03-31 Doug Evans <dje@google.com>
|
|
|
|
|
|
|
|
|
|
* dwarf2read.c (read_cutu_die_from_dwo): Delete unused local
|
|
|
|
|
comp_dir_string.
|
|
|
|
|
|
2014-03-31 19:07:48 +00:00
|
|
|
|
2014-03-31 Doug Evans <dje@google.com>
|
|
|
|
|
|
|
|
|
|
New option "set print symbol-loading".
|
|
|
|
|
* NEWS: Mention it.
|
|
|
|
|
* solib.c (solib_read_symbols): Only print symbol loading messages
|
|
|
|
|
if requested.
|
|
|
|
|
(solib_add): If symbol loading is in "brief" mode, notify user
|
|
|
|
|
symbols are being loaded.
|
|
|
|
|
(reload_shared_libraries_1): Ditto.
|
|
|
|
|
* symfile.c (print_symbol_loading_off): New static global.
|
|
|
|
|
(print_symbol_loading_brief): New static global.
|
|
|
|
|
(print_symbol_loading_full): New static global.
|
|
|
|
|
(print_symbol_loading_enums): New static global.
|
|
|
|
|
(print_symbol_loading): New static global.
|
|
|
|
|
(print_symbol_loading_p): New function.
|
|
|
|
|
(symbol_file_add_with_addrs): Only print symbol loading messages
|
|
|
|
|
if requested.
|
|
|
|
|
(_initialize_symfile): Register "print symbol-loading" set/show
|
|
|
|
|
command.
|
|
|
|
|
* symfile.h (print_symbol_loading_p): Declare.
|
|
|
|
|
|
2014-03-30 19:37:50 +00:00
|
|
|
|
2014-03-30 Doug Evans <xdje42@gmail.com>
|
|
|
|
|
|
|
|
|
|
* infrun.c (set_last_target_status): New function.
|
|
|
|
|
(handle_inferior_event): Call it.
|
|
|
|
|
|
2014-03-30 19:24:31 +00:00
|
|
|
|
2014-03-30 Doug Evans <xdje42@gmail.com>
|
|
|
|
|
|
|
|
|
|
* inferior.h (enum stop_kind): Improve comment.
|
|
|
|
|
|
[varobj] false type-changed status for reference to Ada array
Given the following variable...
BT : Bounded := New_Bounded (Low => 1, High => 3);
... where type Bounded is defined as a simple unconstrained array:
type Bounded is array (Integer range <>) of Integer;
Creating a varobj for that variable, and immediately asking for
varobj updates, GDB says that our varobj changed types!
(gdb)
-var-create bt * bt
^done,name="bt",numchild="3",value="[3]",type="<ref> array (1 .. 3) of integer",has_more="0"
(gdb)
-var-update 1 *
^done,changelist=[{name="bt",value="[3]",in_scope="true",type_changed="true",new_type="<ref> array (1 .. 3) of integer",new_num_children="3",has_more="0"}]
The expected output for the -var-update command is, in this case:
(gdb)
-var-update 1 *
^done,changelist=[]
The problem occurs because the ada-varobj module does not handle
references, and while the references gets stripped when the varobj
gets created, it doesn't when computing varobj updates.
More specifically, when creating the varobj, varobj_create creates
a new value which is a reference to a TYPE_CODE_ARRAY. It then calls
install_new_value which calls coerce_ref with the following comment:
/* We are not interested in the address of references, and given
that in C++ a reference is not rebindable, it cannot
meaningfully change. So, get hold of the real value. */
if (value)
value = coerce_ref (value);
This leaves the varobj's type component still a ref, while
the varobj's value is now our array, without the ref. This explains
why the "value" field in the varobj indicates an array with 3 elements
"[3]" while the "type" field shows a ref to an array. Generally
speaking, most users have said that showing the ref was a useful
piece of information, so this patch is not touching this part.
Next, when the user issues the -var-update request, varobj_update
calls value_of_root to compute the varobj's new value as well as
determine whether the value's type has changed or not. What happens
in a nutshell is that it calls value_of_root_1 (which re-evaluates
the expression and returns the corresponding new value), finds that
the new value is not NULL, and thus asks whether it has mutated:
else if (varobj_value_has_mutated (var, value, value_type (value)))
This then indirectly delegates the determination to the language-specific
callback, which fails, because it does not handle references.
This patch fixes the issue by adjusting varobj_value_has_mutated to
expect references, and strip them when seen. This allows the various
language-specific implementations to remain unaware of references.
gdb/ChangeLog:
* varobj.c (varobj_value_has_mutated): If NEW_VALUE is
a reference, strip the reference layer before calling
the lang_ops value_has_mutated callback.
gdb/testsuite/ChangeLog:
* gdb.ada/mi_dyn_arr: New testcase.
2014-03-20 14:43:08 +00:00
|
|
|
|
2014-03-28 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* varobj.c (varobj_value_has_mutated): If NEW_VALUE is
|
|
|
|
|
a reference, strip the reference layer before calling
|
|
|
|
|
the lang_ops value_has_mutated callback.
|
|
|
|
|
|
Remove `expout*' globals from parser-defs.h
This commit removes the "expout*" globals from our parser code, turning
them into a structure that is passed when an expression needs to be
evaluated. This is the initial step to make our parser less
"globalized".
This is mostly a mechanical patch, which creates a structure containing
the "expout*" globals and then modify all the functions that handle them
in order to take the structure as argument. It is big, and has been
reviewed at least 4 times, so I think everything is covered.
Below you can see the message links from the discussions:
- First attempt:
<https://sourceware.org/ml/gdb-patches/2012-01/msg00522.html>
Message-ID: <m3k44s7qej.fsf@gmail.com>
- Second attempt:
<https://sourceware.org/ml/gdb-patches/2012-06/msg00054.html>
Message-Id: <1338665528-5932-1-git-send-email-sergiodj@redhat.com>
- Third attempt:
<https://sourceware.org/ml/gdb-patches/2014-01/msg00949.html>
Message-Id: <1390629467-27139-1-git-send-email-sergiodj@redhat.com>
- Fourth (last) attempt:
<https://sourceware.org/ml/gdb-patches/2014-03/msg00546.html>
Message-Id: <1395463432-29750-1-git-send-email-sergiodj@redhat.com>
gdb/
2014-03-27 Sergio Durigan Junior <sergiodj@redhat.com>
Remove some globals from our parser.
* language.c (unk_lang_parser): Add "struct parser_state"
argument.
* language.h (struct language_defn) <la_parser>: Likewise.
* parse.c (expout, expout_size, expout_ptr): Remove variables.
(initialize_expout): Add "struct parser_state" argument.
Rewrite function to use the parser state.
(reallocate_expout, write_exp_elt, write_exp_elt_opcode,
write_exp_elt_sym, write_exp_elt_block, write_exp_elt_objfile,
write_exp_elt_longcst, write_exp_elt_dblcst,
write_exp_elt_decfloatcst, write_exp_elt_type,
write_exp_elt_intern, write_exp_string, write_exp_string_vector,
write_exp_bitstring, write_exp_msymbol, mark_struct_expression,
write_dollar_variable): Likewise.
(parse_exp_in_context_1): Use parser state.
(insert_type_address_space): Add "struct parser_state" argument.
Use parser state.
(increase_expout_size): New function.
* parser-defs.h: Forward declare "struct language_defn" and
"struct parser_state".
(expout, expout_size, expout_ptr): Remove extern declarations.
(parse_gdbarch, parse_language): Rewrite macro declarations to
accept the parser state.
(struct parser_state): New struct.
(initialize_expout, reallocate_expout, write_exp_elt_opcode,
write_exp_elt_sym, write_exp_elt_longcst, write_exp_elt_dblcst,
write_exp_elt_decfloatcst, write_exp_elt_type,
write_exp_elt_intern, write_exp_string, write_exp_string_vector,
write_exp_bitstring, write_exp_elt_block, write_exp_elt_objfile,
write_exp_msymbol, write_dollar_variable,
mark_struct_expression, insert_type_address_space): Add "struct
parser_state" argument.
(increase_expout_size): New function.
* utils.c (do_clear_parser_state): New function.
(make_cleanup_clear_parser_state): Likewise.
* utils.h (make_cleanup_clear_parser_state): New function
prototype.
* aarch64-linux-tdep.c (aarch64_stap_parse_special_token):
Update calls to write_exp* in order to pass the parser state.
* arm-linux-tdep.c (arm_stap_parse_special_token): Likewise.
* i386-tdep.c (i386_stap_parse_special_token_triplet): Likewise.
(i386_stap_parse_special_token_three_arg_disp): Likewise.
* ppc-linux-tdep.c (ppc_stap_parse_special_token): Likewise.
* stap-probe.c (stap_parse_register_operand): Likewise.
(stap_parse_single_operand): Likewise.
(stap_parse_argument_1): Likewise.
(stap_parse_argument): Use parser state.
* stap-probe.h: Include "parser-defs.h".
(struct stap_parse_info) <pstate>: New field.
* c-exp.y (parse_type): Rewrite to use parser state.
(yyparse): Redefine to c_parse_internal.
(pstate): New global variable.
(parse_number): Add "struct parser_state" argument.
(write_destructor_name): Likewise.
(type_exp): Update calls to write_exp* and similars in order to
use parser state.
(exp1, exp, variable, qualified_name, space_identifier,
typename, typebase): Likewise.
(write_destructor_name, parse_number, lex_one_token,
classify_name, classify_inner_name, c_parse): Add "struct
parser_state" argument. Update function to use parser state.
* c-lang.h: Forward declare "struct parser_state".
(c_parse): Add "struct parser_state" argument.
* ada-exp.y (parse_type): Rewrite macro to use parser state.
(yyparse): Redefine macro to ada_parse_internal.
(pstate): New variable.
(write_int, write_object_renaming, write_var_or_type,
write_name_assoc, write_exp_op_with_string, write_ambiguous_var,
type_int, type_long, type_long_long, type_float, type_double,
type_long_double, type_char, type_boolean, type_system_address):
Add "struct parser_state" argument.
(exp1, primary, simple_exp, relation, and_exp, and_then_exp,
or_exp, or_else_exp, xor_exp, type_prefix, opt_type_prefix,
var_or_type, aggregate, aggregate_component_list,
positional_list, others, component_group,
component_associations): Update calls to write_exp* and similar
functions in order to use parser state.
(ada_parse, write_var_from_sym, write_int,
write_exp_op_with_string, write_object_renaming,
find_primitive_type, write_selectors, write_ambiguous_var,
write_var_or_type, write_name_assoc, type_int, type_long,
type_long_long, type_float, type_double, type_long_double,
type_char, type_boolean, type_system_address): Add "struct
parser_state" argument. Adjust function to use parser state.
* ada-lang.c (parse): Likewise.
* ada-lang.h: Forward declare "struct parser_state".
(ada_parse): Add "struct parser_state" argument.
* ada-lex.l (processInt, processReal): Likewise. Adjust all
calls to both functions.
* f-exp.y (parse_type, parse_f_type): Rewrite macros to use
parser state.
(yyparse): Redefine macro to f_parse_internal.
(pstate): New variable.
(parse_number): Add "struct parser_state" argument.
(type_exp, exp, subrange, typebase): Update calls to write_exp*
and similars in order to use parser state.
(parse_number): Adjust code to use parser state.
(yylex): Likewise.
(f_parse): New function.
* f-lang.h: Forward declare "struct parser_state".
(f_parse): Add "struct parser_state" argument.
* jv-exp.y (parse_type, parse_java_type): Rewrite macros to use
parser state.
(yyparse): Redefine macro for java_parse_internal.
(pstate): New variable.
(push_expression_name, push_expression_name, insert_exp): Add
"struct parser_state" argument.
(type_exp, StringLiteral, Literal, PrimitiveType, IntegralType,
FloatingPointType, exp1, PrimaryNoNewArray, FieldAccess,
FuncStart, MethodInvocation, ArrayAccess, PostfixExpression,
PostIncrementExpression, PostDecrementExpression,
UnaryExpression, PreIncrementExpression, PreDecrementExpression,
UnaryExpressionNotPlusMinus, CastExpression,
MultiplicativeExpression, AdditiveExpression, ShiftExpression,
RelationalExpression, EqualityExpression, AndExpression,
ExclusiveOrExpression, InclusiveOrExpression,
ConditionalAndExpression, ConditionalOrExpression,
ConditionalExpression, Assignment, LeftHandSide): Update
calls to write_exp* and similars in order to use parser state.
(parse_number): Ajust code to use parser state.
(yylex): Likewise.
(java_parse): New function.
(push_variable): Add "struct parser_state" argument. Adjust
code to user parser state.
(push_fieldnames, push_qualified_expression_name,
push_expression_name, insert_exp): Likewise.
* jv-lang.h: Forward declare "struct parser_state".
(java_parse): Add "struct parser_state" argument.
* m2-exp.y (parse_type, parse_m2_type): Rewrite macros to use
parser state.
(yyparse): Redefine macro to m2_parse_internal.
(pstate): New variable.
(type_exp, exp, fblock, variable, type): Update calls to
write_exp* and similars to use parser state.
(yylex): Likewise.
(m2_parse): New function.
* m2-lang.h: Forward declare "struct parser_state".
(m2_parse): Add "struct parser_state" argument.
* objc-lang.c (end_msglist): Add "struct parser_state" argument.
* objc-lang.h: Forward declare "struct parser_state".
(end_msglist): Add "struct parser_state" argument.
* p-exp.y (parse_type): Rewrite macro to use parser state.
(yyparse): Redefine macro to pascal_parse_internal.
(pstate): New variable.
(parse_number): Add "struct parser_state" argument.
(type_exp, exp1, exp, qualified_name, variable): Update calls to
write_exp* and similars in order to use parser state.
(parse_number, yylex): Adjust code to use parser state.
(pascal_parse): New function.
* p-lang.h: Forward declare "struct parser_state".
(pascal_parse): Add "struct parser_state" argument.
* go-exp.y (parse_type): Rewrite macro to use parser state.
(yyparse): Redefine macro to go_parse_internal.
(pstate): New variable.
(parse_number): Add "struct parser_state" argument.
(type_exp, exp1, exp, variable, type): Update calls to
write_exp* and similars in order to use parser state.
(parse_number, lex_one_token, classify_name, yylex): Adjust code
to use parser state.
(go_parse): Likewise.
* go-lang.h: Forward declare "struct parser_state".
(go_parse): Add "struct parser_state" argument.
2014-03-27 22:10:40 +00:00
|
|
|
|
2014-03-27 Sergio Durigan Junior <sergiodj@redhat.com>
|
|
|
|
|
|
|
|
|
|
Remove some globals from our parser.
|
|
|
|
|
* language.c (unk_lang_parser): Add "struct parser_state"
|
|
|
|
|
argument.
|
|
|
|
|
* language.h (struct language_defn) <la_parser>: Likewise.
|
|
|
|
|
* parse.c (expout, expout_size, expout_ptr): Remove variables.
|
|
|
|
|
(initialize_expout): Add "struct parser_state" argument.
|
|
|
|
|
Rewrite function to use the parser state.
|
|
|
|
|
(reallocate_expout, write_exp_elt, write_exp_elt_opcode,
|
|
|
|
|
write_exp_elt_sym, write_exp_elt_block, write_exp_elt_objfile,
|
|
|
|
|
write_exp_elt_longcst, write_exp_elt_dblcst,
|
|
|
|
|
write_exp_elt_decfloatcst, write_exp_elt_type,
|
|
|
|
|
write_exp_elt_intern, write_exp_string, write_exp_string_vector,
|
|
|
|
|
write_exp_bitstring, write_exp_msymbol, mark_struct_expression,
|
|
|
|
|
write_dollar_variable): Likewise.
|
|
|
|
|
(parse_exp_in_context_1): Use parser state.
|
|
|
|
|
(insert_type_address_space): Add "struct parser_state" argument.
|
|
|
|
|
Use parser state.
|
|
|
|
|
(increase_expout_size): New function.
|
|
|
|
|
* parser-defs.h: Forward declare "struct language_defn" and
|
|
|
|
|
"struct parser_state".
|
|
|
|
|
(expout, expout_size, expout_ptr): Remove extern declarations.
|
|
|
|
|
(parse_gdbarch, parse_language): Rewrite macro declarations to
|
|
|
|
|
accept the parser state.
|
|
|
|
|
(struct parser_state): New struct.
|
|
|
|
|
(initialize_expout, reallocate_expout, write_exp_elt_opcode,
|
|
|
|
|
write_exp_elt_sym, write_exp_elt_longcst, write_exp_elt_dblcst,
|
|
|
|
|
write_exp_elt_decfloatcst, write_exp_elt_type,
|
|
|
|
|
write_exp_elt_intern, write_exp_string, write_exp_string_vector,
|
|
|
|
|
write_exp_bitstring, write_exp_elt_block, write_exp_elt_objfile,
|
|
|
|
|
write_exp_msymbol, write_dollar_variable,
|
|
|
|
|
mark_struct_expression, insert_type_address_space): Add "struct
|
|
|
|
|
parser_state" argument.
|
|
|
|
|
(increase_expout_size): New function.
|
|
|
|
|
* utils.c (do_clear_parser_state): New function.
|
|
|
|
|
(make_cleanup_clear_parser_state): Likewise.
|
|
|
|
|
* utils.h (make_cleanup_clear_parser_state): New function
|
|
|
|
|
prototype.
|
|
|
|
|
* aarch64-linux-tdep.c (aarch64_stap_parse_special_token):
|
|
|
|
|
Update calls to write_exp* in order to pass the parser state.
|
|
|
|
|
* arm-linux-tdep.c (arm_stap_parse_special_token): Likewise.
|
|
|
|
|
* i386-tdep.c (i386_stap_parse_special_token_triplet): Likewise.
|
|
|
|
|
(i386_stap_parse_special_token_three_arg_disp): Likewise.
|
|
|
|
|
* ppc-linux-tdep.c (ppc_stap_parse_special_token): Likewise.
|
|
|
|
|
* stap-probe.c (stap_parse_register_operand): Likewise.
|
|
|
|
|
(stap_parse_single_operand): Likewise.
|
|
|
|
|
(stap_parse_argument_1): Likewise.
|
|
|
|
|
(stap_parse_argument): Use parser state.
|
|
|
|
|
* stap-probe.h: Include "parser-defs.h".
|
|
|
|
|
(struct stap_parse_info) <pstate>: New field.
|
|
|
|
|
* c-exp.y (parse_type): Rewrite to use parser state.
|
|
|
|
|
(yyparse): Redefine to c_parse_internal.
|
|
|
|
|
(pstate): New global variable.
|
|
|
|
|
(parse_number): Add "struct parser_state" argument.
|
|
|
|
|
(write_destructor_name): Likewise.
|
|
|
|
|
(type_exp): Update calls to write_exp* and similars in order to
|
|
|
|
|
use parser state.
|
|
|
|
|
(exp1, exp, variable, qualified_name, space_identifier,
|
|
|
|
|
typename, typebase): Likewise.
|
|
|
|
|
(write_destructor_name, parse_number, lex_one_token,
|
|
|
|
|
classify_name, classify_inner_name, c_parse): Add "struct
|
|
|
|
|
parser_state" argument. Update function to use parser state.
|
|
|
|
|
* c-lang.h: Forward declare "struct parser_state".
|
|
|
|
|
(c_parse): Add "struct parser_state" argument.
|
|
|
|
|
* ada-exp.y (parse_type): Rewrite macro to use parser state.
|
|
|
|
|
(yyparse): Redefine macro to ada_parse_internal.
|
|
|
|
|
(pstate): New variable.
|
|
|
|
|
(write_int, write_object_renaming, write_var_or_type,
|
|
|
|
|
write_name_assoc, write_exp_op_with_string, write_ambiguous_var,
|
|
|
|
|
type_int, type_long, type_long_long, type_float, type_double,
|
|
|
|
|
type_long_double, type_char, type_boolean, type_system_address):
|
|
|
|
|
Add "struct parser_state" argument.
|
|
|
|
|
(exp1, primary, simple_exp, relation, and_exp, and_then_exp,
|
|
|
|
|
or_exp, or_else_exp, xor_exp, type_prefix, opt_type_prefix,
|
|
|
|
|
var_or_type, aggregate, aggregate_component_list,
|
|
|
|
|
positional_list, others, component_group,
|
|
|
|
|
component_associations): Update calls to write_exp* and similar
|
|
|
|
|
functions in order to use parser state.
|
|
|
|
|
(ada_parse, write_var_from_sym, write_int,
|
|
|
|
|
write_exp_op_with_string, write_object_renaming,
|
|
|
|
|
find_primitive_type, write_selectors, write_ambiguous_var,
|
|
|
|
|
write_var_or_type, write_name_assoc, type_int, type_long,
|
|
|
|
|
type_long_long, type_float, type_double, type_long_double,
|
|
|
|
|
type_char, type_boolean, type_system_address): Add "struct
|
|
|
|
|
parser_state" argument. Adjust function to use parser state.
|
|
|
|
|
* ada-lang.c (parse): Likewise.
|
|
|
|
|
* ada-lang.h: Forward declare "struct parser_state".
|
|
|
|
|
(ada_parse): Add "struct parser_state" argument.
|
|
|
|
|
* ada-lex.l (processInt, processReal): Likewise. Adjust all
|
|
|
|
|
calls to both functions.
|
|
|
|
|
* f-exp.y (parse_type, parse_f_type): Rewrite macros to use
|
|
|
|
|
parser state.
|
|
|
|
|
(yyparse): Redefine macro to f_parse_internal.
|
|
|
|
|
(pstate): New variable.
|
|
|
|
|
(parse_number): Add "struct parser_state" argument.
|
|
|
|
|
(type_exp, exp, subrange, typebase): Update calls to write_exp*
|
|
|
|
|
and similars in order to use parser state.
|
|
|
|
|
(parse_number): Adjust code to use parser state.
|
|
|
|
|
(yylex): Likewise.
|
|
|
|
|
(f_parse): New function.
|
|
|
|
|
* f-lang.h: Forward declare "struct parser_state".
|
|
|
|
|
(f_parse): Add "struct parser_state" argument.
|
|
|
|
|
* jv-exp.y (parse_type, parse_java_type): Rewrite macros to use
|
|
|
|
|
parser state.
|
|
|
|
|
(yyparse): Redefine macro for java_parse_internal.
|
|
|
|
|
(pstate): New variable.
|
|
|
|
|
(push_expression_name, push_expression_name, insert_exp): Add
|
|
|
|
|
"struct parser_state" argument.
|
|
|
|
|
(type_exp, StringLiteral, Literal, PrimitiveType, IntegralType,
|
|
|
|
|
FloatingPointType, exp1, PrimaryNoNewArray, FieldAccess,
|
|
|
|
|
FuncStart, MethodInvocation, ArrayAccess, PostfixExpression,
|
|
|
|
|
PostIncrementExpression, PostDecrementExpression,
|
|
|
|
|
UnaryExpression, PreIncrementExpression, PreDecrementExpression,
|
|
|
|
|
UnaryExpressionNotPlusMinus, CastExpression,
|
|
|
|
|
MultiplicativeExpression, AdditiveExpression, ShiftExpression,
|
|
|
|
|
RelationalExpression, EqualityExpression, AndExpression,
|
|
|
|
|
ExclusiveOrExpression, InclusiveOrExpression,
|
|
|
|
|
ConditionalAndExpression, ConditionalOrExpression,
|
|
|
|
|
ConditionalExpression, Assignment, LeftHandSide): Update
|
|
|
|
|
calls to write_exp* and similars in order to use parser state.
|
|
|
|
|
(parse_number): Ajust code to use parser state.
|
|
|
|
|
(yylex): Likewise.
|
|
|
|
|
(java_parse): New function.
|
|
|
|
|
(push_variable): Add "struct parser_state" argument. Adjust
|
|
|
|
|
code to user parser state.
|
|
|
|
|
(push_fieldnames, push_qualified_expression_name,
|
|
|
|
|
push_expression_name, insert_exp): Likewise.
|
|
|
|
|
* jv-lang.h: Forward declare "struct parser_state".
|
|
|
|
|
(java_parse): Add "struct parser_state" argument.
|
|
|
|
|
* m2-exp.y (parse_type, parse_m2_type): Rewrite macros to use
|
|
|
|
|
parser state.
|
|
|
|
|
(yyparse): Redefine macro to m2_parse_internal.
|
|
|
|
|
(pstate): New variable.
|
|
|
|
|
(type_exp, exp, fblock, variable, type): Update calls to
|
|
|
|
|
write_exp* and similars to use parser state.
|
|
|
|
|
(yylex): Likewise.
|
|
|
|
|
(m2_parse): New function.
|
|
|
|
|
* m2-lang.h: Forward declare "struct parser_state".
|
|
|
|
|
(m2_parse): Add "struct parser_state" argument.
|
|
|
|
|
* objc-lang.c (end_msglist): Add "struct parser_state" argument.
|
|
|
|
|
* objc-lang.h: Forward declare "struct parser_state".
|
|
|
|
|
(end_msglist): Add "struct parser_state" argument.
|
|
|
|
|
* p-exp.y (parse_type): Rewrite macro to use parser state.
|
|
|
|
|
(yyparse): Redefine macro to pascal_parse_internal.
|
|
|
|
|
(pstate): New variable.
|
|
|
|
|
(parse_number): Add "struct parser_state" argument.
|
|
|
|
|
(type_exp, exp1, exp, qualified_name, variable): Update calls to
|
|
|
|
|
write_exp* and similars in order to use parser state.
|
|
|
|
|
(parse_number, yylex): Adjust code to use parser state.
|
|
|
|
|
(pascal_parse): New function.
|
|
|
|
|
* p-lang.h: Forward declare "struct parser_state".
|
|
|
|
|
(pascal_parse): Add "struct parser_state" argument.
|
|
|
|
|
* go-exp.y (parse_type): Rewrite macro to use parser state.
|
|
|
|
|
(yyparse): Redefine macro to go_parse_internal.
|
|
|
|
|
(pstate): New variable.
|
|
|
|
|
(parse_number): Add "struct parser_state" argument.
|
|
|
|
|
(type_exp, exp1, exp, variable, type): Update calls to
|
|
|
|
|
write_exp* and similars in order to use parser state.
|
|
|
|
|
(parse_number, lex_one_token, classify_name, yylex): Adjust code
|
|
|
|
|
to use parser state.
|
|
|
|
|
(go_parse): Likewise.
|
|
|
|
|
* go-lang.h: Forward declare "struct parser_state".
|
|
|
|
|
(go_parse): Add "struct parser_state" argument.
|
|
|
|
|
|
2014-03-27 19:42:50 +00:00
|
|
|
|
2014-03-27 Doug Evans <dje@google.com>
|
|
|
|
|
|
|
|
|
|
* dwarf2read.c (read_str_index): Delete arg cu. All callers updated.
|
|
|
|
|
|
2014-03-27 19:03:34 +00:00
|
|
|
|
2014-03-27 Doug Evans <dje@google.com>
|
|
|
|
|
|
|
|
|
|
* dwarf2read.c (init_cutu_and_read_dies_no_follow): Fix comments.
|
|
|
|
|
Remove argument abbrev_section. All callers updated.
|
|
|
|
|
|
2014-03-27 18:43:47 +00:00
|
|
|
|
2014-03-27 Doug Evans <dje@google.com>
|
|
|
|
|
|
|
|
|
|
* dwarf2read.c (struct dwarf2_cu): Improve comments for members
|
|
|
|
|
addr_base, ranges_base.
|
|
|
|
|
|
2014-03-26 15:25:03 +00:00
|
|
|
|
2014-03-26 Keith Seitz <keiths@redhat.com>
|
|
|
|
|
|
|
|
|
|
* ada-tasks.c (get_tcb_types_info): Search STRUCT_DOMAIN for
|
|
|
|
|
types, not VAR_DOMAIN.
|
|
|
|
|
|
2014-03-26 04:00:17 +00:00
|
|
|
|
2014-03-25 Sandra Loosemore <sandra@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* features/nios2-cpu.xml: Correct types of "gp", "fp", "ea", and
|
|
|
|
|
"ra" registers.
|
|
|
|
|
* features/nios2-linux.c: Regenerated.
|
|
|
|
|
* features/nios2.c: Regenerated.
|
|
|
|
|
|
2014-03-25 11:45:53 +00:00
|
|
|
|
2014-03-25 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* cli/cli-script.c (script_from_file): Force the interpreter to
|
|
|
|
|
sync mode.
|
|
|
|
|
|
2014-03-18 13:50:54 +00:00
|
|
|
|
2014-03-24 Pierre Langlois <pierre.langlois@embecosm.com>
|
|
|
|
|
|
|
|
|
|
* avr-tdep.c (avr_scan_prologue): Accept push r1 instruction for
|
|
|
|
|
small stack allocation.
|
|
|
|
|
|
2014-03-21 08:26:05 +00:00
|
|
|
|
2014-03-24 Tristan Gingold <gingold@adacore.com>
|
|
|
|
|
|
|
|
|
|
* darwin-nat.c (exc_server): Remove unused prototype.
|
|
|
|
|
(darwin_dump_message): Correctly display data on x86_64.
|
|
|
|
|
(darwin_encode_reply): Fix style.
|
|
|
|
|
Add comments and fix indentation.
|
|
|
|
|
|
2014-03-24 09:10:07 +00:00
|
|
|
|
2014-03-24 Pierre Langlois <pierre.langlois@embecosm.com>
|
2014-03-21 19:46:07 +00:00
|
|
|
|
|
|
|
|
|
* MAINTAINERS (Write After Approval): Add "Pierre Langlois".
|
|
|
|
|
|
2014-03-22 12:22:29 +00:00
|
|
|
|
2014-03-22 Doug Evans <xdje42@gmail.com>
|
|
|
|
|
|
|
|
|
|
* infcmd.c: Whitespace fixes.
|
|
|
|
|
(interrupt_command): Merge two function comments into one.
|
|
|
|
|
|
2014-03-22 11:48:33 +00:00
|
|
|
|
2014-03-22 Doug Evans <xdje42@gmail.com>
|
|
|
|
|
|
|
|
|
|
* infcmd.c (interrupt_command): Renamed from interrupt_target_command.
|
|
|
|
|
All uses updated.
|
|
|
|
|
|
2014-03-11 03:37:10 +00:00
|
|
|
|
2014-03-22 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* remote.c (target_read_live_memory): Remove.
|
|
|
|
|
(memory_xfer_live_readonly_partial): Rename it to
|
|
|
|
|
remote_xfer_live_readonly_partial. Remove argument 'object'.
|
|
|
|
|
All callers updated. Call remote_read_bytes_1
|
|
|
|
|
instead of target_read_live_memory.
|
|
|
|
|
* tracepoint.c (set_traceframe_number): Remove.
|
|
|
|
|
(make_cleanup_restore_traceframe_number): Likewise .
|
|
|
|
|
* tracepoint.h (set_traceframe_number): Remove declaration.
|
|
|
|
|
(make_cleanup_restore_traceframe_number): Likewise.
|
|
|
|
|
|
2014-03-11 03:19:12 +00:00
|
|
|
|
2014-03-22 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* remote.c (remote_read_bytes): Move code on reading from the
|
|
|
|
|
remote stub to ...
|
|
|
|
|
(remote_read_bytes_1): ... here. New function.
|
|
|
|
|
|
Move the traceframe_available_memory code from memory_xfer_partial_1 down to the targets
As a follow-up to
[PATCH 7/8] Adjust read_value_memory to use to_xfer_partial
https://sourceware.org/ml/gdb-patches/2014-02/msg00384.html
this patch moves traceframe_available_memory down to the target side.
After this patch, the gdb core code is cleaner, and code on handling
unavailable memory is moved to remote/tfile/ctf targets.
In details, this patch moves traceframe_available_memory code from
memory_xfer_partial_1 to remote target only, so remote target still
uses traceframe_info mechanism to check unavailable memory, and use
remote_ops to read them from read-only sections. We don't use
traceframe_info mechanism for tfile and ctf target, because it is
fast to iterate all traceframes from trace file, so the summary
information got from traceframe_info is not necessary.
This patch also moves two functions to remote.c from target.c,
because they are only used in remote.c. I'll clean them up in another
patch.
gdb:
2014-03-22 Yao Qi <yao@codesourcery.com>
* ctf.c (ctf_xfer_partial): Check the return value of
exec_read_partial_read_only, if it is not TARGET_XFER_OK,
return TARGET_XFER_UNAVAILABLE.
* tracefile-tfile.c (tfile_xfer_partial): Likewise.
* target.c (target_read_live_memory): Move it to remote.c.
(memory_xfer_live_readonly_partial): Likewise.
(memory_xfer_partial_1): Move some code to remote_read_bytes.
* remote.c (target_read_live_memory): Moved from target.c.
(memory_xfer_live_readonly_partial): Likewise.
(remote_read_bytes): New, factored out from
memory_xfer_partial_1.
2014-03-11 02:47:48 +00:00
|
|
|
|
2014-03-22 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* ctf.c (ctf_xfer_partial): Check the return value of
|
|
|
|
|
exec_read_partial_read_only, if it is not TARGET_XFER_OK,
|
|
|
|
|
return TARGET_XFER_UNAVAILABLE.
|
|
|
|
|
* tracefile-tfile.c (tfile_xfer_partial): Likewise.
|
|
|
|
|
* target.c (target_read_live_memory): Move it to remote.c.
|
|
|
|
|
(memory_xfer_live_readonly_partial): Likewise.
|
|
|
|
|
(memory_xfer_partial_1): Move some code to remote_read_bytes.
|
|
|
|
|
* remote.c (target_read_live_memory): Moved from target.c.
|
|
|
|
|
(memory_xfer_live_readonly_partial): Likewise.
|
|
|
|
|
(remote_read_bytes): Factored out from
|
|
|
|
|
memory_xfer_partial_1.
|
|
|
|
|
|
2014-03-22 06:44:39 +00:00
|
|
|
|
2014-03-21 Daniel Gutson <daniel.gutson@tallertechnologies.com>
|
|
|
|
|
|
|
|
|
|
* extension.c (eval_ext_lang_from_control_command): Avoid dereferencing
|
|
|
|
|
NULL pointer.
|
|
|
|
|
|
2014-03-21 11:08:44 +00:00
|
|
|
|
2014-03-21 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* infrun.c (normal_stop): Extend comment.
|
|
|
|
|
|
Fix internal warning when "gdb -p xxx"
ps -e | grep a.out
28886 pts/12 00:00:00 a.out
gdb -p 28886
Loaded symbols for /lib64/ld-linux-x86-64.so.2
0x0000003b0ccbc970 in __nanosleep_nocancel () from /lib64/libc.so.6
../../binutils-gdb/gdb/cleanups.c:265: internal-warning: restore_my_cleanups has found a stale cleanup
A problem internal to GDB has been detected,
further debugging may prove unreliable.
Quit this debugging session? (y or n)
The backtrace of this issue:
(gdb) bt
file=0x8b0c10 "s' failed.", line=265, fmt=0x8b0c38 "nutils-gdb/gdb/cleanups.c",
ap=0x7fff803e3ed8) at ../../binutils-gdb/gdb/utils.c:748
fmt=0x8b0c38 "nutils-gdb/gdb/cleanups.c", ap=0x7fff803e3ed8)
at ../../binutils-gdb/gdb/utils.c:799
string=0x8b0c38 "nutils-gdb/gdb/cleanups.c") at ../../binutils-gdb/gdb/utils.c:809
at ../../binutils-gdb/gdb/cleanups.c:265
at ../../binutils-gdb/gdb/cleanups.c:276
at ../../binutils-gdb/gdb/exceptions.c:142
at ../../binutils-gdb/gdb/exceptions.c:203
command=0x5d5fb8 <attach_command_continuation_free_args+18>, arg=0x7fff803e525b "2914",
from_tty=1, mask=RETURN_MASK_ALL) at ../../binutils-gdb/gdb/exceptions.c:549
---Type <return> to continue, or q <return> to quit---
func_args=0x7fff803e4280, errstring=0x8cf2e4 "/local/bin", mask=RETURN_MASK_ALL)
at ../../binutils-gdb/gdb/exceptions.c:522
This is a new issue. It is introduced by commit https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h=8bc2fe488957946d2cdccda3ce8d4f39e4003ea0
It removed the discard_cleanups (back_to) inside attach_command.
Then restore_my_cleanups will throw a internal_warning.
https://sourceware.org/ml/gdb-patches/2014-03/msg00374.html
2014-03-21 Hui Zhu <hui@codesourcery.com>
Pedro Alves <palves@redhat.com>
* darwin-nat.c (darwin_pid_to_exec_file): Change xmalloc to
static buffer.
* fbsd-nat.c (fbsd_pid_to_exec_file): Ditto.
* linux-nat.c (linux_child_pid_to_exec_file): Ditto.
* nbsd-nat.c (nbsd_pid_to_exec_file): Ditto.
2014-03-21 02:25:41 +00:00
|
|
|
|
2014-03-21 Hui Zhu <hui@codesourcery.com>
|
|
|
|
|
Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* darwin-nat.c (darwin_pid_to_exec_file): Change xmalloc to
|
|
|
|
|
static buffer.
|
|
|
|
|
* fbsd-nat.c (fbsd_pid_to_exec_file): Ditto.
|
|
|
|
|
* linux-nat.c (linux_child_pid_to_exec_file): Ditto.
|
|
|
|
|
* nbsd-nat.c (nbsd_pid_to_exec_file): Ditto.
|
|
|
|
|
|
2014-03-20 21:41:56 +00:00
|
|
|
|
2014-03-20 Maciej W. Rozycki <macro@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* mi/mi-interp.c (mi_memory_changed): Avoid using the ISO C99
|
|
|
|
|
`z' formatted output modifier.
|
|
|
|
|
|
2014-03-20 21:08:31 +00:00
|
|
|
|
2014-03-20 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
Sergio Durigan Junior <sergiodj@redhat.com>
|
|
|
|
|
|
|
|
|
|
* probe.c (parse_probes): Turn assert into an ordinary error.
|
|
|
|
|
* break-catch-throw.c (re_set_exception_catchpoint): Ignore
|
|
|
|
|
exceptions when parsing probes. Rearrange the code for clarity.
|
|
|
|
|
|
Fix py-finish-breakpoint.exp with target async.
With target async enabled, py-finish-breakpoint.exp triggers an
assertion failure.
The failure occurs because execute_command re-enters the event loop in
some circumstances, and in this case resets the sync_execution flag.
Then later GDB reaches this assertion in normal_stop:
gdb_assert (sync_execution || !target_can_async_p ());
In detail:
#1 - A synchronous execution command is run. sync_execution is set.
#2 - A python breakpoint is hit (TARGET_WAITKIND_STOPPED), and the
corresponding Python breakpoint's stop method is executed. When
and while python commands are executed, interpreter_async is
forced to 0.
#3 - The Python stop method happens to execute a not-execution-related
gdb command. In this case, "where 1".
#4 - Seeing that sync_execution is set, execute_command nests a new
event loop (although that wasn't necessary; this is the problem).
#5 - The linux-nat target's pipe in the event loop happens to be
marked. That's normal, due to this in linux_nat_wait:
/* If we requested any event, and something came out, assume there
may be more. If we requested a specific lwp or process, also
assume there may be more. */
The nested event loop thus immediately wakes up and calls
target_wait. No thread is actually executing in the inferior, so
the target returns TARGET_WAITKIND_NO_RESUMED.
#6 - normal_stop is reached. GDB prints "No unwaited-for children
left.", and resets the sync_execution flag (IOW, there are no
resumed threads left, so the synchronous command is considered
completed.) This is already bogus. We were handling a
breakpoint!
#7 - the nested event loop unwinds/ends. GDB is now back to handling
the python stop method (TARGET_WAITKIND_STOPPED), which decides
the breakpoint should stop. normal_stop is called for this
event. However, normal_stop actually works with the _last_
reported target status:
void
normal_stop (void)
{
struct target_waitstatus last;
ptid_t last_ptid;
struct cleanup *old_chain = make_cleanup (null_cleanup, NULL);
...
get_last_target_status (&last_ptid, &last);
...
if (last.kind == TARGET_WAITKIND_NO_RESUMED)
{
gdb_assert (sync_execution || !target_can_async_p ());
target_terminal_ours_for_output ();
printf_filtered (_("No unwaited-for children left.\n"));
}
And due to the nesting in execute command, the last event is now
TARGET_WAITKIND_NO_RESUMED, not the actual breakpoint event being
handled. This could be seen to be broken in itself, but we can
leave fixing that for another pass. The assertion is reached, and
fails.
execute_command has a comment explaining when it should synchronously
wait for events:
/* If the interpreter is in sync mode (we're running a user
command's list, running command hooks or similars), and we
just ran a synchronous command that started the target, wait
for that command to end. */
However, the code did not follow this comment -- it didn't check to
see if the command actually started the target, just whether the
target was executing a sync command at this point.
This patch fixes the problem by noting whether the target was
executing in sync_execution mode before running the command, and then
augmenting the condition to test this as well.
2014-03-20 Tom Tromey <tromey@redhat.com>
PR gdb/14135
* top.c (execute_command): Only dispatch events if the command
started the target.
2014-03-04 18:32:52 +00:00
|
|
|
|
2014-03-20 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR gdb/14135
|
|
|
|
|
* top.c (execute_command): Only dispatch events if the command
|
|
|
|
|
started the target.
|
|
|
|
|
|
make dprintf.exp pass in target async mode
When target-async is enabled, dprintf.exp fails:
Running ../../../src/gdb/testsuite/gdb.base/dprintf.exp ...
FAIL: gdb.base/dprintf.exp: 1st dprintf, call
FAIL: gdb.base/dprintf.exp: 2nd dprintf, call
FAIL: gdb.base/dprintf.exp: Set dprintf function
FAIL: gdb.base/dprintf.exp: 1st dprintf, fprintf
FAIL: gdb.base/dprintf.exp: 2nd dprintf, fprintf
Breakpoint 2, main (argc=1, argv=0x7fffffffd3f8) at ../../../src/gdb/testsuite/gdb.base/dprintf.c:33
33 int loc = 1234;
(gdb) continue
Continuing.
kickoff 1234
also to stderr 1234
At foo entry
(gdb) FAIL: gdb.base/dprintf.exp: 1st dprintf, call
The problem is that GDB gave the prompt back to the user too early.
This happens when calling functions while handling an event that
doesn't cause a user visible stop. dprintf with "set dprintf-style
gdb" is one such case. This patch adds a test case that has a
breakpoint with a condition that calls a function that returns false,
so that regression testing isn't dependent on the implementation of
dprintf.
The problem happens because run_inferior_call causes GDB to forget
that it is running in sync_execution mode, so any event that runs an
inferior call causes fetch_inferior_event to display the prompt, even
if the event should not result in a user visible stop (that is, gdb
resumes the inferior and waits for the next event).
This patch fixes the issue by noticing when GDB was in sync_execution
mode in run_inferior_call, and taking care to restore this state
afterward.
gdb/
2014-03-20 Tom Tromey <tromey@redhat.com>
PR cli/15718
* infcall.c: Include event-top.h.
(run_inferior_call): Call async_disable_stdin if needed.
gdb/testsuite/
2014-03-20 Tom Tromey <tromey@redhat.com>
Pedro Alves <palves@redhat.com>
PR cli/15718
* gdb.base/condbreak-call-false.c: New file.
* gdb.base/condbreak-call-false.exp: New file.
2014-03-20 17:03:43 +00:00
|
|
|
|
2014-03-20 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR cli/15718
|
|
|
|
|
* infcall.c: Include event-top.h.
|
|
|
|
|
(run_inferior_call): Call async_disable_stdin if needed.
|
|
|
|
|
|
Handle multiple step-overs.
This test fails with current mainline.
If the program stopped for a breakpoint in thread 1, and then the user
switches to thread 2, and resumes the program, GDB first switches back
to thread 1 to step it over the breakpoint, in order to make progress.
However, that logic only considers the last reported event, assuming
only one thread needs that stepping over dance.
That's actually not true when we play with scheduler-locking. The
patch adds an example to the testsuite of multiple threads needing a
step-over before the stepping thread can be resumed. With current
mainline, the program re-traps the same breakpoint it had already
trapped before.
E.g.:
Breakpoint 2, main () at ../../../src/gdb/testsuite/gdb.threads/multiple-step-overs.c:99
99 wait_threads (); /* set wait-threads breakpoint here */
(gdb) PASS: gdb.threads/multiple-step-overs.exp: step: continue to breakpoint: run to breakpoint
info threads
Id Target Id Frame
3 Thread 0x7ffff77c9700 (LWP 4310) "multiple-step-o" 0x00000000004007ca in child_function_3 (arg=0x1) at ../../../src/gdb/testsuite/gdb.threads/multiple-step-overs.c:43
2 Thread 0x7ffff7fca700 (LWP 4309) "multiple-step-o" 0x0000000000400827 in child_function_2 (arg=0x0) at ../../../src/gdb/testsuite/gdb.threads/multiple-step-overs.c:60
* 1 Thread 0x7ffff7fcb740 (LWP 4305) "multiple-step-o" main () at ../../../src/gdb/testsuite/gdb.threads/multiple-step-overs.c:99
(gdb) PASS: gdb.threads/multiple-step-overs.exp: step: info threads shows all threads
set scheduler-locking on
(gdb) PASS: gdb.threads/multiple-step-overs.exp: step: set scheduler-locking on
break 44
Breakpoint 3 at 0x4007d3: file ../../../src/gdb/testsuite/gdb.threads/multiple-step-overs.c, line 44.
(gdb) break 61
Breakpoint 4 at 0x40082d: file ../../../src/gdb/testsuite/gdb.threads/multiple-step-overs.c, line 61.
(gdb) thread 3
[Switching to thread 3 (Thread 0x7ffff77c9700 (LWP 4310))]
#0 0x00000000004007ca in child_function_3 (arg=0x1) at ../../../src/gdb/testsuite/gdb.threads/multiple-step-overs.c:43
43 (*myp) ++;
(gdb) PASS: gdb.threads/multiple-step-overs.exp: step: thread 3
continue
Continuing.
Breakpoint 3, child_function_3 (arg=0x1) at ../../../src/gdb/testsuite/gdb.threads/multiple-step-overs.c:44
44 callme (); /* set breakpoint thread 3 here */
(gdb) PASS: gdb.threads/multiple-step-overs.exp: step: continue to breakpoint: run to breakpoint in thread 3
p *myp = 0
$1 = 0
(gdb) PASS: gdb.threads/multiple-step-overs.exp: step: unbreak loop in thread 3
thread 2
[Switching to thread 2 (Thread 0x7ffff7fca700 (LWP 4309))]
#0 0x0000000000400827 in child_function_2 (arg=0x0) at ../../../src/gdb/testsuite/gdb.threads/multiple-step-overs.c:60
60 (*myp) ++;
(gdb) PASS: gdb.threads/multiple-step-overs.exp: step: thread 2
continue
Continuing.
Breakpoint 4, child_function_2 (arg=0x0) at ../../../src/gdb/testsuite/gdb.threads/multiple-step-overs.c:61
61 callme (); /* set breakpoint thread 2 here */
(gdb) PASS: gdb.threads/multiple-step-overs.exp: step: continue to breakpoint: run to breakpoint in thread 2
p *myp = 0
$2 = 0
(gdb) PASS: gdb.threads/multiple-step-overs.exp: step: unbreak loop in thread 2
thread 1
[Switching to thread 1 (Thread 0x7ffff7fcb740 (LWP 4305))]
#0 main () at ../../../src/gdb/testsuite/gdb.threads/multiple-step-overs.c:99
99 wait_threads (); /* set wait-threads breakpoint here */
(gdb) PASS: gdb.threads/multiple-step-overs.exp: step: thread 1
set scheduler-locking off
(gdb) PASS: gdb.threads/multiple-step-overs.exp: step: set scheduler-locking off
At this point all thread are stopped for a breakpoint that needs stepping over.
(gdb) step
Breakpoint 2, main () at ../../../src/gdb/testsuite/gdb.threads/multiple-step-overs.c:99
99 wait_threads (); /* set wait-threads breakpoint here */
(gdb) FAIL: gdb.threads/multiple-step-overs.exp: step
But that "step" retriggers the same breakpoint instead of making
progress.
The patch teaches GDB to step over all breakpoints of all threads
before resuming the stepping thread.
Tested on x86_64 Fedora 17, against pristine mainline, and also my
branch that implements software single-stepping on x86.
gdb/
2014-03-20 Pedro Alves <palves@redhat.com>
* infrun.c (prepare_to_proceed): Delete.
(thread_still_needs_step_over): New function.
(find_thread_needs_step_over): New function.
(proceed): If the current thread needs a step-over, set its
steping_over_breakpoint flag. Adjust to use
find_thread_needs_step_over instead of prepare_to_proceed.
(process_event_stop_test): For BPSTAT_WHAT_STOP_NOISY and
BPSTAT_WHAT_STOP_SILENT, assume the thread stopped for a
breakpoint.
(switch_back_to_stepped_thread): Step over breakpoints of all
threads not the stepping thread, before switching back to the
stepping thread.
gdb/testsuite/
2014-03-20 Pedro Alves <palves@redhat.com>
* gdb.threads/multiple-step-overs.c: New file.
* gdb.threads/multiple-step-overs.exp: New file.
* gdb.threads/signal-while-stepping-over-bp-other-thread.exp:
Adjust expected infrun debug output.
2014-03-20 13:26:32 +00:00
|
|
|
|
2014-03-20 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* infrun.c (prepare_to_proceed): Delete.
|
|
|
|
|
(thread_still_needs_step_over): New function.
|
|
|
|
|
(find_thread_needs_step_over): New function.
|
|
|
|
|
(proceed): If the current thread needs a step-over, set its
|
|
|
|
|
steping_over_breakpoint flag. Adjust to use
|
|
|
|
|
find_thread_needs_step_over instead of prepare_to_proceed.
|
|
|
|
|
(process_event_stop_test): For BPSTAT_WHAT_STOP_NOISY and
|
|
|
|
|
BPSTAT_WHAT_STOP_SILENT, assume the thread stopped for a
|
|
|
|
|
breakpoint.
|
|
|
|
|
(switch_back_to_stepped_thread): Step over breakpoints of all
|
|
|
|
|
threads not the stepping thread, before switching back to the
|
|
|
|
|
stepping thread.
|
|
|
|
|
|
Fix for even more missed events; eliminate thread-hop code.
Even with deferred_step_ptid out of the way, GDB can still lose
watchpoints.
If a watchpoint triggers and the PC points to an address where a
thread-specific breakpoint for another thread is set, the thread-hop
code triggers, and we lose the watchpoint:
if (ecs->event_thread->suspend.stop_signal == GDB_SIGNAL_TRAP)
{
int thread_hop_needed = 0;
struct address_space *aspace =
get_regcache_aspace (get_thread_regcache (ecs->ptid));
/* Check if a regular breakpoint has been hit before checking
for a potential single step breakpoint. Otherwise, GDB will
not see this breakpoint hit when stepping onto breakpoints. */
if (regular_breakpoint_inserted_here_p (aspace, stop_pc))
{
if (!breakpoint_thread_match (aspace, stop_pc, ecs->ptid))
thread_hop_needed = 1;
^^^^^^^^^^^^^^^^^^^^^
}
And on software single-step targets, even without a thread-specific
breakpoint in the way, here in the thread-hop code:
else if (singlestep_breakpoints_inserted_p)
{
...
if (!ptid_equal (singlestep_ptid, ecs->ptid)
&& in_thread_list (singlestep_ptid))
{
/* If the PC of the thread we were trying to single-step
has changed, discard this event (which we were going
to ignore anyway), and pretend we saw that thread
trap. This prevents us continuously moving the
single-step breakpoint forward, one instruction at a
time. If the PC has changed, then the thread we were
trying to single-step has trapped or been signalled,
but the event has not been reported to GDB yet.
There might be some cases where this loses signal
information, if a signal has arrived at exactly the
same time that the PC changed, but this is the best
we can do with the information available. Perhaps we
should arrange to report all events for all threads
when they stop, or to re-poll the remote looking for
this particular thread (i.e. temporarily enable
schedlock). */
CORE_ADDR new_singlestep_pc
= regcache_read_pc (get_thread_regcache (singlestep_ptid));
if (new_singlestep_pc != singlestep_pc)
{
enum gdb_signal stop_signal;
if (debug_infrun)
fprintf_unfiltered (gdb_stdlog, "infrun: unexpected thread,"
" but expected thread advanced also\n");
/* The current context still belongs to
singlestep_ptid. Don't swap here, since that's
the context we want to use. Just fudge our
state and continue. */
stop_signal = ecs->event_thread->suspend.stop_signal;
ecs->event_thread->suspend.stop_signal = GDB_SIGNAL_0;
ecs->ptid = singlestep_ptid;
ecs->event_thread = find_thread_ptid (ecs->ptid);
ecs->event_thread->suspend.stop_signal = stop_signal;
stop_pc = new_singlestep_pc;
}
else
{
if (debug_infrun)
fprintf_unfiltered (gdb_stdlog,
"infrun: unexpected thread\n");
thread_hop_needed = 1;
stepping_past_singlestep_breakpoint = 1;
saved_singlestep_ptid = singlestep_ptid;
}
}
}
we either end up with thread_hop_needed, ignoring the watchpoint
SIGTRAP, or switch to the stepping thread, again ignoring that the
SIGTRAP could be for some other event.
The new test added by this patch exercises both paths.
So the fix is similar to the deferred_step_ptid fix -- defer the
thread hop to _after_ the SIGTRAP had a change of passing through the
regular bpstat handling. If the wrong thread hits a breakpoint, we'll
just end up with BPSTAT_WHAT_SINGLE, and if nothing causes a stop,
keep_going starts a step-over.
Most of the stepping_past_singlestep_breakpoint mechanism is really
not necessary -- setting the thread to step over a breakpoint with
thread->trap_expected is sufficient to keep all other threads locked.
It's best to still keep the flag in some form though, because when we
get to keep_going, the software single-step breakpoint we need to step
over is already gone -- an optimization done by a follow up patch will
check whether a step-over is still be necessary by looking to see
whether the breakpoint is still there, and would find the thread no
longer needs a step-over, while we still want it.
Special care is still needed to handle the case of PC of the thread we
were trying to single-step having changed, like in the old code. We
can't just keep_going and re-step it, as in that case we can over-step
the thread (if it was already done with the step, but hasn't reported
it yet, we'd ask it to step even further). That's now handled in
switch_back_to_stepped_thread. As bonus, we're now using a technique
that doesn't lose signals, unlike the old code -- we now insert a
breakpoint at PC, and resume, which either reports the breakpoint
immediately, or any pending signal.
Tested on x86_64 Fedora 17, against pristine mainline, and against a
branch that implements software single-step on x86.
gdb/
2014-03-20 Pedro Alves <palves@redhat.com>
* breakpoint.c (single_step_breakpoint_inserted_here_p): Make
extern.
* breakpoint.h (single_step_breakpoint_inserted_here_p): Declare.
* infrun.c (saved_singlestep_ptid)
(stepping_past_singlestep_breakpoint): Delete.
(resume): Remove stepping_past_singlestep_breakpoint handling.
(proceed): Store the prev_pc of the stepping thread too.
(init_wait_for_inferior): Adjust. Clear singlestep_ptid and
singlestep_pc.
(enum infwait_states): Delete infwait_thread_hop_state.
(struct execution_control_state) <hit_singlestep_breakpoint>: New
field.
(handle_inferior_event): Adjust.
(handle_signal_stop): Delete stepping_past_singlestep_breakpoint
handling and the thread-hop code. Before removing single-step
breakpoints, check whether the thread hit a single-step breakpoint
of another thread. If it did, the trap is not a random signal.
(switch_back_to_stepped_thread): If the event thread hit a
single-step breakpoint, unblock it before switching to the
stepping thread. Handle the case of the stepped thread having
advanced already.
(keep_going): Handle the case of the current thread moving past a
single-step breakpoint.
gdb/testsuite/
2014-03-20 Pedro Alves <palves@redhat.com>
* gdb.threads/step-over-trips-on-watchpoint.c: New file.
* gdb.threads/step-over-trips-on-watchpoint.exp: New file.
2014-03-20 13:26:32 +00:00
|
|
|
|
2014-03-20 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* breakpoint.c (single_step_breakpoint_inserted_here_p): Make
|
|
|
|
|
extern.
|
|
|
|
|
* breakpoint.h (single_step_breakpoint_inserted_here_p): Declare.
|
|
|
|
|
* infrun.c (saved_singlestep_ptid)
|
|
|
|
|
(stepping_past_singlestep_breakpoint): Delete.
|
|
|
|
|
(resume): Remove stepping_past_singlestep_breakpoint handling.
|
|
|
|
|
(proceed): Store the prev_pc of the stepping thread too.
|
|
|
|
|
(init_wait_for_inferior): Adjust. Clear singlestep_ptid and
|
|
|
|
|
singlestep_pc.
|
|
|
|
|
(enum infwait_states): Delete infwait_thread_hop_state.
|
|
|
|
|
(struct execution_control_state) <hit_singlestep_breakpoint>: New
|
|
|
|
|
field.
|
|
|
|
|
(handle_inferior_event): Adjust.
|
|
|
|
|
(handle_signal_stop): Delete stepping_past_singlestep_breakpoint
|
|
|
|
|
handling and the thread-hop code. Before removing single-step
|
|
|
|
|
breakpoints, check whether the thread hit a single-step breakpoint
|
|
|
|
|
of another thread. If it did, the trap is not a random signal.
|
|
|
|
|
(switch_back_to_stepped_thread): If the event thread hit a
|
|
|
|
|
single-step breakpoint, unblock it before switching to the
|
|
|
|
|
stepping thread. Handle the case of the stepped thread having
|
|
|
|
|
advanced already.
|
|
|
|
|
(keep_going): Handle the case of the current thread moving past a
|
|
|
|
|
single-step breakpoint.
|
|
|
|
|
|
PR breakpoints/7143 - Watchpoint does not trigger when first set
Say the program is stopped at a breakpoint, and the user sets a
watchpoint. When the program is next resumed, GDB will first step
over the breakpoint, as explained in the manual:
@value {GDBN} normally ignores breakpoints when it resumes
execution, until at least one instruction has been executed. If it
it did not do this, you would be unable to proceed past a breakpoint
without first disabling the breakpoint. This rule applies whether
or not the breakpoint already existed when your program stopped.
However, GDB currently also removes watchpoints, catchpoints, etc.,
and that means that the first instruction off the breakpoint does not
trigger the watchpoint, catchpoint, etc.
testsuite/gdb.base/watchpoint.exp has a kfail for this.
The PR proposes installing watchpoints only when stepping over a
breakpoint, but that misses catchpoints, etc.
A better fix would instead work from the opposite direction -- remove
only real breakpoints, leaving all other kinds of breakpoints
inserted.
But, going further, it's really a waste to constantly remove/insert
all breakpoints when stepping over a single breakpoint (generating a
pair of RSP z/Z packets for each breakpoint), so the fix goes a step
further and makes GDB remove _only_ the breakpoint being stepped over,
leaving all others installed. This then has the added benefit of
reducing breakpoint-related RSP traffic substancialy when there are
many breakpoints set.
gdb/
2014-03-20 Pedro Alves <palves@redhat.com>
PR breakpoints/7143
* breakpoint.c (should_be_inserted): Don't insert breakpoints that
are being stepped over.
(breakpoint_address_match): Make extern.
* breakpoint.h (breakpoint_address_match): New declaration.
* inferior.h (stepping_past_instruction_at): New declaration.
* infrun.c (struct step_over_info): New type.
(step_over_info): New global.
(set_step_over_info, clear_step_over_info)
(stepping_past_instruction_at): New functions.
(handle_inferior_event): Clear the step-over info when
trap_expected is cleared.
(resume): Remove now stale comment.
(clear_proceed_status): Clear step-over info.
(proceed): Adjust step-over handling to set or clear the step-over
info instead of removing all breakpoints.
(handle_signal_stop): When setting up a thread-hop, don't remove
breakpoints here.
(stop_stepping): Clear step-over info.
(keep_going): Adjust step-over handling to set or clear step-over
info and then always inserting breakpoints, instead of removing
all breakpoints when stepping over one.
gdb/testsuite/
2014-03-20 Pedro Alves <palves@redhat.com>
PR breakpoints/7143
* gdb.base/watchpoint.exp: Mention bugzilla bug number instead of
old gnats gdb/38. Remove kfail. Adjust to use gdb_test instead
of gdb_test_multiple.
* gdb.cp/annota2.exp: Remove kfail for gdb/38.
* gdb.cp/annota3.exp: Remove kfail for gdb/38.
2014-03-20 13:26:32 +00:00
|
|
|
|
2014-03-20 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR breakpoints/7143
|
|
|
|
|
* breakpoint.c (should_be_inserted): Don't insert breakpoints that
|
|
|
|
|
are being stepped over.
|
|
|
|
|
(breakpoint_address_match): Make extern.
|
|
|
|
|
* breakpoint.h (breakpoint_address_match): New declaration.
|
|
|
|
|
* inferior.h (stepping_past_instruction_at): New declaration.
|
|
|
|
|
* infrun.c (struct step_over_info): New type.
|
|
|
|
|
(step_over_info): New global.
|
|
|
|
|
(set_step_over_info, clear_step_over_info)
|
|
|
|
|
(stepping_past_instruction_at): New functions.
|
|
|
|
|
(handle_inferior_event): Clear the step-over info when
|
|
|
|
|
trap_expected is cleared.
|
|
|
|
|
(resume): Remove now stale comment.
|
|
|
|
|
(clear_proceed_status): Clear step-over info.
|
|
|
|
|
(proceed): Adjust step-over handling to set or clear the step-over
|
|
|
|
|
info instead of removing all breakpoints.
|
|
|
|
|
(handle_signal_stop): When setting up a thread-hop, don't remove
|
|
|
|
|
breakpoints here.
|
|
|
|
|
(stop_stepping): Clear step-over info.
|
|
|
|
|
(keep_going): Adjust step-over handling to set or clear step-over
|
|
|
|
|
info and then always inserting breakpoints, instead of removing
|
|
|
|
|
all breakpoints when stepping over one.
|
|
|
|
|
|
Fix missing breakpoint/watchpoint hits, eliminate deferred_step_ptid.
Consider the case of the user doing "step" in thread 2, while thread 1
had previously stopped for a breakpoint. In order to make progress,
GDB makes thread 1 step over its breakpoint first (with all other
threads stopped), and once that is over, thread 2 then starts stepping
(with thread 1 and all others running free, by default). If GDB
didn't do that, thread 1 would just trip on the same breakpoint
immediately again. This is what the prepare_to_proceed /
deferred_step_ptid code is all about.
However, deferred_step_ptid code resumes the target with:
resume (1, GDB_SIGNAL_0);
prepare_to_wait (ecs);
return;
Recall we were just stepping over a breakpoint when we get here. That
means that _nothing_ had installed breakpoints yet! If there's
another breakpoint just after the breakpoint that was just stepped,
we'll miss it. The fix for that would be to use keep_going instead.
However, there are more problems. What if the instruction that was
just single-stepped triggers a watchpoint? Currently, GDB just
happily resumes the thread, losing that too...
Missed watchpoints will need yet further fixes, but we should keep
those in mind.
So the fix must be to let the trap fall through the regular bpstat
handling, and only if no breakpoint, watchpoint, etc. claims the trap,
shall we switch back to the stepped thread.
Now, nowadays, we have code at the tail end of trap handling that does
exactly that -- switch back to the stepped thread
(switch_back_to_the_stepped_thread).
So the deferred_step_ptid code is just standing in the way, and can
simply be eliminated, fixing bugs in the process. Sweet.
The comment about spurious "Switching to ..." made me pause, but is
actually stale nowadays. That isn't needed anymore.
previous_inferior_ptid used to be re-set at each (internal) event, but
now it's only touched in proceed and normal stop.
The two tests added by this patch fail without the fix.
Tested on x86_64 Fedora 17 (also against my software single-stepping
on x86 branch).
gdb/
2014-03-20 Pedro Alves <palves@redhat.com>
* infrun.c (previous_inferior_ptid): Adjust comment.
(deferred_step_ptid): Delete.
(infrun_thread_ptid_changed, prepare_to_proceed)
(init_wait_for_inferior): Adjust.
(handle_signal_stop): Delete deferred_step_ptid handling.
gdb/testsuite/
2014-03-20 Pedro Alves <palves@redhat.com>
* gdb.threads/step-over-lands-on-breakpoint.c: New file.
* gdb.threads/step-over-lands-on-breakpoint.exp: New file.
2014-03-20 13:26:31 +00:00
|
|
|
|
2014-03-20 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* infrun.c (previous_inferior_ptid): Adjust comment.
|
|
|
|
|
(deferred_step_ptid): Delete.
|
|
|
|
|
(infrun_thread_ptid_changed, prepare_to_proceed)
|
|
|
|
|
(init_wait_for_inferior): Adjust.
|
|
|
|
|
(handle_signal_stop): Delete deferred_step_ptid handling.
|
|
|
|
|
|
2014-03-18 21:48:06 +00:00
|
|
|
|
2014-03-18 Jan Kratochvil <jan.kratochvil@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR gdb/15358
|
|
|
|
|
* defs.h (sync_quit_force_run): New declaration.
|
|
|
|
|
(QUIT): Check also SYNC_QUIT_FORCE_RUN.
|
|
|
|
|
* event-top.c (async_sigterm_handler): New declaration.
|
|
|
|
|
(async_sigterm_token): New variable.
|
|
|
|
|
(async_init_signals): Create also async_sigterm_token.
|
|
|
|
|
(async_sigterm_handler): New function.
|
|
|
|
|
(sync_quit_force_run): New variable.
|
|
|
|
|
(handle_sigterm): Replace quit_force call by other calls.
|
|
|
|
|
* utils.c (quit): Call quit_force if SYNC_QUIT_FORCE_RUN.
|
|
|
|
|
|
2014-03-18 19:39:41 +00:00
|
|
|
|
2014-03-18 Maciej W. Rozycki <macro@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* rs6000-tdep.c (rs6000_frame_cache): Correct little-endian GPR
|
|
|
|
|
offset into SPE pseudo registers.
|
|
|
|
|
|
PR gdb/13860: make "-exec-foo"'s MI output equal to "foo"'s MI output.
Part of PR gdb/13860 is about the mi-solib.exp test's output being
different in sync vs async modes.
sync:
>./gdb -nx -q ./testsuite/gdb.mi/solib-main -ex "set stop-on-solib-events 1" -ex "set target-async off" -i=mi
=thread-group-added,id="i1"
~"Reading symbols from /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/solib-main..."
~"done.\n"
(gdb)
&"start\n"
~"Temporary breakpoint 1 at 0x400608: file ../../../src/gdb/testsuite/gdb.mi/solib-main.c, line 21.\n"
=breakpoint-created,bkpt={number="1",type="breakpoint",disp="del",enabled="y",addr="0x0000000000400608",func="main",file="../../../src/gdb/testsuite/gdb.mi/solib-main.c",fullname="/home/pedro/gdb/mygit/src/gdb/testsuite/gdb.mi/solib-main.c",line="21",times="0",original-location="main"}
~"Starting program: /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/solib-main \n"
=thread-group-started,id="i1",pid="17724"
=thread-created,id="1",group-id="i1"
^running
*running,thread-id="all"
(gdb)
=library-loaded,id="/lib64/ld-linux-x86-64.so.2",target-name="/lib64/ld-linux-x86-64.so.2",host-name="/lib64/ld-linux-x86-64.so.2",symbols-loaded="0",thread-group="i1"
~"Stopped due to shared library event (no libraries added or removed)\n"
*stopped,reason="solib-event",frame={addr="0x000000379180f990",func="_dl_debug_state",args=[],from="/lib64/ld-linux-x86-64.so.2"},thread-id="1",stopped-threads="all",core="3"
(gdb)
async:
>./gdb -nx -q ./testsuite/gdb.mi/solib-main -ex "set stop-on-solib-events 1" -ex "set target-async on" -i=mi
=thread-group-added,id="i1"
~"Reading symbols from /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/solib-main..."
~"done.\n"
(gdb)
start
&"start\n"
~"Temporary breakpoint 1 at 0x400608: file ../../../src/gdb/testsuite/gdb.mi/solib-main.c, line 21.\n"
=breakpoint-created,bkpt={number="1",type="breakpoint",disp="del",enabled="y",addr="0x0000000000400608",func="main",file="../../../src/gdb/testsuite/gdb.mi/solib-main.c",fullname="/home/pedro/gdb/mygit/src/gdb/testsuite/gdb.mi/solib-main.c",line="21",times="0",original-location="main"}
~"Starting program: /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/solib-main \n"
=thread-group-started,id="i1",pid="17729"
=thread-created,id="1",group-id="i1"
^running
*running,thread-id="all"
=library-loaded,id="/lib64/ld-linux-x86-64.so.2",target-name="/lib64/ld-linux-x86-64.so.2",host-name="/lib64/ld-linux-x86-64.so.2",symbols-loaded="0",thread-group="i1"
(gdb)
*stopped,reason="solib-event",thread-id="1",stopped-threads="all",core="1"
For now, let's focus only on the *stopped event. We see that the
async output is missing frame info. And this causes a test failure in
async mode, as "mi_expect_stop solib-event" wants to see the frame
info.
However, if we compare the event output when a real MI execution
command is used, compared to a CLI command (e.g., run vs -exec-run,
next vs -exec-next, etc.), we see:
>./gdb -nx -q ./testsuite/gdb.mi/solib-main -ex "set stop-on-solib-events 1" -ex "set target-async off" -i=mi
=thread-group-added,id="i1"
~"Reading symbols from /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/solib-main..."
~"done.\n"
(gdb)
r
&"r\n"
~"Starting program: /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/solib-main \n"
=thread-group-started,id="i1",pid="17751"
=thread-created,id="1",group-id="i1"
^running
*running,thread-id="all"
(gdb)
=library-loaded,id="/lib64/ld-linux-x86-64.so.2",target-name="/lib64/ld-linux-x86-64.so.2",host-name="/lib64/ld-linux-x86-64.so.2",symbols-loaded="0",thread-group="i1"
~"Stopped due to shared library event (no libraries added or removed)\n"
*stopped,reason="solib-event",frame={addr="0x000000379180f990",func="_dl_debug_state",args=[],from="/lib64/ld-linux-x86-64.so.2"},thread-id="1",stopped-threads="all",core="3"
(gdb)
-exec-run
=thread-exited,id="1",group-id="i1"
=thread-group-exited,id="i1"
=library-unloaded,id="/lib64/ld-linux-x86-64.so.2",target-name="/lib64/ld-linux-x86-64.so.2",host-name="/lib64/ld-linux-x86-64.so.2",thread-group="i1"
=thread-group-started,id="i1",pid="17754"
=thread-created,id="1",group-id="i1"
^running
*running,thread-id="all"
(gdb)
=library-loaded,id="/lib64/ld-linux-x86-64.so.2",target-name="/lib64/ld-linux-x86-64.so.2",host-name="/lib64/ld-linux-x86-64.so.2",symbols-loaded="0",thread-group="i1"
*stopped,reason="solib-event",thread-id="1",stopped-threads="all",core="1"
=thread-selected,id="1"
(gdb)
As seen above, with MI commands, the *stopped event _doesn't_ have
frame info. This is because normal_stop, as commanded by the result
of bpstat_print, skips printing frame info in this case (it's an
"event", not a "breakpoint"), and when the interpreter is MI,
mi_on_normal_stop skips calling print_stack_frame, as the normal_stop
call was already done with the MI uiout. This explains why the async
output is different even with a CLI command. Its because in async
mode, the mi_on_normal_stop path is always taken; it is always reached
with the MI uiout, because the stop is handled from the event loop,
instead of from within `proceed -> wait_for_inferior -> normal_stop'
with the interpreter overridden, as in sync mode.
This patch fixes the issue by making all cases output the same
*stopped event, by factoring out the print code from normal_stop, and
using it from mi_on_normal_stop as well. I chose the *stopped output
without a frame, mainly because that is what you already get if you
use MI execution commands, the commands frontends are supposed to use
(except when implementing a console). This patch makes it simpler to
tweak the MI output differently if desired, as we only have to change
the centralized print_stop_event (taking into account whether the
uiout is MI-like), and all different modes will change accordingly.
Tested on x86_64 Fedora 17, no regressions. The mi-solib.exp test no
longer fails in async mode with this patch, so the patch removes the
kfail.
2014-03-18 Pedro Alves <palves@redhat.com>
PR gdb/13860
* inferior.h (print_stop_event): Declare.
* infrun.c (print_stop_event): New, factored out from ...
(normal_stop): ... this.
* mi/mi-interp.c (mi_on_normal_stop): Use print_stop_event instead
of bpstat_print/print_stack_frame.
2014-03-18 Pedro Alves <palves@redhat.com>
PR gdb/13860
* gdb.mi/mi-solib.exp: Remove gdb/13860 kfail.
* lib/mi-support.exp (mi_expect_stop): Add special handling for
solib-event.
2014-03-18 17:50:28 +00:00
|
|
|
|
2014-03-18 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR gdb/13860
|
|
|
|
|
* inferior.h (print_stop_event): Declare.
|
|
|
|
|
* infrun.c (print_stop_event): New, factored out from ...
|
|
|
|
|
(normal_stop): ... this.
|
|
|
|
|
* mi/mi-interp.c (mi_on_normal_stop): Use print_stop_event instead
|
|
|
|
|
of bpstat_print/print_stack_frame.
|
|
|
|
|
|
2014-03-17 19:02:13 +00:00
|
|
|
|
2014-03-17 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* ui-out.c (clear_table, ui_out_new): Clear uiout->table.id.
|
|
|
|
|
|
2014-03-14 13:55:42 +00:00
|
|
|
|
2014-03-17 Pierre-Marie de Rodat <derodat@adacore.com>
|
|
|
|
|
|
|
|
|
|
* ada-lang.c (decode_constrained_packed_array): Perform a
|
|
|
|
|
minimal coercion for reference with coerce_ref instead of
|
|
|
|
|
ada_coerce_ref.
|
|
|
|
|
|
2014-03-17 13:01:02 +00:00
|
|
|
|
2014-03-17 Tristan Gingold <gingold@adacore.com>
|
|
|
|
|
|
|
|
|
|
* solib-darwin.c (DYLD_VERSION_MAX): Increase value.
|
|
|
|
|
(darwin_solib_create_inferior_hook): Emit a warning if version
|
|
|
|
|
is unhandled.
|
|
|
|
|
|
2014-03-16 14:01:24 +00:00
|
|
|
|
2014-03-16 Ulrich Weigand <uweigand@de.ibm.com>
|
|
|
|
|
|
|
|
|
|
* python/py-value.c (get_field_flag): Cast flag_name argument to
|
|
|
|
|
PyObject_GetAttrString to support Python 2.4.
|
|
|
|
|
|
2014-03-14 18:54:08 +00:00
|
|
|
|
2014-03-14 Jan Kratochvil <jan.kratochvil@redhat.com>
|
|
|
|
|
|
|
|
|
|
* MAINTAINERS (The Official FSF-appointed GDB Maintainers)
|
|
|
|
|
(Global Maintainers): Remove Jan Kratochvil.
|
|
|
|
|
|
2014-03-14 00:06:45 +00:00
|
|
|
|
2014-03-14 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* inferior.h (terminal_ours_for_output): Rename to ...
|
|
|
|
|
(child_terminal_ours_for_output): ... this.
|
|
|
|
|
(terminal_save_ours): Rename to ...
|
|
|
|
|
(child_terminal_save_ours): ... this.
|
|
|
|
|
(terminal_ours): Rename to ...
|
|
|
|
|
(child_terminal_ours): ... this.
|
|
|
|
|
(terminal_inferior): Rename to ...
|
|
|
|
|
(child_terminal_inferior): ... this.
|
|
|
|
|
(terminal_init_inferior): Rename to ...
|
|
|
|
|
(child_terminal_init_inferior): ... this.
|
|
|
|
|
(terminal_init_inferior_with_pgrp): Rename to ...
|
|
|
|
|
(child_terminal_init_inferior_with_pgrp): ... this.
|
|
|
|
|
* inflow.c (terminal_init_inferior_with_pgrp): Rename to ...
|
|
|
|
|
(child_terminal_init_with_pgrp): ... this.
|
|
|
|
|
(terminal_save_ours): Rename to ...
|
|
|
|
|
(child_terminal_save_ours): ... this.
|
|
|
|
|
(terminal_init_inferior): Rename to ...
|
|
|
|
|
(child_terminal_init): ... this. Adjust.
|
|
|
|
|
(terminal_inferior): Rename to ...
|
|
|
|
|
(child_terminal_inferior): ... this.
|
|
|
|
|
(terminal_ours_for_output): Rename to ...
|
|
|
|
|
(child_terminal_ours_for_output): ... this. Adjust.
|
|
|
|
|
(terminal_ours): Rename to ...
|
|
|
|
|
(child_terminal_ours): ... this.
|
|
|
|
|
(terminal_ours_1): Rename to ...
|
|
|
|
|
(child_terminal_ours_1): ... this. Adjust.
|
|
|
|
|
* linux-nat.c (linux_nat_terminal_inferior): Adjust.
|
|
|
|
|
* windows-nat.c (do_initial_windows_stuff): Adjust.
|
|
|
|
|
* gnu-nat.c (gnu_terminal_init_inferior): Rename to ...
|
|
|
|
|
(gnu_terminal_init): ... this. Adjust.
|
|
|
|
|
(gnu_target): Adjust.
|
|
|
|
|
* inf-child.c (inf_child_target): Adjust.
|
|
|
|
|
|
2014-03-13 16:55:12 +00:00
|
|
|
|
2014-03-13 Doug Evans <xdje42@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR guile/16612
|
|
|
|
|
* guile/scm-type.c (tyscm_copy_type_recursive): Move type to its
|
|
|
|
|
new eq?-hashtab.
|
|
|
|
|
|
2014-03-13 16:24:19 +00:00
|
|
|
|
2014-03-13 Doug Evans <xdje42@gmail.com>
|
|
|
|
|
|
|
|
|
|
* value.c (record_latest_value): Call release_value_or_incref
|
|
|
|
|
instead of release_value.
|
|
|
|
|
|
2014-03-12 12:40:40 +00:00
|
|
|
|
2014-03-13 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* procfs.c (procfs_target): Don't override to_shortname,
|
|
|
|
|
to_longname or to_doc.
|
|
|
|
|
|
2014-03-13 12:02:24 +00:00
|
|
|
|
2014-03-13 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* inf-child.c (inf_child_open, inf_child_target): Don't mention
|
|
|
|
|
Unix in user visible strings.
|
|
|
|
|
|
2014-03-13 02:36:45 +00:00
|
|
|
|
2014-03-12 Stan Shebs <stan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* gdbtypes.h: Annotate comments for Doxygen, add a page
|
|
|
|
|
block comment with some general info.
|
|
|
|
|
|
Factor out foreground/background execution command preparation.
All execution commands currently have this pattern:
/* If we must run in the background, but the target can't do it,
error out. */
if (async_exec && !target_can_async_p ())
error (_("Asynchronous execution not supported on this target."));
/* If we are not asked to run in the bg, then prepare to run in the
foreground, synchronously. */
if (!async_exec && target_can_async_p ())
{
/* Simulate synchronous execution. */
async_disable_stdin ();
}
This patch factors that into a shared function.
attach_command installs a cleanup to re-enable stdin, but that's not
necessary, as per the comment in prepare_execution_command. In any
case, if someday it turns out necessary, we have a single place to
install it now.
Tested on x86_64 Fedora 17, sync and async modes.
gdb/
2014-03-12 Pedro Alves <palves@redhat.com>
* infcmd.c (prepare_execution_command): New function, factored out
from several execution commands.
(run_command_1, continue_command, step_1, jump_command)
(signal_command, until_command, advance_command, finish_command)
(attach_command): Use prepare_execution_command.
2014-03-12 20:32:53 +00:00
|
|
|
|
2014-03-12 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* infcmd.c (prepare_execution_command): New function, factored out
|
|
|
|
|
from several execution commands.
|
|
|
|
|
(run_command_1, continue_command, step_1, jump_command)
|
|
|
|
|
(signal_command, until_command, advance_command, finish_command)
|
|
|
|
|
(attach_command): Use prepare_execution_command.
|
|
|
|
|
|
2014-03-12 20:23:55 +00:00
|
|
|
|
2014-03-12 Omair Javaid <omair.javaid@linaro.org>
|
|
|
|
|
|
|
|
|
|
* arm-linux-nat.c (arm_linux_get_hwbp_cap): Updated.
|
|
|
|
|
(MAX_BPTS): Define.
|
|
|
|
|
(MAX_WPTS): Define.
|
|
|
|
|
(struct arm_linux_thread_points): Removed.
|
|
|
|
|
(struct arm_linux_process_info): New.
|
|
|
|
|
(DEF_VEC_P (arm_linux_thread_points_p)): Removed.
|
|
|
|
|
(VEC(arm_linux_thread_points_p) *arm_threads): Removed.
|
|
|
|
|
(arm_linux_find_breakpoints_by_tid): Removed.
|
|
|
|
|
(struct arch_lwp_info): New.
|
|
|
|
|
(arm_linux_find_process_pid): New functions.
|
|
|
|
|
(arm_linux_add_process): New functions.
|
|
|
|
|
(arm_linux_process_info_get): New functions.
|
|
|
|
|
(arm_linux_forget_process): New function.
|
|
|
|
|
(arm_linux_get_debug_reg_state): New function.
|
|
|
|
|
(struct update_registers_data): New.
|
|
|
|
|
(update_registers_callback): New function.
|
|
|
|
|
(arm_linux_insert_hw_breakpoint1): Updated.
|
|
|
|
|
(arm_linux_remove_hw_breakpoint1): Updated.
|
|
|
|
|
(arm_linux_insert_hw_breakpoint): Updated.
|
|
|
|
|
(arm_linux_remove_hw_breakpoint): Updated.
|
|
|
|
|
(arm_linux_insert_watchpoint): Updated.
|
|
|
|
|
(arm_linux_remove_watchpoint): Updated.
|
|
|
|
|
(arm_linux_new_thread): Updated.
|
|
|
|
|
(arm_linux_prepare_to_resume): New function.
|
|
|
|
|
(arm_linux_new_fork): New function.
|
|
|
|
|
(_initialize_arm_linux_nat): Updated.
|
|
|
|
|
|
2014-03-12 19:40:52 +00:00
|
|
|
|
2014-03-12 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* Makefile.in (TARGET_FLAGS_TO_PASS): Add TESTS.
|
|
|
|
|
|
fix regressions with target-async
A patch in the target cleanup series caused a regression when using
record with target-async. Version 4 of the patch is here:
https://sourceware.org/ml/gdb-patches/2014-03/msg00159.html
The immediate problem is that record supplies to_can_async_p and
to_is_async_p methods, but does not supply a to_async method. So,
when target-async is set, record claims to support async -- but if the
underlying target does not support async, then the to_async method
call will end up in that method's default implementation, namely
tcomplain.
This worked previously because the record target used to provide a
to_async method; one that (erroneously, only at push time) checked the
other members of the target stack, and then simply dropped to_async
calls in the "does not implement async" case.
My first thought was to simply drop tcomplain as the default for
to_async. This works, but Pedro pointed out that the only reason
record has to supply to_can_async_p and to_is_async_p is that these
default to using the find_default_run_target machinery -- and these
defaults are only needed by "run" and "attach".
So, a nicer solution presents itself: change run and attach to
explicitly call into the default run target when needed; and change
to_is_async_p and to_can_async_p to default to "return 0". This makes
the target stack simpler to use and lets us remove the method
implementations from record. This is also in harmony with other plans
for the target stack; namely trying to reduce the impact of
find_default_run_target. This approach makes it clear that
find_default_is_async_p is not needed -- it is asking whether a target
that may not even be pushed is actually async, which seems like a
nonsensical question.
While an improvement, this approach proved to introduce the same bug
when using the core target. Looking a bit deeper, the issue is that
code in "attach" and "run" may need to use either the current target
stack or the default run target -- but different calls into the target
API in those functions could wind up querying different targets.
This new patch makes the target to use more explicit in "run" and
"attach". Then these commands explicitly make the needed calls
against that target. This ensures that a single target is used for
all relevant operations. This lets us remove a couple find_default_*
functions from various targets, including the dummy target. I think
this is a decent understandability improvement.
One issue I see with this patch is that the new calls in "run" and
"attach" are not very much like the rest of the target API. I think
fundamentally this is due to bad factoring in the target API, which
may need to be fixed for multi-target. Tackling that seemed ambitious
for a regression fix.
While working on this I noticed that there don't seem to be any test
cases that involve both target-async and record, so this patch changes
break-precsave.exp to add some. It also changes corefile.exp to add
some target-async tests; these pass with current trunk and with this
patch applied, but fail with the v1 patch.
This patch differs from v4 in that it moves initialization of
to_can_async_p and to_supports_non_stop into inf-child, adds some
assertions to complete_target_initialization, and adds some comments
to target.h.
Built and regtested on x86-64 Fedora 20.
2014-03-12 Tom Tromey <tromey@redhat.com>
* inf-child.c (return_zero): New function.
(inf_child_target): Set to_can_async_p, to_supports_non_stop.
* aix-thread.c (aix_thread_inferior_created): New function.
(aix_thread_attach): Remove.
(init_aix_thread_ops): Don't set to_attach.
(_initialize_aix_thread): Register inferior_created observer.
* corelow.c (init_core_ops): Don't set to_attach or
to_create_inferior.
* exec.c (init_exec_ops): Don't set to_attach or
to_create_inferior.
* infcmd.c (run_command_1): Use find_run_target. Make direct
target calls.
(attach_command): Use find_attach_target. Make direct target
calls.
* record-btrace.c (init_record_btrace_ops): Don't set
to_create_inferior.
* record-full.c (record_full_can_async_p, record_full_is_async_p):
Remove.
(init_record_full_ops, init_record_full_core_ops): Update. Don't
set to_create_inferior.
* target.c (complete_target_initialization): Add assertion.
(target_create_inferior): Remove.
(find_default_attach, find_default_create_inferior): Remove.
(find_attach_target, find_run_target): New functions.
(find_default_is_async_p, find_default_can_async_p)
(target_supports_non_stop, target_attach): Remove.
(init_dummy_target): Don't set to_create_inferior or
to_supports_non_stop.
* target.h (struct target_ops) <to_attach>: Add comment. Remove
TARGET_DEFAULT_FUNC.
<to_create_inferior>: Add comment.
<to_can_async_p, to_is_async_p, to_supports_non_stop>: Use
TARGET_DEFAULT_RETURN.
<to_can_async_p, to_supports_non_stop, to_can_run>: Add comments.
(find_attach_target, find_run_target): Declare.
(target_create_inferior): Remove.
(target_has_execution_1): Update comment.
(target_supports_non_stop): Remove.
* target-delegates.c: Rebuild.
2014-03-12 Tom Tromey <tromey@redhat.com>
* gdb.base/corefile.exp (corefile_test_run, corefile_test_attach):
New procs. Add target-async tests.
* gdb.reverse/break-precsave.exp (precsave_tests): New proc.
Add target-async tests.
2014-02-28 16:47:34 +00:00
|
|
|
|
2014-03-12 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* inf-child.c (return_zero): New function.
|
|
|
|
|
(inf_child_target): Set to_can_async_p, to_supports_non_stop.
|
|
|
|
|
* aix-thread.c (aix_thread_inferior_created): New function.
|
|
|
|
|
(aix_thread_attach): Remove.
|
|
|
|
|
(init_aix_thread_ops): Don't set to_attach.
|
|
|
|
|
(_initialize_aix_thread): Register inferior_created observer.
|
|
|
|
|
* corelow.c (init_core_ops): Don't set to_attach or
|
|
|
|
|
to_create_inferior.
|
|
|
|
|
* exec.c (init_exec_ops): Don't set to_attach or
|
|
|
|
|
to_create_inferior.
|
|
|
|
|
* infcmd.c (run_command_1): Use find_run_target. Make direct
|
|
|
|
|
target calls.
|
|
|
|
|
(attach_command): Use find_attach_target. Make direct target
|
|
|
|
|
calls.
|
|
|
|
|
* record-btrace.c (init_record_btrace_ops): Don't set
|
|
|
|
|
to_create_inferior.
|
|
|
|
|
* record-full.c (record_full_can_async_p, record_full_is_async_p):
|
|
|
|
|
Remove.
|
|
|
|
|
(init_record_full_ops, init_record_full_core_ops): Update. Don't
|
|
|
|
|
set to_create_inferior.
|
|
|
|
|
* target.c (complete_target_initialization): Add assertion.
|
|
|
|
|
(target_create_inferior): Remove.
|
|
|
|
|
(find_default_attach, find_default_create_inferior): Remove.
|
|
|
|
|
(find_attach_target, find_run_target): New functions.
|
|
|
|
|
(find_default_is_async_p, find_default_can_async_p)
|
|
|
|
|
(target_supports_non_stop, target_attach): Remove.
|
|
|
|
|
(init_dummy_target): Don't set to_create_inferior or
|
|
|
|
|
to_supports_non_stop.
|
|
|
|
|
* target.h (struct target_ops) <to_attach>: Add comment. Remove
|
|
|
|
|
TARGET_DEFAULT_FUNC.
|
|
|
|
|
<to_create_inferior>: Add comment.
|
|
|
|
|
<to_can_async_p, to_is_async_p, to_supports_non_stop>: Use
|
|
|
|
|
TARGET_DEFAULT_RETURN.
|
|
|
|
|
<to_can_async_p, to_supports_non_stop, to_can_run>: Add comments.
|
|
|
|
|
(find_attach_target, find_run_target): Declare.
|
|
|
|
|
(target_create_inferior): Remove.
|
|
|
|
|
(target_has_execution_1): Update comment.
|
|
|
|
|
(target_supports_non_stop): Remove.
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
|
2014-03-12 11:55:02 +00:00
|
|
|
|
2014-03-12 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* inf-child.h: Update comment to not mention Unix.
|
|
|
|
|
|
2014-03-12 11:33:59 +00:00
|
|
|
|
2014-03-12 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* inf-child.c: Update top comment to not mention Unix. Add
|
|
|
|
|
generic comment describing how this target is meant to be used.
|
|
|
|
|
(inf_child_post_attach, inf_child_post_startup_inferior)
|
|
|
|
|
(inf_child_follow_fork, inf_child_pid_to_exec_file): Don't mention
|
|
|
|
|
Unix in comment.
|
|
|
|
|
|
2014-03-12 11:21:36 +00:00
|
|
|
|
2014-03-12 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* nto-procfs.c: Include inf-child.h.
|
|
|
|
|
(procfs_ops): Delete global.
|
|
|
|
|
(procfs_can_run): Delete method.
|
|
|
|
|
(procfs_detach, procfs_mourn_inferior): Unpush the passed in
|
|
|
|
|
target pointer instead of referencing procfs_ops.
|
|
|
|
|
(procfs_prepare_to_store): Delete.
|
|
|
|
|
(init_procfs_ops): Delete function.
|
|
|
|
|
(procfs_target): New function, based on init_procfs_ops, but
|
|
|
|
|
inherit inf_child_target.
|
|
|
|
|
(_initialize_procfs): Use procfs_target.
|
|
|
|
|
|
2014-03-12 11:21:36 +00:00
|
|
|
|
2014-03-12 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* windows-nat.c: Include inf-child.h.
|
|
|
|
|
(windows_ops): Delete global.
|
|
|
|
|
(windows_open, windows_prepare_to_store, windows_can_run): Delete
|
|
|
|
|
methods.
|
|
|
|
|
(init_windows_ops): Delete function.
|
|
|
|
|
(windows_target): New function, based on init_windows_ops, but
|
|
|
|
|
inherit inf_child_target.
|
|
|
|
|
(_initialize_windows_nat): Use windows_target. Install x86
|
|
|
|
|
specific target methods here.
|
|
|
|
|
|
2014-03-11 04:02:19 +00:00
|
|
|
|
2014-03-10 Doug Evans <xdje42@gmail.com>
|
|
|
|
|
|
|
|
|
|
* guile/guile.c (call_initialize_gdb_module): New function.
|
|
|
|
|
(initialize_guile): Replace call to scm_init_guile with call to
|
|
|
|
|
scm_with_guile.
|
|
|
|
|
|
2014-03-10 13:45:26 +00:00
|
|
|
|
2014-03-10 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* ada-lang.c (ada_evaluate_subexp): Add missing space before '('
|
|
|
|
|
in call to TYPE_CODE macro.
|
|
|
|
|
|
2014-02-12 11:08:23 +00:00
|
|
|
|
2014-03-10 Jerome Guitton <guitton@adacore.com>
|
|
|
|
|
|
2014-03-10 13:44:30 +00:00
|
|
|
|
* ada-lang.c (ada_evaluate_subexp) <UNOP_IND, STRUCTOP_STRUCT>:
|
|
|
|
|
Resolve tagged types to full view.
|
2014-02-12 11:08:23 +00:00
|
|
|
|
|
2014-03-10 07:42:26 +00:00
|
|
|
|
2014-03-10 Hui Zhu <hui@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* target.h (target_insert_breakpoint): Remove "hardware" from its
|
|
|
|
|
comments.
|
|
|
|
|
|
2014-03-08 01:33:12 +00:00
|
|
|
|
2014-03-07 Doug Evans <dje@google.com>
|
|
|
|
|
|
|
|
|
|
* dwarf2read.c (read_str_index): Rename local dwo_name to objf_name.
|
|
|
|
|
|
2014-03-08 00:38:26 +00:00
|
|
|
|
2014-03-07 Doug Evans <dje@google.com>
|
|
|
|
|
|
|
|
|
|
* dwarf2read.c (read_cutu_die_from_dwo): Fix function comment.
|
|
|
|
|
Remove unused local comp_dir_attr. Assert exactly one of
|
|
|
|
|
stub_comp_unit_die, stub_comp_dir is non-NULL.
|
|
|
|
|
|
2014-03-07 17:00:27 +00:00
|
|
|
|
2014-03-07 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* target.h (complete_target_initialization, add_target):
|
|
|
|
|
Add comment.
|
|
|
|
|
|
2014-03-07 15:36:50 +00:00
|
|
|
|
2014-03-07 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* go32-nat.c: Include inf-child.h.
|
|
|
|
|
(go32_ops): Delete global.
|
|
|
|
|
(go32_close, go32_detach, go32_prepare_to_store, go32_can_run):
|
|
|
|
|
Delete methods.
|
|
|
|
|
(go32_create_inferior): Push the passed in target pointer instead
|
|
|
|
|
of referencing go32_ops.
|
|
|
|
|
(init_go32_ops): Delete function. Moved parts to _initialize_go32_nat.
|
|
|
|
|
(go32_target): New function, based on init_go32_ops, but inherit
|
|
|
|
|
inf_child_target.
|
|
|
|
|
(_initialize_go32_nat): Use go32_target. Move parts of
|
|
|
|
|
init_go32_ops here.
|
|
|
|
|
|
2014-03-06 15:57:29 +00:00
|
|
|
|
2014-03-06 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* sol-thread.c: #include "symtab.h", "minsym.h" and "objfiles.h".
|
|
|
|
|
(ps_pglobal_lookup): Use BMSYMBOL_VALUE_ADDRESS instead of
|
|
|
|
|
SYMBOL_VALUE_ADDRESS.
|
|
|
|
|
(info_cb): MSYMBOL_PRINT_NAME instead of SYMBOL_PRINT_NAME.
|
|
|
|
|
|
2014-02-22 05:53:37 +00:00
|
|
|
|
2014-03-06 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* breakpoint.c (get_tracepoint_by_number): Remove argument
|
|
|
|
|
optional_p. All callers updated. Adjust comments. Update
|
|
|
|
|
output message.
|
|
|
|
|
* breakpoint.h (get_tracepoint_by_number): Update declaration.
|
|
|
|
|
|
2014-02-22 06:42:12 +00:00
|
|
|
|
2014-03-06 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* reverse.c (goto_bookmark_command): Add local 'p'. Emit error
|
|
|
|
|
early if get_number returns zero. Use 'p' instead of 'args'.
|
|
|
|
|
|
2014-02-20 09:35:31 +00:00
|
|
|
|
2014-03-06 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* cli/cli-utils.c (get_number_trailer): Add '\n' at the end of
|
|
|
|
|
message.
|
|
|
|
|
|
2014-02-15 00:48:53 +00:00
|
|
|
|
2014-03-06 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR breakpoints/16508
|
|
|
|
|
* tracepoint.c (check_trace_running): New function.
|
|
|
|
|
(trace_find_command): Move code to check_trace_running and
|
|
|
|
|
call check_trace_running.
|
|
|
|
|
(trace_find_pc_command): Likewise.
|
|
|
|
|
(trace_find_tracepoint_command): Likewise.
|
|
|
|
|
(trace_find_line_command): Likewise.
|
|
|
|
|
(trace_find_range_command): Likewise.
|
|
|
|
|
* tracepoint.h (check_trace_running): Likewise.
|
|
|
|
|
* mi/mi-main.c (mi_cmd_trace_find): Call check_trace_running.
|
|
|
|
|
|
2014-03-04 09:39:10 +00:00
|
|
|
|
2014-03-06 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_traceframe_info>: Use
|
|
|
|
|
TARGET_DEFAULT_NORETURN (tcomplain ()).
|
|
|
|
|
* target-delegates.c: Regenerated.
|
|
|
|
|
|
PR gdb/16575: stale breakpoint instructions in the code cache
In non-stop mode, or rather, breakpoints always-inserted mode, the
code cache can easily end up with stale breakpoint instructions:
All it takes is filling a cache line when breakpoints already exist in
that memory region, and then delete the breakpoint.
Vis. (from the new test):
(gdb) set breakpoint always-inserted on
(gdb) b 23
Breakpoint 2 at 0x400540: file ../../../src/gdb/testsuite/gdb.base/breakpoint-shadow.c, line 23.
(gdb) b 24
Breakpoint 3 at 0x400547: file ../../../src/gdb/testsuite/gdb.base/breakpoint-shadow.c, line 24.
disass main
Dump of assembler code for function main:
0x000000000040053c <+0>: push %rbp
0x000000000040053d <+1>: mov %rsp,%rbp
=> 0x0000000000400540 <+4>: movl $0x1,-0x4(%rbp)
0x0000000000400547 <+11>: movl $0x2,-0x4(%rbp)
0x000000000040054e <+18>: mov $0x0,%eax
0x0000000000400553 <+23>: pop %rbp
0x0000000000400554 <+24>: retq
End of assembler dump.
So far so good. Now flush the code cache:
(gdb) set code-cache off
(gdb) set code-cache on
Requesting a disassembly works as expected, breakpoint shadowing is
applied:
(gdb) disass main
Dump of assembler code for function main:
0x000000000040053c <+0>: push %rbp
0x000000000040053d <+1>: mov %rsp,%rbp
=> 0x0000000000400540 <+4>: movl $0x1,-0x4(%rbp)
0x0000000000400547 <+11>: movl $0x2,-0x4(%rbp)
0x000000000040054e <+18>: mov $0x0,%eax
0x0000000000400553 <+23>: pop %rbp
0x0000000000400554 <+24>: retq
End of assembler dump.
However, now delete the breakpoints:
(gdb) delete
Delete all breakpoints? (y or n) y
And disassembly shows the old breakpoint instructions:
(gdb) disass main
Dump of assembler code for function main:
0x000000000040053c <+0>: push %rbp
0x000000000040053d <+1>: mov %rsp,%rbp
=> 0x0000000000400540 <+4>: int3
0x0000000000400541 <+5>: rex.RB cld
0x0000000000400543 <+7>: add %eax,(%rax)
0x0000000000400545 <+9>: add %al,(%rax)
0x0000000000400547 <+11>: int3
0x0000000000400548 <+12>: rex.RB cld
0x000000000040054a <+14>: add (%rax),%al
0x000000000040054c <+16>: add %al,(%rax)
0x000000000040054e <+18>: mov $0x0,%eax
0x0000000000400553 <+23>: pop %rbp
0x0000000000400554 <+24>: retq
End of assembler dump.
Those breakpoint instructions are no longer installed in target memory
they're stale in the code cache. Easily confirmed by just disabling
the code cache:
(gdb) set code-cache off
(gdb) disass main
Dump of assembler code for function main:
0x000000000040053c <+0>: push %rbp
0x000000000040053d <+1>: mov %rsp,%rbp
=> 0x0000000000400540 <+4>: movl $0x1,-0x4(%rbp)
0x0000000000400547 <+11>: movl $0x2,-0x4(%rbp)
0x000000000040054e <+18>: mov $0x0,%eax
0x0000000000400553 <+23>: pop %rbp
0x0000000000400554 <+24>: retq
End of assembler dump.
I stumbled upon this when writing a patch to infrun.c, that made
handle_inferior_event & co fill in the cache before breakpoints were
removed from the target. Recall that wait_for_inferior flushes the
dcache for every event. So in that case, always-inserted mode was not
necessary to trigger this. It's just a convenient way to expose the
issue.
The dcache works at the raw memory level. We need to update it
whenever memory is written, no matter what kind of target memory
object was originally passed down by the caller. The issue is that
the dcache update code isn't reached when a caller explicitly writes
raw memory. Breakpoint insertion/removal is one such case --
mem-break.c uses target_write_read_memory/target_write_raw_memory.
The fix is to move the dcache update code from memory_xfer_partial_1
to raw_memory_xfer_partial so that it's always reachable.
When we do that, we can actually simplify a series of things.
memory_xfer_partial_1 no longer needs to handle writes for any kind of
memory object, and therefore dcache_xfer_memory no longer needs to
handle writes either. So the latter (dcache_xfer_memory) and its
callees can be simplified to only care about reads. While we're
touching dcache_xfer_memory's prototype, might as well rename it to
reflect that fact that it only handles reads, and make it follow the
new target_xfer_status/xfered_len style. This made me notice that
dcache_xfer_memory loses the real error status if a memory read fails:
we could have failed to read due to TARGET_XFER_E_UNAVAILABLE, for
instance, but we always return TARGET_XFER_E_IO, hence the FIXME note.
I felt that fixing that fell out of the scope of this patch.
Currently dcache_xfer_memory handles the case of a write failing. The
whole cache line is invalidated when that happens. However,
dcache_update, the sole mechanism for handling writes that will remain
after the patch, does not presently handle that scenario. That's a
bug. The patch makes it handle that, by passing down the
target_xfer_status status from the caller, so that it can better
decide what to do itself. While I was changing the function's
prototype, I constified the myaddr parameter, getting rid of the need
for the cast as seen in its existing caller.
Tested on x86_64 Fedora 17, native and gdbserver.
gdb/
2014-03-05 Pedro Alves <palves@redhat.com>
PR gdb/16575
* dcache.c (dcache_poke_byte): Constify ptr parameter. Return
void. Update comment.
(dcache_xfer_memory): Delete.
(dcache_read_memory_partial): New, based on the read bits of
dcache_xfer_memory.
(dcache_update): Add status parameter. Use ULONGEST for len, and
adjust. Discard cache lines if the reason for the update was
error.
* dcache.h (dcache_xfer_memory): Delete declaration.
(dcache_read_memory_partial): New declaration.
(dcache_update): Update prototype.
* target.c (raw_memory_xfer_partial): Update the dcache here.
(memory_xfer_partial_1): Don't handle dcache writes here.
gdb/testsuite/
2014-03-05 Pedro Alves <palves@redhat.com>
PR gdb/16575
* gdb.base/breakpoint-shadow.exp (compare_disassembly): New
procedure.
(top level): Adjust to use it. Add tests that exercise breakpoint
interaction with the code-cache.
2014-03-05 14:18:28 +00:00
|
|
|
|
2014-03-05 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR gdb/16575
|
|
|
|
|
* dcache.c (dcache_poke_byte): Constify ptr parameter. Return
|
|
|
|
|
void. Update comment.
|
|
|
|
|
(dcache_xfer_memory): Delete.
|
|
|
|
|
(dcache_read_memory_partial): New, based on the read bits of
|
|
|
|
|
dcache_xfer_memory.
|
|
|
|
|
(dcache_update): Add status parameter. Use ULONGEST for len, and
|
|
|
|
|
adjust. Discard cache lines if the reason for the update was
|
|
|
|
|
error.
|
|
|
|
|
* dcache.h (dcache_xfer_memory): Delete declaration.
|
|
|
|
|
(dcache_read_memory_partial): New declaration.
|
|
|
|
|
(dcache_update): Update prototype.
|
|
|
|
|
* target.c (raw_memory_xfer_partial): Update the dcache here.
|
|
|
|
|
(memory_xfer_partial_1): Don't handle dcache writes here.
|
|
|
|
|
|
2014-02-20 05:13:48 +00:00
|
|
|
|
2014-03-05 Mike Frysinger <vapier@gentoo.org>
|
|
|
|
|
|
|
|
|
|
* remote-sim.c (gdbsim_load): Add const to prog.
|
|
|
|
|
|
2013-12-03 17:21:20 +00:00
|
|
|
|
2014-03-03 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* elfread.c (probe_key): Change to bfd_data.
|
|
|
|
|
(elf_get_probes, probe_key_free, _initialize_elfread): Probes are
|
|
|
|
|
now per-BFD, not per-objfile.
|
|
|
|
|
* stap-probe.c (stap_probe_destroy): Update comment.
|
|
|
|
|
(handle_stap_probe): Allocate on the per-BFD obstack.
|
|
|
|
|
|
change probes to be program-space-independent
This changes the probes to be independent of the program space.
After this, when a probe's address is needed, it is determined by
applying offsets at the point of use.
This introduces a bound_probe object, similar to bound minimal
symbols. Objects of this type are used when it's necessary to pass a
probe and its corresponding objfile.
This removes the backlink from probe to objfile, which was primarily
used to fetch the architecture to use.
This adds a get_probe_address function which calls a probe method to
compute the probe's relocated address. Similarly, it adds an objfile
parameter to the semaphore methods so they can do the relocation
properly as well.
2014-03-03 Tom Tromey <tromey@redhat.com>
* break-catch-throw.c (fetch_probe_arguments): Use bound probes.
* breakpoint.c (create_longjmp_master_breakpoint): Use
get_probe_address.
(add_location_to_breakpoint, bkpt_probe_insert_location)
(bkpt_probe_remove_location): Update.
* breakpoint.h (struct bp_location) <probe>: Now a bound_probe.
* elfread.c (elf_symfile_relocate_probe): Remove.
(elf_probe_fns): Update.
(insert_exception_resume_breakpoint): Change type of "probe"
parameter to bound_probe.
(check_exception_resume): Update.
* objfiles.c (objfile_relocate1): Don't relocate probes.
* probe.c (bound_probe_s): New typedef.
(parse_probes): Use get_probe_address. Set sal's objfile.
(find_probe_by_pc): Return a bound_probe.
(collect_probes): Return a VEC(bound_probe_s).
(compare_probes): Update.
(gen_ui_out_table_header_info): Change type of "probes"
parameter. Update.
(info_probes_for_ops): Update.
(get_probe_address): New function.
(probe_safe_evaluate_at_pc): Update.
* probe.h (struct probe_ops) <get_probe_address>: New field.
<set_semaphore, clear_semaphore>: Add objfile parameter.
(struct probe) <objfile>: Remove field.
<arch>: New field.
<address>: Update comment.
(struct bound_probe): New.
(find_probe_by_pc): Return a bound_probe.
(get_probe_address): Declare.
* solib-svr4.c (struct probe_and_action) <address>: New field.
(hash_probe_and_action, equal_probe_and_action): Update.
(register_solib_event_probe): Add address parameter.
(solib_event_probe_at): Update.
(svr4_create_probe_breakpoints): Add objfile parameter. Use
get_probe_address.
* stap-probe.c (struct stap_probe) <sem_addr>: Update comment.
(stap_get_probe_address): New function.
(stap_can_evaluate_probe_arguments, compute_probe_arg)
(compile_probe_arg): Update.
(stap_set_semaphore, stap_clear_semaphore): Compute semaphore's
address.
(handle_stap_probe): Don't relocate the probe.
(stap_relocate): Remove.
(stap_gen_info_probes_table_values): Update.
(stap_probe_ops): Remove stap_relocate.
* symfile-debug.c (debug_sym_relocate_probe): Remove.
(debug_sym_probe_fns): Update.
* symfile.h (struct sym_probe_fns) <sym_relocate_probe>: Remove.
* symtab.c (init_sal): Use memset.
* symtab.h (struct symtab_and_line) <objfile>: New field.
* tracepoint.c (start_tracing, stop_tracing): Update.
2013-12-02 20:58:59 +00:00
|
|
|
|
2014-03-03 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* break-catch-throw.c (fetch_probe_arguments): Use bound probes.
|
|
|
|
|
* breakpoint.c (create_longjmp_master_breakpoint): Use
|
|
|
|
|
get_probe_address.
|
|
|
|
|
(add_location_to_breakpoint, bkpt_probe_insert_location)
|
|
|
|
|
(bkpt_probe_remove_location): Update.
|
|
|
|
|
* breakpoint.h (struct bp_location) <probe>: Now a bound_probe.
|
|
|
|
|
* elfread.c (elf_symfile_relocate_probe): Remove.
|
|
|
|
|
(elf_probe_fns): Update.
|
|
|
|
|
(insert_exception_resume_breakpoint): Change type of "probe"
|
|
|
|
|
parameter to bound_probe.
|
|
|
|
|
(check_exception_resume): Update.
|
|
|
|
|
* objfiles.c (objfile_relocate1): Don't relocate probes.
|
|
|
|
|
* probe.c (bound_probe_s): New typedef.
|
|
|
|
|
(parse_probes): Use get_probe_address. Set sal's objfile.
|
|
|
|
|
(find_probe_by_pc): Return a bound_probe.
|
|
|
|
|
(collect_probes): Return a VEC(bound_probe_s).
|
|
|
|
|
(compare_probes): Update.
|
|
|
|
|
(gen_ui_out_table_header_info): Change type of "probes"
|
|
|
|
|
parameter. Update.
|
|
|
|
|
(info_probes_for_ops): Update.
|
|
|
|
|
(get_probe_address): New function.
|
|
|
|
|
(probe_safe_evaluate_at_pc): Update.
|
|
|
|
|
* probe.h (struct probe_ops) <get_probe_address>: New field.
|
|
|
|
|
<set_semaphore, clear_semaphore>: Add objfile parameter.
|
|
|
|
|
(struct probe) <objfile>: Remove field.
|
|
|
|
|
<arch>: New field.
|
|
|
|
|
<address>: Update comment.
|
|
|
|
|
(struct bound_probe): New.
|
|
|
|
|
(find_probe_by_pc): Return a bound_probe.
|
|
|
|
|
(get_probe_address): Declare.
|
|
|
|
|
* solib-svr4.c (struct probe_and_action) <address>: New field.
|
|
|
|
|
(hash_probe_and_action, equal_probe_and_action): Update.
|
|
|
|
|
(register_solib_event_probe): Add address parameter.
|
|
|
|
|
(solib_event_probe_at): Update.
|
|
|
|
|
(svr4_create_probe_breakpoints): Add objfile parameter. Use
|
|
|
|
|
get_probe_address.
|
|
|
|
|
* stap-probe.c (struct stap_probe) <sem_addr>: Update comment.
|
|
|
|
|
(stap_get_probe_address): New function.
|
|
|
|
|
(stap_can_evaluate_probe_arguments, compute_probe_arg)
|
|
|
|
|
(compile_probe_arg): Update.
|
|
|
|
|
(stap_set_semaphore, stap_clear_semaphore): Compute semaphore's
|
|
|
|
|
address.
|
|
|
|
|
(handle_stap_probe): Don't relocate the probe.
|
|
|
|
|
(stap_relocate): Remove.
|
|
|
|
|
(stap_gen_info_probes_table_values): Update.
|
|
|
|
|
(stap_probe_ops): Remove stap_relocate.
|
|
|
|
|
* symfile-debug.c (debug_sym_relocate_probe): Remove.
|
|
|
|
|
(debug_sym_probe_fns): Update.
|
|
|
|
|
* symfile.h (struct sym_probe_fns) <sym_relocate_probe>: Remove.
|
|
|
|
|
* symtab.c (init_sal): Use memset.
|
|
|
|
|
* symtab.h (struct symtab_and_line) <objfile>: New field.
|
|
|
|
|
* tracepoint.c (start_tracing, stop_tracing): Update.
|
|
|
|
|
|
2013-12-02 18:12:15 +00:00
|
|
|
|
2014-03-03 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* probe.h (parse_probes, find_probe_by_pc)
|
|
|
|
|
(find_probes_in_objfile): Fix comments.
|
|
|
|
|
|
2014-03-02 21:51:35 +00:00
|
|
|
|
2014-03-02 Doug Evans <xdje42@gmail.com>
|
|
|
|
|
|
|
|
|
|
* infrun.c (handle_signal_stop): Replace test for
|
|
|
|
|
TARGET_WAITKIND_STOPPED with an assert.
|
|
|
|
|
|
2014-03-02 18:30:46 +00:00
|
|
|
|
2014-03-02 Doug Evans <xdje42@gmail.com>
|
|
|
|
|
|
|
|
|
|
* guile/scm-objfile.c (ofscm_mark_objfile_smob): Fix typo in comment.
|
|
|
|
|
|
2014-03-02 17:17:46 +00:00
|
|
|
|
2014-03-02 Doug Evans <xdje42@gmail.com>
|
|
|
|
|
|
|
|
|
|
* guile/lib/gdb/printing.scm (append-pretty-printer!): Fix thinko.
|
|
|
|
|
|
2014-03-01 16:13:47 +00:00
|
|
|
|
2014-03-01 Mark Kettenis <kettenis@gnu.org>
|
|
|
|
|
|
|
|
|
|
* obsd-nat.c: Include "gdb_wait.h" instead of <sys/wait.h>.
|
|
|
|
|
|
2014-03-01 14:29:34 +00:00
|
|
|
|
2014-03-01 Mark Kettenis <kettenis@gnu.org>
|
|
|
|
|
|
|
|
|
|
* i386obsd-nat.c: Include "obsd-nat.h".
|
|
|
|
|
(_initialize_i386obsd_nat): Call obsd_add_target instead of
|
|
|
|
|
add_target.
|
|
|
|
|
* config/i386/obsd.mh (NATDEPFILES): Add obsd-nat.o.
|
|
|
|
|
|
2014-03-01 12:06:49 +00:00
|
|
|
|
2014-03-01 Mark Kettenis <kettenis@gnu.org>
|
|
|
|
|
|
|
|
|
|
* i386obsd-nat.c (i386obsd_supply_pcb): Cast 'sf' to 'gdb_byte *'.
|
|
|
|
|
|
2014-03-01 11:00:19 +00:00
|
|
|
|
2014-03-01 Mark Kettenis <kettenis@gnu.org>
|
|
|
|
|
|
|
|
|
|
* mips64obsd-nat.c: Include "obsd-nath".
|
|
|
|
|
(_initialize_mips64obsd_nat): Call obsd_add_target instead of
|
|
|
|
|
add_target
|
|
|
|
|
* config/mips/obsd64.mh (NATDEPFILES): Add obsd-nat.o.
|
|
|
|
|
|
2014-03-01 10:49:58 +00:00
|
|
|
|
2014-03-01 Mark Kettenis <kettenis@gnu.org>
|
|
|
|
|
|
2014-03-01 11:03:30 +00:00
|
|
|
|
* amd64obsd-nat.c: Include "obsd-nat,h.
|
|
|
|
|
(_initialize_amd64obsd_nat): Call obsd_add_target instead of
|
|
|
|
|
add_target.
|
2014-03-01 10:49:58 +00:00
|
|
|
|
* config/i386/obsd64.mh (NATDEPFILES): Add obsd-nat.o.
|
|
|
|
|
|
2014-02-27 13:51:46 +00:00
|
|
|
|
2014-02-28 Siva Chandra Reddy <sivachandra@google.com>
|
|
|
|
|
|
|
|
|
|
* valops.c (find_oload_champ): Remove unneccesary argument METHOD.
|
|
|
|
|
(find_overload_match): Update call to find_oload_champ.
|
|
|
|
|
(find_oload_champ_namespace_loop): Likewise
|
|
|
|
|
|
2014-02-27 22:23:46 +00:00
|
|
|
|
2014-02-28 Mark Kettenis <kettenis@gnu.org>
|
|
|
|
|
|
2014-02-28 22:20:57 +00:00
|
|
|
|
* Makefile.in (ALLDEPFILES): Add sparc64obsd-nat.c.
|
|
|
|
|
|
2014-02-28 22:06:14 +00:00
|
|
|
|
* configure.host (sparc64-*-openbsd*): Set gdb_host to obsd64.
|
|
|
|
|
* config/sparc/obsd64.mh: New file.
|
|
|
|
|
* sparc64obsd-nat.c: New file.
|
|
|
|
|
|
2014-02-27 22:23:46 +00:00
|
|
|
|
* obsd-nat.h: New file.
|
|
|
|
|
* obsd-nat.c: New file.
|
|
|
|
|
* Makefile.in (HFILES_NO_SRCDIR): Add obsd-nat.h.
|
|
|
|
|
(ALLDEPFILES): Add obsd-nat.c.
|
|
|
|
|
|
2013-12-24 03:53:23 +00:00
|
|
|
|
2014-02-28 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* cli-out.c (cli_ui_out_impl): Now const. Remove comment.
|
|
|
|
|
* cli-out.h (cli_ui_out_impl): Now const.
|
|
|
|
|
* mi/mi-out.c (mi_ui_out_impl): Now const. Remove comment.
|
|
|
|
|
* ui-out.c (struct ui_out) <impl>: Now const.
|
|
|
|
|
(default_ui_out_impl): Now const.
|
|
|
|
|
(ui_out_new): Make 'impl' parameter const.
|
|
|
|
|
* ui-out.h (ui_out_new): Update.
|
|
|
|
|
|
2014-02-27 20:51:08 +00:00
|
|
|
|
2014-02-27 Mark Kettenis <kettenis@gnu.org>
|
|
|
|
|
|
|
|
|
|
* solib-svr4.c (svr4_read_so_list): Initialize first_l_name to 0.
|
|
|
|
|
|
2014-02-27 20:22:29 +00:00
|
|
|
|
2014-02-27 Mark Kettenis <kettenis@gnu.org>
|
|
|
|
|
|
|
|
|
|
* sparc-nat.c (sparc_xfer_wcookie): Always use process ID.
|
|
|
|
|
|
2014-02-27 20:16:04 +00:00
|
|
|
|
2014-02-27 Jan Kratochvil <jan.kratochvil@redhat.com>
|
|
|
|
|
|
|
|
|
|
Additional PR 8882 fix.
|
|
|
|
|
* solib-svr4.c (svr4_read_so_list): Change first to first_l_name.
|
|
|
|
|
|
2014-02-27 14:44:16 +00:00
|
|
|
|
2014-02-27 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* nat/linux-waitpid.c (my_waitpid): Only block signals if WNOHANG
|
|
|
|
|
isn't set.
|
|
|
|
|
|
2014-02-27 14:30:08 +00:00
|
|
|
|
2014-02-27 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR 12702
|
|
|
|
|
* linux-nat.c (status_to_str): Moved to nat/linux-waitpid.c.
|
|
|
|
|
* nat/linux-waitpid.c: Include string.h.
|
|
|
|
|
(status_to_str): Moved here and made extern.
|
|
|
|
|
* nat/linux-waitpid.h (status_to_str): New declaration.
|
|
|
|
|
|
2014-02-27 14:30:07 +00:00
|
|
|
|
2014-02-27 Hui Zhu <hui@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR 12702
|
|
|
|
|
* infrun.c (ptid_match): Move ...
|
|
|
|
|
* common/ptid.c (ptid_match): ... here.
|
|
|
|
|
* inferior.h (ptid_match): Move ...
|
|
|
|
|
* common/ptid.h (ptid_match): ... here.
|
|
|
|
|
|
2014-02-27 13:07:10 +00:00
|
|
|
|
2014-02-27 Mark Kettenis <kettenis@gnu.org>
|
|
|
|
|
|
|
|
|
|
* mips64obsd-tdep.c (mips64obsd_init_abi): Call obsd_init_abi.
|
|
|
|
|
* configure.tgt (mips64*-*-openbsd*): Add obsd-tdep.c to
|
|
|
|
|
gdb_target_obs.
|
|
|
|
|
|
2014-02-27 12:47:00 +00:00
|
|
|
|
2014-02-27 Mark Kettenis <kettenis@gnu.org>
|
|
|
|
|
|
|
|
|
|
* obsd-tdep.c (obsd_auxv_parse): New function.
|
|
|
|
|
(obsd_init_abi): Set auxv_parse.
|
2014-02-27 12:40:15 +00:00
|
|
|
|
|
|
|
|
|
* gdbarch.sh (auxv_parse): New.
|
|
|
|
|
* gdbarch.h: Regenerated.
|
|
|
|
|
* gdbarch.c: Regenerated.
|
|
|
|
|
* auxv.c (target_auxv_parse): Call gdbarch_parse_auxv if provided.
|
|
|
|
|
|
2014-02-18 22:35:46 +00:00
|
|
|
|
2014-02-26 Ludovic Courtès <ludo@gnu.org>
|
|
|
|
|
|
|
|
|
|
* guile/scm-value.c (gdbscm_history_append_x): New function.
|
|
|
|
|
(value_functions): Add it.
|
|
|
|
|
|
DWARF: Read constant-class addresses correctly
Starting with DWARF version 4, the description of the DW_AT_high_pc
attribute was amended to say:
if it is of class constant, the value is an unsigned integer offset
which when added to the low PC gives the address of the first
location past the last instruction associated with the entity.
A change was made in Apr 27th, 2012 to reflect that change:
| commit 91da14142c0171e58a91ad58a32fd010b700e761
| Author: Mark Wielaard <mjw@redhat.com>
| Date: Fri Apr 27 18:55:19 2012 +0000
|
| * dwarf2read.c (dwarf2_get_pc_bounds): Check DW_AT_high_pc form to
| see whether it is an address or a constant offset from DW_AT_low_pc.
| (dwarf2_record_block_ranges): Likewise.
| (read_partial_die): Likewise.
Unfortunately, this new interpretation is now used regardless of
the CU's DWARF version. It turns out that one of WindRiver's compilers
(FTR: Diabdata 4.4) is generating DWARF version 2 info with
DW_AT_high_pc attributes improperly using the data4 form. Because of
that, we miscompute all high PCs incorrectly. This leads to a lot of
symtabs having overlapping ranges, which in turn causes havoc in
pc-to-symtab-and-line translations.
One visible effect is when inserting a breakpoint on a given function:
(gdb) b world
Breakpoint 1 at 0x4005c4
The source location of the breakpoint is missing. The output should be:
(gdb) b world
Breakpoint 1 at 0x4005c8: file dw2-rel-hi-pc-world.c, line 24.
What happens in this case is that the pc-to-SAL translation first
starts be trying to find the symtab associated to our PC using
each symtab's ranges. Because of the high_pc miscomputation,
many symtabs end up matching, and the heuristic trying to select
the most probable one unfortunately returns one that is unrelated
(it really had no change in this case to do any better). Once we
have the wrong symtab, the start searching the associated linetable,
where the addresses are correct, thus finding no match, and therefore
no SAL.
This patch is an attempt at handling the situation as gracefully
as we can, without guarantees. It introduces a new function
"attr_value_as_address" which uses the correct accessor for getting
the value of a given attribute. It then adjust the code throughout
this unit to use this function instead of assuming that addresses always
have the DW_FORM_addr format.
It also fixes the original issue of miscomputing the high_pc
by limiting the new interpretation of constant form DW_AT_high_pc
attributes to units using DWARF version 4 or later.
gdb/ChangeLog:
* dwarf2read.c (attr_value_as_address): New function.
(dwarf2_find_base_address, read_call_site_scope): Use
attr_value_as_address in place of DW_ADDR.
(dwarf2_get_pc_bounds): Use attr_value_as_address to get
the low and high addresses. Slight rework of the handling
of the high pc being a constant form, and limit it to
DWARF verson 4 or higher.
(dwarf2_record_block_ranges): Likewise.
(read_partial_die): Likewise.
(new_symbol_full): Use attr_value_as_address in place of DW_ADDR.
gdb/testsuite/ChangeLog:
* gdb.dwarf2/dw2-abs-hi-pc-hello-dbg.S: New file.
* gdb.dwarf2/dw2-abs-hi-pc-hello.c: New file.
* gdb.dwarf2/dw2-abs-hi-pc-world-dbg.S: New file.
* gdb.dwarf2/dw2-abs-hi-pc-world.c: New file.
* gdb.dwarf2/dw2-abs-hi-pc.c: New file.
* gdb.dwarf2/dw2-abs-hi-pc.exp: New file.
Tested on x86_64-linux.
2014-02-15 15:09:58 +00:00
|
|
|
|
2014-02-27 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* dwarf2read.c (attr_value_as_address): New function.
|
|
|
|
|
(dwarf2_find_base_address, read_call_site_scope): Use
|
|
|
|
|
attr_value_as_address in place of DW_ADDR.
|
|
|
|
|
(dwarf2_get_pc_bounds): Use attr_value_as_address to get
|
|
|
|
|
the low and high addresses. Slight rework of the handling
|
|
|
|
|
of the high pc being a constant form, and limit it to
|
|
|
|
|
DWARF verson 4 or higher.
|
|
|
|
|
(dwarf2_record_block_ranges): Likewise.
|
|
|
|
|
(read_partial_die): Likewise.
|
|
|
|
|
(new_symbol_full): Use attr_value_as_address in place of DW_ADDR.
|
|
|
|
|
|
2013-10-17 18:03:06 +00:00
|
|
|
|
2014-02-26 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* exec.c (exec_file_attach): Hold a reference to exec_bfd.
|
|
|
|
|
|
2013-10-15 17:50:58 +00:00
|
|
|
|
2014-02-26 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* elfread.c (elf_read_minimal_symbols): Return early if
|
|
|
|
|
minimal symbols have already been read. Add "ei" parameter.
|
|
|
|
|
(elf_symfile_read): Call elf_read_minimal_symbols earlier.
|
|
|
|
|
* minsyms.c (prim_record_minimal_symbol_full): Update.
|
|
|
|
|
* objfiles.h (struct objstats) <n_minsyms>: Move...
|
|
|
|
|
(struct objfile_per_bfd_storage) <n_minsyms>: ... here.
|
|
|
|
|
* symmisc.c (print_objfile_statistics): Update.
|
|
|
|
|
|
2013-10-15 17:43:46 +00:00
|
|
|
|
2014-02-26 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* elfread.c (elf_read_minimal_symbols): New function, from
|
|
|
|
|
elf_symfile_read.
|
|
|
|
|
(elf_symfile_read): Call it.
|
|
|
|
|
|
move minimal symbols to per-bfd
Now that minimal symbols are independent of the program space, we can
move them to the per-BFD object. This lets us save memory in the
multi-inferior case; and, once the symbol readers are updated, time.
The other prerequisite for this move is that all the objects referred
to by the minimal symbols have a lifetime at least as long as the
per-BFD object. I think this is satisfied partially by this patch
(moving the copied names there) and partially by earlier patches
moving the demangled name hash.
This patch contains a bit of logic to avoid creating new minimal
symbols if they have already been read for a given BFD. This allows
us to avoid trying to update all the symbol readers for this
condition. At first glance this may seem like a hack, but some symbol
readers mix psym and minsym reading, and would require logic just like
this regardless -- and it is simpler and less error-prone to just do
the work in a central spot.
2014-02-26 Tom Tromey <tromey@redhat.com>
* minsyms.c (lookup_minimal_symbol, iterate_over_minimal_symbols)
(lookup_minimal_symbol_text, lookup_minimal_symbol_by_pc_name)
(lookup_minimal_symbol_solib_trampoline)
(lookup_minimal_symbol_by_pc_section_1)
(lookup_minimal_symbol_and_objfile): Update.
(prim_record_minimal_symbol_full): Use the per-BFD obstack.
Don't allocate a minimal symbol if minsyms have already been read.
(build_minimal_symbol_hash_tables): Update.
(install_minimal_symbols): Do nothing if minsyms already read.
Use the per-BFD obstack.
(terminate_minimal_symbol_table): Use the per-BFD obstack.
* objfiles.c (allocate_objfile): Call
terminate_minimal_symbol_table later.
(have_minimal_symbols): Update.
* objfiles.h (struct objfile_per_bfd_storage) <msymbols,
minimal_symbol_count, msymbol_hash, msymbol_demangled_hash>:
Move from struct objfile.
<minsyms_read>: New field.
(struct objfile) <msymbols, minimal_symbol_count,
msymbol_hash, msymbol_demangled_hash>: Move.
(ALL_OBJFILE_MSYMBOLS): Update.
* symfile.c (read_symbols): Set minsyms_read.
(reread_symbols): Update.
* symmisc.c (dump_objfile, dump_msymbols): Update.
2013-10-15 17:37:19 +00:00
|
|
|
|
2014-02-26 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* minsyms.c (lookup_minimal_symbol, iterate_over_minimal_symbols)
|
|
|
|
|
(lookup_minimal_symbol_text, lookup_minimal_symbol_by_pc_name)
|
|
|
|
|
(lookup_minimal_symbol_solib_trampoline)
|
|
|
|
|
(lookup_minimal_symbol_by_pc_section_1)
|
|
|
|
|
(lookup_minimal_symbol_and_objfile): Update.
|
|
|
|
|
(prim_record_minimal_symbol_full): Use the per-BFD obstack.
|
|
|
|
|
Don't allocate a minimal symbol if minsyms have already been read.
|
|
|
|
|
(build_minimal_symbol_hash_tables): Update.
|
|
|
|
|
(install_minimal_symbols): Do nothing if minsyms already read.
|
|
|
|
|
Use the per-BFD obstack.
|
|
|
|
|
(terminate_minimal_symbol_table): Use the per-BFD obstack.
|
|
|
|
|
* objfiles.c (allocate_objfile): Call
|
|
|
|
|
terminate_minimal_symbol_table later.
|
|
|
|
|
(have_minimal_symbols): Update.
|
|
|
|
|
* objfiles.h (struct objfile_per_bfd_storage) <msymbols,
|
|
|
|
|
minimal_symbol_count, msymbol_hash, msymbol_demangled_hash>:
|
|
|
|
|
Move from struct objfile.
|
|
|
|
|
<minsyms_read>: New field.
|
|
|
|
|
(struct objfile) <msymbols, minimal_symbol_count,
|
|
|
|
|
msymbol_hash, msymbol_demangled_hash>: Move.
|
|
|
|
|
(ALL_OBJFILE_MSYMBOLS): Update.
|
|
|
|
|
* symfile.c (read_symbols): Set minsyms_read.
|
|
|
|
|
(reread_symbols): Update.
|
|
|
|
|
* symmisc.c (dump_objfile, dump_msymbols): Update.
|
|
|
|
|
|
2013-10-15 19:28:57 +00:00
|
|
|
|
2014-02-26 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* minsyms.c (msymbols_sort): Remove.
|
|
|
|
|
* minsyms.h (msymbols_sort): Remove.
|
|
|
|
|
* objfiles.c (objfile_relocate1): Don't relocate minsyms.
|
|
|
|
|
* symtab.h (MSYMBOL_VALUE_ADDRESS): Use objfile offsets.
|
|
|
|
|
* elfread.c (elf_symtab_read): Don't add section offsets.
|
|
|
|
|
* xcoffread.c (record_minimal_symbol): Don't add section offset
|
|
|
|
|
to minimal symbol address.
|
|
|
|
|
* somread.c (text_offset, data_offset): Remove.
|
|
|
|
|
(som_symtab_read): Don't add section offsets to minimal symbol
|
|
|
|
|
addresses.
|
|
|
|
|
* coff-pe-read.c (add_pe_forwarded_sym, read_pe_exported_syms):
|
|
|
|
|
Don't add section offsets to minimal symbols.
|
|
|
|
|
* coffread.c (coff_symtab_read): Don't add section offsets
|
|
|
|
|
to minimal symbol addresses.
|
|
|
|
|
* machoread.c (macho_symtab_add_minsym): Don't add section offset
|
|
|
|
|
to minimal symbol addresses.
|
|
|
|
|
* mipsread.c (read_alphacoff_dynamic_symtab): Don't add
|
|
|
|
|
section offset to minimal symbol addresses.
|
|
|
|
|
* mdebugread.c (parse_partial_symbols): Don't add section
|
|
|
|
|
offset to minimal symbol addresses.
|
|
|
|
|
* dbxread.c (read_dbx_dynamic_symtab): Don't add section
|
|
|
|
|
offset to minimal symbol addresses.
|
|
|
|
|
|
start change to progspace independence
This patch starts changing minimal symbols to be independent of the
program space.
Specifically, it adds a new objfile parameter to MSYMBOL_VALUE_ADDRESS
and changes all the code to use it. This is needed so we can change
gdb to apply the section offset when a minsym's address is computed,
as opposed to baking the offsets into the symbol itself.
A few spots still need the unrelocated address. For these, we
introduce MSYMBOL_VALUE_RAW_ADDRESS.
As a convenience, we also add the new macro BMSYMBOL_VALUE_ADDRESS,
which computes the address of a bound minimal symbol. This just does
the obvious thing with the fields.
Note that this change does not actually enable program space
independence. That requires more changes to gdb. However, to ensure
that these changes compile properly, this patch does add the needed
section lookup code to MSYMBOL_VALUE_ADDRESS -- it just ensures it has
no effect at runtime by multiplying the offset by 0.
2014-02-26 Tom Tromey <tromey@redhat.com>
* ada-lang.c (ada_main_name): Update.
(ada_add_standard_exceptions): Update.
* ada-tasks.c (ada_tasks_inferior_data_sniffer): Update.
* aix-thread.c (pdc_symbol_addrs, pd_enable): Update.
* arm-tdep.c (skip_prologue_function, arm_skip_stub): Update.
* auxv.c (ld_so_xfer_auxv): Update.
* avr-tdep.c (avr_scan_prologue): Update.
* ax-gdb.c (gen_var_ref): Update.
* blockframe.c (get_pc_function_start)
(find_pc_partial_function_gnu_ifunc): Update.
* breakpoint.c (create_overlay_event_breakpoint)
(create_longjmp_master_breakpoint)
(create_std_terminate_master_breakpoint)
(create_exception_master_breakpoint): Update.
* bsd-uthread.c (bsd_uthread_lookup_address): Update.
* c-valprint.c (c_val_print): Update.
* coff-pe-read.c (add_pe_forwarded_sym): Update.
* common/agent.c (agent_look_up_symbols): Update.
* dbxread.c (find_stab_function_addr, end_psymtab): Update.
* dwarf2loc.c (call_site_to_target_addr): Update.
* dwarf2read.c (dw2_find_pc_sect_symtab): Update.
* elfread.c (elf_gnu_ifunc_record_cache)
(elf_gnu_ifunc_resolve_by_got): Update.
* findvar.c (default_read_var_value): Update.
* frame.c (inside_main_func): Update.
* frv-tdep.c (frv_frame_this_id): Update.
* glibc-tdep.c (glibc_skip_solib_resolver): Update.
* gnu-v3-abi.c (gnuv3_get_typeid, gnuv3_skip_trampoline):
Update.
* hppa-hpux-tdep.c (hppa64_hpux_search_dummy_call_sequence)
(hppa_hpux_find_dummy_bpaddr): Update.
* hppa-tdep.c (hppa_symbol_address): Update.
* infcmd.c (until_next_command): Update.
* jit.c (jit_read_descriptor, jit_breakpoint_re_set_internal):
Update.
* linespec.c (minsym_found, add_minsym): Update.
* linux-nat.c (get_signo): Update.
* linux-thread-db.c (inferior_has_bug): Update.
* m32c-tdep.c (m32c_return_value)
(m32c_m16c_address_to_pointer): Update.
* m32r-tdep.c (m32r_frame_this_id): Update.
* m68hc11-tdep.c (m68hc11_get_register_info): Update.
* machoread.c (macho_resolve_oso_sym_with_minsym): Update.
* maint.c (maintenance_translate_address): Update.
* minsyms.c (lookup_minimal_symbol_by_pc_name): Update.
(frob_address): New function.
(lookup_minimal_symbol_by_pc_section_1): Use raw addresses,
frob_address. Rename parameter to "pc_in".
(compare_minimal_symbols, compact_minimal_symbols): Use raw
addresses.
(find_solib_trampoline_target, minimal_symbol_upper_bound):
Update.
* mips-linux-tdep.c (mips_linux_skip_resolver): Update.
* mips-tdep.c (mips_skip_pic_trampoline_code): Update.
* objc-lang.c (find_objc_msgsend): Update.
* objfiles.c (objfile_relocate1): Update.
* obsd-tdep.c (obsd_skip_solib_resolver): Update.
* p-valprint.c (pascal_val_print): Update.
* parse.c (write_exp_msymbol): Update.
* ppc-linux-tdep.c (ppc_linux_spe_context_lookup)
(ppc_elfv2_skip_entrypoint): Update.
* ppc-sysv-tdep.c (convert_code_addr_to_desc_addr): Update.
* printcmd.c (build_address_symbolic, msym_info)
(address_info): Update.
* proc-service.c (ps_pglobal_lookup): Update.
* psymtab.c (find_pc_sect_psymtab_closer)
(find_pc_sect_psymtab, find_pc_sect_symtab_from_partial):
Change msymbol parameter to bound_minimal_symbol.
* ravenscar-thread.c (get_running_thread_id): Update.
* remote.c (remote_check_symbols): Update.
* sh64-tdep.c (sh64_elf_make_msymbol_special): Use raw
address.
* sol2-tdep.c (sol2_skip_solib_resolver): Update.
* solib-dsbt.c (lm_base): Update.
* solib-frv.c (lm_base, main_got): Update.
* solib-irix.c (locate_base): Update.
* solib-som.c (som_solib_create_inferior_hook)
(link_map_start): Update.
* solib-spu.c (spu_enable_break, ocl_enable_break): Update.
* solib-svr4.c (elf_locate_base, enable_break): Update.
* spu-tdep.c (spu_get_overlay_table, spu_catch_start)
(flush_ea_cache): Update.
* stabsread.c (define_symbol, scan_file_globals): Update.
* stack.c (find_frame_funname): Update.
* symfile-debug.c (debug_qf_expand_symtabs_matching)
(debug_qf_find_pc_sect_symtab): Update.
* symfile.c (simple_read_overlay_table)
(simple_overlay_update): Update.
* symfile.h (struct quick_symbol_functions)
<find_pc_sect_symtab>: Change type of msymbol to
bound_minimal_symbol.
* symmisc.c (dump_msymbols): Update.
* symtab.c (find_pc_sect_symtab_via_partial)
(find_pc_sect_psymtab, find_pc_sect_line, skip_prologue_sal)
(search_symbols, print_msymbol_info): Update.
* symtab.h (MSYMBOL_VALUE_RAW_ADDRESS): New macro.
(MSYMBOL_VALUE_ADDRESS): Redefine.
(BMSYMBOL_VALUE_ADDRESS): New macro.
* tracepoint.c (scope_info): Update.
* tui/tui-disasm.c (tui_find_disassembly_address)
(tui_get_begin_asm_address): Update.
* valops.c (find_function_in_inferior): Update.
* value.c (value_static_field, value_fn_field): Update.
2013-08-15 14:46:35 +00:00
|
|
|
|
2014-02-26 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* ada-lang.c (ada_main_name): Update.
|
|
|
|
|
(ada_add_standard_exceptions): Update.
|
|
|
|
|
* ada-tasks.c (ada_tasks_inferior_data_sniffer): Update.
|
|
|
|
|
* aix-thread.c (pdc_symbol_addrs, pd_enable): Update.
|
|
|
|
|
* arm-tdep.c (skip_prologue_function, arm_skip_stub): Update.
|
|
|
|
|
* auxv.c (ld_so_xfer_auxv): Update.
|
|
|
|
|
* avr-tdep.c (avr_scan_prologue): Update.
|
|
|
|
|
* ax-gdb.c (gen_var_ref): Update.
|
|
|
|
|
* blockframe.c (get_pc_function_start)
|
|
|
|
|
(find_pc_partial_function_gnu_ifunc): Update.
|
|
|
|
|
* breakpoint.c (create_overlay_event_breakpoint)
|
|
|
|
|
(create_longjmp_master_breakpoint)
|
|
|
|
|
(create_std_terminate_master_breakpoint)
|
|
|
|
|
(create_exception_master_breakpoint): Update.
|
|
|
|
|
* bsd-uthread.c (bsd_uthread_lookup_address): Update.
|
|
|
|
|
* c-valprint.c (c_val_print): Update.
|
|
|
|
|
* coff-pe-read.c (add_pe_forwarded_sym): Update.
|
|
|
|
|
* common/agent.c (agent_look_up_symbols): Update.
|
|
|
|
|
* dbxread.c (find_stab_function_addr, end_psymtab): Update.
|
|
|
|
|
* dwarf2loc.c (call_site_to_target_addr): Update.
|
|
|
|
|
* dwarf2read.c (dw2_find_pc_sect_symtab): Update.
|
|
|
|
|
* elfread.c (elf_gnu_ifunc_record_cache)
|
|
|
|
|
(elf_gnu_ifunc_resolve_by_got): Update.
|
|
|
|
|
* findvar.c (default_read_var_value): Update.
|
|
|
|
|
* frame.c (inside_main_func): Update.
|
|
|
|
|
* frv-tdep.c (frv_frame_this_id): Update.
|
|
|
|
|
* glibc-tdep.c (glibc_skip_solib_resolver): Update.
|
|
|
|
|
* gnu-v3-abi.c (gnuv3_get_typeid, gnuv3_skip_trampoline):
|
|
|
|
|
Update.
|
|
|
|
|
* hppa-hpux-tdep.c (hppa64_hpux_search_dummy_call_sequence)
|
|
|
|
|
(hppa_hpux_find_dummy_bpaddr): Update.
|
|
|
|
|
* hppa-tdep.c (hppa_symbol_address): Update.
|
|
|
|
|
* infcmd.c (until_next_command): Update.
|
|
|
|
|
* jit.c (jit_read_descriptor, jit_breakpoint_re_set_internal):
|
|
|
|
|
Update.
|
|
|
|
|
* linespec.c (minsym_found, add_minsym): Update.
|
|
|
|
|
* linux-nat.c (get_signo): Update.
|
|
|
|
|
* linux-thread-db.c (inferior_has_bug): Update.
|
|
|
|
|
* m32c-tdep.c (m32c_return_value)
|
|
|
|
|
(m32c_m16c_address_to_pointer): Update.
|
|
|
|
|
* m32r-tdep.c (m32r_frame_this_id): Update.
|
|
|
|
|
* m68hc11-tdep.c (m68hc11_get_register_info): Update.
|
|
|
|
|
* machoread.c (macho_resolve_oso_sym_with_minsym): Update.
|
|
|
|
|
* maint.c (maintenance_translate_address): Update.
|
|
|
|
|
* minsyms.c (lookup_minimal_symbol_by_pc_name): Update.
|
|
|
|
|
(frob_address): New function.
|
|
|
|
|
(lookup_minimal_symbol_by_pc_section_1): Use raw addresses,
|
|
|
|
|
frob_address. Rename parameter to "pc_in".
|
|
|
|
|
(compare_minimal_symbols, compact_minimal_symbols): Use raw
|
|
|
|
|
addresses.
|
|
|
|
|
(find_solib_trampoline_target, minimal_symbol_upper_bound):
|
|
|
|
|
Update.
|
|
|
|
|
* mips-linux-tdep.c (mips_linux_skip_resolver): Update.
|
|
|
|
|
* mips-tdep.c (mips_skip_pic_trampoline_code): Update.
|
|
|
|
|
* objc-lang.c (find_objc_msgsend): Update.
|
|
|
|
|
* objfiles.c (objfile_relocate1): Update.
|
|
|
|
|
* obsd-tdep.c (obsd_skip_solib_resolver): Update.
|
|
|
|
|
* p-valprint.c (pascal_val_print): Update.
|
|
|
|
|
* parse.c (write_exp_msymbol): Update.
|
|
|
|
|
* ppc-linux-tdep.c (ppc_linux_spe_context_lookup)
|
|
|
|
|
(ppc_elfv2_skip_entrypoint): Update.
|
|
|
|
|
* ppc-sysv-tdep.c (convert_code_addr_to_desc_addr): Update.
|
|
|
|
|
* printcmd.c (build_address_symbolic, msym_info)
|
|
|
|
|
(address_info): Update.
|
|
|
|
|
* proc-service.c (ps_pglobal_lookup): Update.
|
|
|
|
|
* psymtab.c (find_pc_sect_psymtab_closer)
|
|
|
|
|
(find_pc_sect_psymtab, find_pc_sect_symtab_from_partial):
|
|
|
|
|
Change msymbol parameter to bound_minimal_symbol.
|
|
|
|
|
* ravenscar-thread.c (get_running_thread_id): Update.
|
|
|
|
|
* remote.c (remote_check_symbols): Update.
|
|
|
|
|
* sh64-tdep.c (sh64_elf_make_msymbol_special): Use raw
|
|
|
|
|
address.
|
|
|
|
|
* sol2-tdep.c (sol2_skip_solib_resolver): Update.
|
|
|
|
|
* solib-dsbt.c (lm_base): Update.
|
|
|
|
|
* solib-frv.c (lm_base, main_got): Update.
|
|
|
|
|
* solib-irix.c (locate_base): Update.
|
|
|
|
|
* solib-som.c (som_solib_create_inferior_hook)
|
|
|
|
|
(link_map_start): Update.
|
|
|
|
|
* solib-spu.c (spu_enable_break, ocl_enable_break): Update.
|
|
|
|
|
* solib-svr4.c (elf_locate_base, enable_break): Update.
|
|
|
|
|
* spu-tdep.c (spu_get_overlay_table, spu_catch_start)
|
|
|
|
|
(flush_ea_cache): Update.
|
|
|
|
|
* stabsread.c (define_symbol, scan_file_globals): Update.
|
|
|
|
|
* stack.c (find_frame_funname): Update.
|
|
|
|
|
* symfile-debug.c (debug_qf_expand_symtabs_matching)
|
|
|
|
|
(debug_qf_find_pc_sect_symtab): Update.
|
|
|
|
|
* symfile.c (simple_read_overlay_table)
|
|
|
|
|
(simple_overlay_update): Update.
|
|
|
|
|
* symfile.h (struct quick_symbol_functions)
|
|
|
|
|
<find_pc_sect_symtab>: Change type of msymbol to
|
|
|
|
|
bound_minimal_symbol.
|
|
|
|
|
* symmisc.c (dump_msymbols): Update.
|
|
|
|
|
* symtab.c (find_pc_sect_symtab_via_partial)
|
|
|
|
|
(find_pc_sect_psymtab, find_pc_sect_line, skip_prologue_sal)
|
|
|
|
|
(search_symbols, print_msymbol_info): Update.
|
|
|
|
|
* symtab.h (MSYMBOL_VALUE_RAW_ADDRESS): New macro.
|
|
|
|
|
(MSYMBOL_VALUE_ADDRESS): Redefine.
|
|
|
|
|
(BMSYMBOL_VALUE_ADDRESS): New macro.
|
|
|
|
|
* tracepoint.c (scope_info): Update.
|
|
|
|
|
* tui/tui-disasm.c (tui_find_disassembly_address)
|
|
|
|
|
(tui_get_begin_asm_address): Update.
|
|
|
|
|
* valops.c (find_function_in_inferior): Update.
|
|
|
|
|
* value.c (value_static_field, value_fn_field): Update.
|
|
|
|
|
|
use bound_minsym as result for lookup_minimal_symbol et al
This patch changes a few minimal symbol lookup functions to return a
bound_minimal_symbol rather than a pointer to the minsym. This change
helps prepare gdb for computing a minimal symbol's address at the
point of use.
Note that this changes even those functions that ostensibly search a
single objfile. That was necessary because, in fact, those functions
can search an objfile and its separate debug objfiles; and it is
important for the caller to know in which objfile the minimal symbol
was actually found.
The bulk of this patch is mechanical.
2014-02-26 Tom Tromey <tromey@redhat.com>
* ada-lang.c (ada_update_initial_language): Update.
(ada_main_name, ada_has_this_exception_support): Update.
* ada-tasks.c (ada_tasks_inferior_data_sniffer): Update.
* aix-thread.c (pdc_symbol_addrs, pd_enable): Update.
* arm-tdep.c (arm_skip_stub): Update.
* auxv.c (ld_so_xfer_auxv): Update.
* avr-tdep.c (avr_scan_prologue): Update.
* ax-gdb.c (gen_var_ref): Update.
* breakpoint.c (struct breakpoint_objfile_data)
<overlay_msym, longjmp_msym, terminate_msym, exception_msym>: Change
type to bound_minimal_symbol.
(create_overlay_event_breakpoint)
(create_longjmp_master_breakpoint)
(create_std_terminate_master_breakpoint)
(create_exception_master_breakpoint): Update.
* bsd-uthread.c (bsd_uthread_lookup_address): Update.
* c-exp.y (classify_name): Update.
* coffread.c (coff_symfile_read): Update.
* common/agent.c (agent_look_up_symbols): Update.
* d-lang.c (d_main_name): Update.
* dbxread.c (find_stab_function_addr, end_psymtab): Update.
* dec-thread.c (enable_dec_thread): Update.
* dwarf2loc.c (call_site_to_target_addr): Update.
* elfread.c (elf_gnu_ifunc_resolve_by_got): Update.
* eval.c (evaluate_subexp_standard): Update.
* findvar.c (struct minsym_lookup_data) <result>: Change type
to bound_minimal_symbol.
<objfile>: Remove.
(minsym_lookup_iterator_cb, default_read_var_value): Update.
* frame.c (inside_main_func): Update.
* frv-tdep.c (frv_frame_this_id): Update.
* gcore.c (call_target_sbrk): Update.
* glibc-tdep.c (glibc_skip_solib_resolver): Update.
* gnu-v3-abi.c (gnuv3_get_typeid, gnuv3_skip_trampoline):
Update.
* go-lang.c (go_main_name): Update.
* hppa-hpux-tdep.c (hppa_hpux_skip_trampoline_code)
(hppa_hpux_find_import_stub_for_addr): Update.
* hppa-tdep.c (hppa_extract_17, hppa_lookup_stub_minimal_symbol):
Update. Change return type.
* hppa-tdep.h (hppa_lookup_stub_minimal_symbol): Change return
type.
* jit.c (jit_breakpoint_re_set_internal): Update.
* linux-fork.c (inferior_call_waitpid, checkpoint_command):
Update.
* linux-nat.c (get_signo): Update.
* linux-thread-db.c (inferior_has_bug): Update
* m32c-tdep.c (m32c_return_value)
(m32c_m16c_address_to_pointer): Update.
* m32r-tdep.c (m32r_frame_this_id): Update.
* m68hc11-tdep.c (m68hc11_get_register_info): Update.
* machoread.c (macho_resolve_oso_sym_with_minsym): Update.
* minsyms.c (lookup_minimal_symbol_internal): Rename to
lookup_minimal_symbol. Change return type.
(lookup_minimal_symbol): Remove.
(lookup_bound_minimal_symbol): Update.
(lookup_minimal_symbol_text): Change return type.
(lookup_minimal_symbol_solib_trampoline): Change return type.
* minsyms.h (lookup_minimal_symbol, lookup_minimal_symbol_text)
(lookup_minimal_symbol_solib_trampoline): Change return type.
* mips-linux-tdep.c (mips_linux_skip_resolver): Update.
* objc-lang.c (lookup_objc_class, lookup_child_selector)
(value_nsstring, find_imps): Update.
* obsd-tdep.c (obsd_skip_solib_resolver): Update.
* p-lang.c (pascal_main_name): Update.
* ppc-linux-tdep.c (ppc_linux_spe_context_lookup): Update.
* ppc-sysv-tdep.c (convert_code_addr_to_desc_addr): Update.
* proc-service.c (ps_pglobal_lookup): Update.
* ravenscar-thread.c (get_running_thread_msymbol): Change
return type.
(has_ravenscar_runtime, get_running_thread_id): Update.
* remote.c (remote_check_symbols): Update.
* sol-thread.c (ps_pglobal_lookup): Update.
* sol2-tdep.c (sol2_skip_solib_resolver): Update.
* solib-dsbt.c (lm_base): Update.
* solib-frv.c (lm_base, frv_relocate_section_addresses):
Update.
* solib-irix.c (locate_base): Update.
* solib-som.c (som_solib_create_inferior_hook)
(som_solib_desire_dynamic_linker_symbols, link_map_start):
Update.
* solib-spu.c (spu_enable_break): Update.
* solib-svr4.c (elf_locate_base, enable_break): Update.
* spu-tdep.c (spu_get_overlay_table, spu_catch_start)
(flush_ea_cache): Update.
* stabsread.c (define_symbol): Update.
* symfile.c (simple_read_overlay_table): Update.
* symtab.c (find_pc_sect_line): Update.
* tracepoint.c (scope_info): Update.
* tui-disasm.c (tui_get_begin_asm_address): Update.
* value.c (value_static_field): Update.
2013-10-15 01:53:29 +00:00
|
|
|
|
2014-02-26 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* ada-lang.c (ada_update_initial_language): Update.
|
|
|
|
|
(ada_main_name, ada_has_this_exception_support): Update.
|
|
|
|
|
* ada-tasks.c (ada_tasks_inferior_data_sniffer): Update.
|
|
|
|
|
* aix-thread.c (pdc_symbol_addrs, pd_enable): Update.
|
|
|
|
|
* arm-tdep.c (arm_skip_stub): Update.
|
|
|
|
|
* auxv.c (ld_so_xfer_auxv): Update.
|
|
|
|
|
* avr-tdep.c (avr_scan_prologue): Update.
|
|
|
|
|
* ax-gdb.c (gen_var_ref): Update.
|
|
|
|
|
* breakpoint.c (struct breakpoint_objfile_data)
|
|
|
|
|
<overlay_msym, longjmp_msym, terminate_msym, exception_msym>: Change
|
|
|
|
|
type to bound_minimal_symbol.
|
|
|
|
|
(create_overlay_event_breakpoint)
|
|
|
|
|
(create_longjmp_master_breakpoint)
|
|
|
|
|
(create_std_terminate_master_breakpoint)
|
|
|
|
|
(create_exception_master_breakpoint): Update.
|
|
|
|
|
* bsd-uthread.c (bsd_uthread_lookup_address): Update.
|
|
|
|
|
* c-exp.y (classify_name): Update.
|
|
|
|
|
* coffread.c (coff_symfile_read): Update.
|
|
|
|
|
* common/agent.c (agent_look_up_symbols): Update.
|
|
|
|
|
* d-lang.c (d_main_name): Update.
|
|
|
|
|
* dbxread.c (find_stab_function_addr, end_psymtab): Update.
|
|
|
|
|
* dec-thread.c (enable_dec_thread): Update.
|
|
|
|
|
* dwarf2loc.c (call_site_to_target_addr): Update.
|
|
|
|
|
* elfread.c (elf_gnu_ifunc_resolve_by_got): Update.
|
|
|
|
|
* eval.c (evaluate_subexp_standard): Update.
|
|
|
|
|
* findvar.c (struct minsym_lookup_data) <result>: Change type
|
|
|
|
|
to bound_minimal_symbol.
|
|
|
|
|
<objfile>: Remove.
|
|
|
|
|
(minsym_lookup_iterator_cb, default_read_var_value): Update.
|
|
|
|
|
* frame.c (inside_main_func): Update.
|
|
|
|
|
* frv-tdep.c (frv_frame_this_id): Update.
|
|
|
|
|
* gcore.c (call_target_sbrk): Update.
|
|
|
|
|
* glibc-tdep.c (glibc_skip_solib_resolver): Update.
|
|
|
|
|
* gnu-v3-abi.c (gnuv3_get_typeid, gnuv3_skip_trampoline):
|
|
|
|
|
Update.
|
|
|
|
|
* go-lang.c (go_main_name): Update.
|
|
|
|
|
* hppa-hpux-tdep.c (hppa_hpux_skip_trampoline_code)
|
|
|
|
|
(hppa_hpux_find_import_stub_for_addr): Update.
|
|
|
|
|
* hppa-tdep.c (hppa_extract_17, hppa_lookup_stub_minimal_symbol):
|
|
|
|
|
Update. Change return type.
|
|
|
|
|
* hppa-tdep.h (hppa_lookup_stub_minimal_symbol): Change return
|
|
|
|
|
type.
|
|
|
|
|
* jit.c (jit_breakpoint_re_set_internal): Update.
|
|
|
|
|
* linux-fork.c (inferior_call_waitpid, checkpoint_command):
|
|
|
|
|
Update.
|
|
|
|
|
* linux-nat.c (get_signo): Update.
|
|
|
|
|
* linux-thread-db.c (inferior_has_bug): Update
|
|
|
|
|
* m32c-tdep.c (m32c_return_value)
|
|
|
|
|
(m32c_m16c_address_to_pointer): Update.
|
|
|
|
|
* m32r-tdep.c (m32r_frame_this_id): Update.
|
|
|
|
|
* m68hc11-tdep.c (m68hc11_get_register_info): Update.
|
|
|
|
|
* machoread.c (macho_resolve_oso_sym_with_minsym): Update.
|
|
|
|
|
* minsyms.c (lookup_minimal_symbol_internal): Rename to
|
|
|
|
|
lookup_minimal_symbol. Change return type.
|
|
|
|
|
(lookup_minimal_symbol): Remove.
|
|
|
|
|
(lookup_bound_minimal_symbol): Update.
|
|
|
|
|
(lookup_minimal_symbol_text): Change return type.
|
|
|
|
|
(lookup_minimal_symbol_solib_trampoline): Change return type.
|
|
|
|
|
* minsyms.h (lookup_minimal_symbol, lookup_minimal_symbol_text)
|
|
|
|
|
(lookup_minimal_symbol_solib_trampoline): Change return type.
|
|
|
|
|
* mips-linux-tdep.c (mips_linux_skip_resolver): Update.
|
|
|
|
|
* objc-lang.c (lookup_objc_class, lookup_child_selector)
|
|
|
|
|
(value_nsstring, find_imps): Update.
|
|
|
|
|
* obsd-tdep.c (obsd_skip_solib_resolver): Update.
|
|
|
|
|
* p-lang.c (pascal_main_name): Update.
|
|
|
|
|
* ppc-linux-tdep.c (ppc_linux_spe_context_lookup): Update.
|
|
|
|
|
* ppc-sysv-tdep.c (convert_code_addr_to_desc_addr): Update.
|
|
|
|
|
* proc-service.c (ps_pglobal_lookup): Update.
|
|
|
|
|
* ravenscar-thread.c (get_running_thread_msymbol): Change
|
|
|
|
|
return type.
|
|
|
|
|
(has_ravenscar_runtime, get_running_thread_id): Update.
|
|
|
|
|
* remote.c (remote_check_symbols): Update.
|
|
|
|
|
* sol-thread.c (ps_pglobal_lookup): Update.
|
|
|
|
|
* sol2-tdep.c (sol2_skip_solib_resolver): Update.
|
|
|
|
|
* solib-dsbt.c (lm_base): Update.
|
|
|
|
|
* solib-frv.c (lm_base, frv_relocate_section_addresses):
|
|
|
|
|
Update.
|
|
|
|
|
* solib-irix.c (locate_base): Update.
|
|
|
|
|
* solib-som.c (som_solib_create_inferior_hook)
|
|
|
|
|
(som_solib_desire_dynamic_linker_symbols, link_map_start):
|
|
|
|
|
Update.
|
|
|
|
|
* solib-spu.c (spu_enable_break): Update.
|
|
|
|
|
* solib-svr4.c (elf_locate_base, enable_break): Update.
|
|
|
|
|
* spu-tdep.c (spu_get_overlay_table, spu_catch_start)
|
|
|
|
|
(flush_ea_cache): Update.
|
|
|
|
|
* stabsread.c (define_symbol): Update.
|
|
|
|
|
* symfile.c (simple_read_overlay_table): Update.
|
|
|
|
|
* symtab.c (find_pc_sect_line): Update.
|
|
|
|
|
* tracepoint.c (scope_info): Update.
|
|
|
|
|
* tui-disasm.c (tui_get_begin_asm_address): Update.
|
|
|
|
|
* value.c (value_static_field): Update.
|
|
|
|
|
|
2013-08-15 14:44:43 +00:00
|
|
|
|
2014-02-26 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* minsyms.c (prim_record_minimal_symbol_full): Use
|
|
|
|
|
SET_MSYMBOL_VALUE_ADDRESS.
|
|
|
|
|
* objfiles.c (objfile_relocate1): Use SET_MSYMBOL_VALUE_ADDRESS.
|
|
|
|
|
* sh64-tdep.c (sh64_elf_make_msymbol_special): Use
|
|
|
|
|
SET_MSYMBOL_VALUE_ADDRESS.
|
|
|
|
|
* symtab.h (MSYMBOL_VALUE_ADDRESS): Expand to an rvalue.
|
|
|
|
|
(SET_MSYMBOL_VALUE_ADDRESS): New macro.
|
|
|
|
|
|
change minsym representation
In a later patch we're going to change the minimal symbol address
calculation to apply section offsets at the point of use. To make it
simpler to catch potential problem spots, this patch changes the
representation of minimal symbols and introduces new
minimal-symbol-specific variants of the various accessors. This is
necessary because it would be excessively ambitious to try to convert
all the symbol types at once.
The core of this change is just renaming a field in minimal_symbol;
the rest is just a fairly mechanical rewording.
2014-02-26 Tom Tromey <tromey@redhat.com>
* symtab.h (struct minimal_symbol) <mginfo>: Rename from ginfo.
(MSYMBOL_VALUE, MSYMBOL_VALUE_ADDRESS, MSYMBOL_VALUE_BYTES)
(MSYMBOL_BLOCK_VALUE, MSYMBOL_VALUE_CHAIN, MSYMBOL_LANGUAGE)
(MSYMBOL_SECTION, MSYMBOL_OBJ_SECTION, MSYMBOL_NATURAL_NAME)
(MSYMBOL_LINKAGE_NAME, MSYMBOL_PRINT_NAME, MSYMBOL_DEMANGLED_NAME)
(MSYMBOL_SET_LANGUAGE, MSYMBOL_SEARCH_NAME)
(MSYMBOL_MATCHES_SEARCH_NAME, MSYMBOL_SET_NAMES): New macros.
* ada-lang.c (ada_main_name): Update.
(ada_lookup_simple_minsym): Update.
(ada_make_symbol_completion_list): Update.
(ada_add_standard_exceptions): Update.
* ada-tasks.c (read_atcb, ada_tasks_inferior_data_sniffer): Update.
* aix-thread.c (pdc_symbol_addrs, pd_enable): Update.
* amd64-windows-tdep.c (amd64_skip_main_prologue): Update.
* arm-tdep.c (skip_prologue_function): Update.
(arm_skip_stack_protector, arm_skip_stub): Update.
* arm-wince-tdep.c (arm_pe_skip_trampoline_code): Update.
(arm_wince_skip_main_prologue): Update.
* auxv.c (ld_so_xfer_auxv): Update.
* avr-tdep.c (avr_scan_prologue): Update.
* ax-gdb.c (gen_var_ref): Update.
* block.c (call_site_for_pc): Update.
* blockframe.c (get_pc_function_start): Update.
(find_pc_partial_function_gnu_ifunc): Update.
* breakpoint.c (create_overlay_event_breakpoint): Update.
(create_longjmp_master_breakpoint): Update.
(create_std_terminate_master_breakpoint): Update.
(create_exception_master_breakpoint): Update.
(resolve_sal_pc): Update.
* bsd-uthread.c (bsd_uthread_lookup_address): Update.
* btrace.c (ftrace_print_function_name, ftrace_function_switched):
Update.
* c-valprint.c (c_val_print): Update.
* coff-pe-read.c (add_pe_forwarded_sym): Update.
* coffread.c (coff_symfile_read): Update.
* common/agent.c (agent_look_up_symbols): Update.
* dbxread.c (find_stab_function_addr): Update.
(end_psymtab): Update.
* dwarf2loc.c (call_site_to_target_addr): Update.
(func_verify_no_selftailcall): Update.
(tailcall_dump): Update.
(call_site_find_chain_1): Update.
(dwarf_expr_reg_to_entry_parameter): Update.
* elfread.c (elf_gnu_ifunc_record_cache): Update.
(elf_gnu_ifunc_resolve_by_got): Update.
* f-valprint.c (info_common_command): Update.
* findvar.c (read_var_value): Update.
* frame.c (get_prev_frame_1): Update.
(inside_main_func): Update.
* frv-tdep.c (frv_skip_main_prologue): Update.
(frv_frame_this_id): Update.
* glibc-tdep.c (glibc_skip_solib_resolver): Update.
* gnu-v2-abi.c (gnuv2_value_rtti_type): Update.
* gnu-v3-abi.c (gnuv3_rtti_type): Update.
(gnuv3_skip_trampoline): Update.
* hppa-hpux-tdep.c (hppa32_hpux_in_solib_call_trampoline): Update.
(hppa64_hpux_in_solib_call_trampoline): Update.
(hppa_hpux_skip_trampoline_code): Update.
(hppa64_hpux_search_dummy_call_sequence): Update.
(hppa_hpux_find_import_stub_for_addr): Update.
(hppa_hpux_find_dummy_bpaddr): Update.
* hppa-tdep.c (hppa_symbol_address)
(hppa_lookup_stub_minimal_symbol): Update.
* i386-tdep.c (i386_skip_main_prologue): Update.
(i386_pe_skip_trampoline_code): Update.
* ia64-tdep.c (ia64_convert_from_func_ptr_addr): Update.
* infcall.c (get_function_name): Update.
* infcmd.c (until_next_command): Update.
* jit.c (jit_breakpoint_re_set_internal): Update.
(jit_inferior_init): Update.
* linespec.c (minsym_found): Update.
(add_minsym): Update.
* linux-fork.c (info_checkpoints_command): Update.
* linux-nat.c (get_signo): Update.
* linux-thread-db.c (inferior_has_bug): Update.
* m32c-tdep.c (m32c_return_value): Update.
(m32c_m16c_address_to_pointer): Update.
(m32c_m16c_pointer_to_address): Update.
* m32r-tdep.c (m32r_frame_this_id): Update.
* m68hc11-tdep.c (m68hc11_get_register_info): Update.
* machoread.c (macho_resolve_oso_sym_with_minsym): Update.
* maint.c (maintenance_translate_address): Update.
* minsyms.c (add_minsym_to_hash_table): Update.
(add_minsym_to_demangled_hash_table): Update.
(msymbol_objfile): Update.
(lookup_minimal_symbol): Update.
(iterate_over_minimal_symbols): Update.
(lookup_minimal_symbol_text): Update.
(lookup_minimal_symbol_by_pc_name): Update.
(lookup_minimal_symbol_solib_trampoline): Update.
(lookup_minimal_symbol_by_pc_section_1): Update.
(lookup_minimal_symbol_and_objfile): Update.
(prim_record_minimal_symbol_full): Update.
(compare_minimal_symbols): Update.
(compact_minimal_symbols): Update.
(build_minimal_symbol_hash_tables): Update.
(install_minimal_symbols): Update.
(terminate_minimal_symbol_table): Update.
(find_solib_trampoline_target): Update.
(minimal_symbol_upper_bound): Update.
* mips-linux-tdep.c (mips_linux_skip_resolver): Update.
* mips-tdep.c (mips_stub_frame_sniffer): Update.
(mips_skip_pic_trampoline_code): Update.
* msp430-tdep.c (msp430_skip_trampoline_code): Update.
* objc-lang.c (selectors_info): Update.
(classes_info): Update.
(find_methods): Update.
(find_imps): Update.
(find_objc_msgsend): Update.
* objfiles.c (objfile_relocate1): Update.
* objfiles.h (ALL_OBJFILE_MSYMBOLS): Update.
* obsd-tdep.c (obsd_skip_solib_resolver): Update.
* p-valprint.c (pascal_val_print): Update.
* parse.c (write_exp_msymbol): Update.
* ppc-linux-tdep.c (powerpc_linux_in_dynsym_resolve_code)
(ppc_linux_spe_context_lookup, ppc_elfv2_skip_entrypoint): Update.
* ppc-sysv-tdep.c (convert_code_addr_to_desc_addr): Update.
* printcmd.c (build_address_symbolic): Update.
(sym_info): Update.
(address_info): Update.
* proc-service.c (ps_pglobal_lookup): Update.
* psymtab.c (find_pc_sect_psymtab_closer): Update.
(find_pc_sect_psymtab): Update.
* python/py-framefilter.c (py_print_frame): Update.
* ravenscar-thread.c (get_running_thread_id): Update.
* record-btrace.c (btrace_call_history, btrace_get_bfun_name):
Update.
* remote.c (remote_check_symbols): Update.
* rs6000-tdep.c (rs6000_skip_main_prologue): Update.
(rs6000_skip_trampoline_code): Update.
* sh64-tdep.c (sh64_elf_make_msymbol_special): Update.
* sol2-tdep.c (sol2_skip_solib_resolver): Update.
* solib-dsbt.c (lm_base): Update.
* solib-frv.c (lm_base): Update.
(main_got): Update.
* solib-irix.c (locate_base): Update.
* solib-som.c (som_solib_create_inferior_hook): Update.
(som_solib_desire_dynamic_linker_symbols): Update.
(link_map_start): Update.
* solib-spu.c (spu_enable_break): Update.
(ocl_enable_break): Update.
* solib-svr4.c (elf_locate_base): Update.
(enable_break): Update.
* spu-tdep.c (spu_get_overlay_table): Update.
(spu_catch_start): Update.
(flush_ea_cache): Update.
* stabsread.c (define_symbol): Update.
(scan_file_globals): Update.
* stack.c (find_frame_funname): Update.
(frame_info): Update.
* symfile.c (simple_read_overlay_table): Update.
(simple_overlay_update): Update.
* symmisc.c (dump_msymbols): Update.
* symtab.c (fixup_section): Update.
(find_pc_sect_line): Update.
(skip_prologue_sal): Update.
(search_symbols): Update.
(print_msymbol_info): Update.
(rbreak_command): Update.
(MCOMPLETION_LIST_ADD_SYMBOL): New macro.
(completion_list_objc_symbol): Update.
(default_make_symbol_completion_list_break_on): Update.
* tracepoint.c (scope_info): Update.
* tui/tui-disasm.c (tui_find_disassembly_address): Update.
(tui_get_begin_asm_address): Update.
* valops.c (find_function_in_inferior): Update.
* value.c (value_static_field): Update.
(value_fn_field): Update.
2013-08-15 14:43:43 +00:00
|
|
|
|
2014-02-26 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* symtab.h (struct minimal_symbol) <mginfo>: Rename from ginfo.
|
|
|
|
|
(MSYMBOL_VALUE, MSYMBOL_VALUE_ADDRESS, MSYMBOL_VALUE_BYTES)
|
|
|
|
|
(MSYMBOL_BLOCK_VALUE, MSYMBOL_VALUE_CHAIN, MSYMBOL_LANGUAGE)
|
|
|
|
|
(MSYMBOL_SECTION, MSYMBOL_OBJ_SECTION, MSYMBOL_NATURAL_NAME)
|
|
|
|
|
(MSYMBOL_LINKAGE_NAME, MSYMBOL_PRINT_NAME, MSYMBOL_DEMANGLED_NAME)
|
|
|
|
|
(MSYMBOL_SET_LANGUAGE, MSYMBOL_SEARCH_NAME)
|
|
|
|
|
(MSYMBOL_MATCHES_SEARCH_NAME, MSYMBOL_SET_NAMES): New macros.
|
|
|
|
|
* ada-lang.c (ada_main_name): Update.
|
|
|
|
|
(ada_lookup_simple_minsym): Update.
|
|
|
|
|
(ada_make_symbol_completion_list): Update.
|
|
|
|
|
(ada_add_standard_exceptions): Update.
|
|
|
|
|
* ada-tasks.c (read_atcb, ada_tasks_inferior_data_sniffer): Update.
|
|
|
|
|
* aix-thread.c (pdc_symbol_addrs, pd_enable): Update.
|
|
|
|
|
* amd64-windows-tdep.c (amd64_skip_main_prologue): Update.
|
|
|
|
|
* arm-tdep.c (skip_prologue_function): Update.
|
|
|
|
|
(arm_skip_stack_protector, arm_skip_stub): Update.
|
|
|
|
|
* arm-wince-tdep.c (arm_pe_skip_trampoline_code): Update.
|
|
|
|
|
(arm_wince_skip_main_prologue): Update.
|
|
|
|
|
* auxv.c (ld_so_xfer_auxv): Update.
|
|
|
|
|
* avr-tdep.c (avr_scan_prologue): Update.
|
|
|
|
|
* ax-gdb.c (gen_var_ref): Update.
|
|
|
|
|
* block.c (call_site_for_pc): Update.
|
|
|
|
|
* blockframe.c (get_pc_function_start): Update.
|
|
|
|
|
(find_pc_partial_function_gnu_ifunc): Update.
|
|
|
|
|
* breakpoint.c (create_overlay_event_breakpoint): Update.
|
|
|
|
|
(create_longjmp_master_breakpoint): Update.
|
|
|
|
|
(create_std_terminate_master_breakpoint): Update.
|
|
|
|
|
(create_exception_master_breakpoint): Update.
|
|
|
|
|
(resolve_sal_pc): Update.
|
|
|
|
|
* bsd-uthread.c (bsd_uthread_lookup_address): Update.
|
|
|
|
|
* btrace.c (ftrace_print_function_name, ftrace_function_switched):
|
|
|
|
|
Update.
|
|
|
|
|
* c-valprint.c (c_val_print): Update.
|
|
|
|
|
* coff-pe-read.c (add_pe_forwarded_sym): Update.
|
|
|
|
|
* coffread.c (coff_symfile_read): Update.
|
|
|
|
|
* common/agent.c (agent_look_up_symbols): Update.
|
|
|
|
|
* dbxread.c (find_stab_function_addr): Update.
|
|
|
|
|
(end_psymtab): Update.
|
|
|
|
|
* dwarf2loc.c (call_site_to_target_addr): Update.
|
|
|
|
|
(func_verify_no_selftailcall): Update.
|
|
|
|
|
(tailcall_dump): Update.
|
|
|
|
|
(call_site_find_chain_1): Update.
|
|
|
|
|
(dwarf_expr_reg_to_entry_parameter): Update.
|
|
|
|
|
* elfread.c (elf_gnu_ifunc_record_cache): Update.
|
|
|
|
|
(elf_gnu_ifunc_resolve_by_got): Update.
|
|
|
|
|
* f-valprint.c (info_common_command): Update.
|
|
|
|
|
* findvar.c (read_var_value): Update.
|
|
|
|
|
* frame.c (get_prev_frame_1): Update.
|
|
|
|
|
(inside_main_func): Update.
|
|
|
|
|
* frv-tdep.c (frv_skip_main_prologue): Update.
|
|
|
|
|
(frv_frame_this_id): Update.
|
|
|
|
|
* glibc-tdep.c (glibc_skip_solib_resolver): Update.
|
|
|
|
|
* gnu-v2-abi.c (gnuv2_value_rtti_type): Update.
|
|
|
|
|
* gnu-v3-abi.c (gnuv3_rtti_type): Update.
|
|
|
|
|
(gnuv3_skip_trampoline): Update.
|
|
|
|
|
* hppa-hpux-tdep.c (hppa32_hpux_in_solib_call_trampoline): Update.
|
|
|
|
|
(hppa64_hpux_in_solib_call_trampoline): Update.
|
|
|
|
|
(hppa_hpux_skip_trampoline_code): Update.
|
|
|
|
|
(hppa64_hpux_search_dummy_call_sequence): Update.
|
|
|
|
|
(hppa_hpux_find_import_stub_for_addr): Update.
|
|
|
|
|
(hppa_hpux_find_dummy_bpaddr): Update.
|
|
|
|
|
* hppa-tdep.c (hppa_symbol_address)
|
|
|
|
|
(hppa_lookup_stub_minimal_symbol): Update.
|
|
|
|
|
* i386-tdep.c (i386_skip_main_prologue): Update.
|
|
|
|
|
(i386_pe_skip_trampoline_code): Update.
|
|
|
|
|
* ia64-tdep.c (ia64_convert_from_func_ptr_addr): Update.
|
|
|
|
|
* infcall.c (get_function_name): Update.
|
|
|
|
|
* infcmd.c (until_next_command): Update.
|
|
|
|
|
* jit.c (jit_breakpoint_re_set_internal): Update.
|
|
|
|
|
(jit_inferior_init): Update.
|
|
|
|
|
* linespec.c (minsym_found): Update.
|
|
|
|
|
(add_minsym): Update.
|
|
|
|
|
* linux-fork.c (info_checkpoints_command): Update.
|
|
|
|
|
* linux-nat.c (get_signo): Update.
|
|
|
|
|
* linux-thread-db.c (inferior_has_bug): Update.
|
|
|
|
|
* m32c-tdep.c (m32c_return_value): Update.
|
|
|
|
|
(m32c_m16c_address_to_pointer): Update.
|
|
|
|
|
(m32c_m16c_pointer_to_address): Update.
|
|
|
|
|
* m32r-tdep.c (m32r_frame_this_id): Update.
|
|
|
|
|
* m68hc11-tdep.c (m68hc11_get_register_info): Update.
|
|
|
|
|
* machoread.c (macho_resolve_oso_sym_with_minsym): Update.
|
|
|
|
|
* maint.c (maintenance_translate_address): Update.
|
|
|
|
|
* minsyms.c (add_minsym_to_hash_table): Update.
|
|
|
|
|
(add_minsym_to_demangled_hash_table): Update.
|
|
|
|
|
(msymbol_objfile): Update.
|
|
|
|
|
(lookup_minimal_symbol): Update.
|
|
|
|
|
(iterate_over_minimal_symbols): Update.
|
|
|
|
|
(lookup_minimal_symbol_text): Update.
|
|
|
|
|
(lookup_minimal_symbol_by_pc_name): Update.
|
|
|
|
|
(lookup_minimal_symbol_solib_trampoline): Update.
|
|
|
|
|
(lookup_minimal_symbol_by_pc_section_1): Update.
|
|
|
|
|
(lookup_minimal_symbol_and_objfile): Update.
|
|
|
|
|
(prim_record_minimal_symbol_full): Update.
|
|
|
|
|
(compare_minimal_symbols): Update.
|
|
|
|
|
(compact_minimal_symbols): Update.
|
|
|
|
|
(build_minimal_symbol_hash_tables): Update.
|
|
|
|
|
(install_minimal_symbols): Update.
|
|
|
|
|
(terminate_minimal_symbol_table): Update.
|
|
|
|
|
(find_solib_trampoline_target): Update.
|
|
|
|
|
(minimal_symbol_upper_bound): Update.
|
|
|
|
|
* mips-linux-tdep.c (mips_linux_skip_resolver): Update.
|
|
|
|
|
* mips-tdep.c (mips_stub_frame_sniffer): Update.
|
|
|
|
|
(mips_skip_pic_trampoline_code): Update.
|
|
|
|
|
* msp430-tdep.c (msp430_skip_trampoline_code): Update.
|
|
|
|
|
* objc-lang.c (selectors_info): Update.
|
|
|
|
|
(classes_info): Update.
|
|
|
|
|
(find_methods): Update.
|
|
|
|
|
(find_imps): Update.
|
|
|
|
|
(find_objc_msgsend): Update.
|
|
|
|
|
* objfiles.c (objfile_relocate1): Update.
|
|
|
|
|
* objfiles.h (ALL_OBJFILE_MSYMBOLS): Update.
|
|
|
|
|
* obsd-tdep.c (obsd_skip_solib_resolver): Update.
|
|
|
|
|
* p-valprint.c (pascal_val_print): Update.
|
|
|
|
|
* parse.c (write_exp_msymbol): Update.
|
|
|
|
|
* ppc-linux-tdep.c (powerpc_linux_in_dynsym_resolve_code)
|
|
|
|
|
(ppc_linux_spe_context_lookup, ppc_elfv2_skip_entrypoint): Update.
|
|
|
|
|
* ppc-sysv-tdep.c (convert_code_addr_to_desc_addr): Update.
|
|
|
|
|
* printcmd.c (build_address_symbolic): Update.
|
|
|
|
|
(sym_info): Update.
|
|
|
|
|
(address_info): Update.
|
|
|
|
|
* proc-service.c (ps_pglobal_lookup): Update.
|
|
|
|
|
* psymtab.c (find_pc_sect_psymtab_closer): Update.
|
|
|
|
|
(find_pc_sect_psymtab): Update.
|
|
|
|
|
* python/py-framefilter.c (py_print_frame): Update.
|
|
|
|
|
* ravenscar-thread.c (get_running_thread_id): Update.
|
|
|
|
|
* record-btrace.c (btrace_call_history, btrace_get_bfun_name):
|
|
|
|
|
Update.
|
|
|
|
|
* remote.c (remote_check_symbols): Update.
|
|
|
|
|
* rs6000-tdep.c (rs6000_skip_main_prologue): Update.
|
|
|
|
|
(rs6000_skip_trampoline_code): Update.
|
|
|
|
|
* sh64-tdep.c (sh64_elf_make_msymbol_special): Update.
|
|
|
|
|
* sol2-tdep.c (sol2_skip_solib_resolver): Update.
|
|
|
|
|
* solib-dsbt.c (lm_base): Update.
|
|
|
|
|
* solib-frv.c (lm_base): Update.
|
|
|
|
|
(main_got): Update.
|
|
|
|
|
* solib-irix.c (locate_base): Update.
|
|
|
|
|
* solib-som.c (som_solib_create_inferior_hook): Update.
|
|
|
|
|
(som_solib_desire_dynamic_linker_symbols): Update.
|
|
|
|
|
(link_map_start): Update.
|
|
|
|
|
* solib-spu.c (spu_enable_break): Update.
|
|
|
|
|
(ocl_enable_break): Update.
|
|
|
|
|
* solib-svr4.c (elf_locate_base): Update.
|
|
|
|
|
(enable_break): Update.
|
|
|
|
|
* spu-tdep.c (spu_get_overlay_table): Update.
|
|
|
|
|
(spu_catch_start): Update.
|
|
|
|
|
(flush_ea_cache): Update.
|
|
|
|
|
* stabsread.c (define_symbol): Update.
|
|
|
|
|
(scan_file_globals): Update.
|
|
|
|
|
* stack.c (find_frame_funname): Update.
|
|
|
|
|
(frame_info): Update.
|
|
|
|
|
* symfile.c (simple_read_overlay_table): Update.
|
|
|
|
|
(simple_overlay_update): Update.
|
|
|
|
|
* symmisc.c (dump_msymbols): Update.
|
|
|
|
|
* symtab.c (fixup_section): Update.
|
|
|
|
|
(find_pc_sect_line): Update.
|
|
|
|
|
(skip_prologue_sal): Update.
|
|
|
|
|
(search_symbols): Update.
|
|
|
|
|
(print_msymbol_info): Update.
|
|
|
|
|
(rbreak_command): Update.
|
|
|
|
|
(MCOMPLETION_LIST_ADD_SYMBOL): New macro.
|
|
|
|
|
(completion_list_objc_symbol): Update.
|
|
|
|
|
(default_make_symbol_completion_list_break_on): Update.
|
|
|
|
|
* tracepoint.c (scope_info): Update.
|
|
|
|
|
* tui/tui-disasm.c (tui_find_disassembly_address): Update.
|
|
|
|
|
(tui_get_begin_asm_address): Update.
|
|
|
|
|
* valops.c (find_function_in_inferior): Update.
|
|
|
|
|
* value.c (value_static_field): Update.
|
|
|
|
|
(value_fn_field): Update.
|
|
|
|
|
|
2013-08-19 13:58:44 +00:00
|
|
|
|
2014-02-26 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* blockframe.c (find_pc_partial_function_gnu_ifunc): Use
|
|
|
|
|
bound minimal symbols. Move code that knows about minsym
|
|
|
|
|
table layout...
|
|
|
|
|
* minsyms.c (minimal_symbol_upper_bound): ... here. New
|
|
|
|
|
function.
|
|
|
|
|
* minsyms.h (minimal_symbol_upper_bound): Declare.
|
|
|
|
|
* objc-lang.c (find_objc_msgsend): Use bound minimal symbols,
|
|
|
|
|
minimal_symbol_upper_bound.
|
|
|
|
|
|
2014-01-30 03:37:08 +00:00
|
|
|
|
2014-02-27 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* python/lib/gdb/printing.py (RegexpCollectionPrettyPrinter):
|
|
|
|
|
Use the type's name if its basic type does not have a tag.
|
|
|
|
|
|
2014-02-26 18:53:05 +00:00
|
|
|
|
2014-02-27 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* dwarf2read.c (read_subrange_type): Add comment.
|
|
|
|
|
|
DWARF: Set enum type "flag_enum" and "unsigned" flags at type creation.
Consider the following Ada code:
-- An array whose index is an enumeration type with 128 enumerators.
type Enum_T is (Enum_000, Enum_001, [...], Enum_128);
type Table is array (Enum_T) of Boolean;
When the compiler is configured to generate pure DWARF debugging info,
trying to print type Table's description yields:
ptype pck.table
type = array (enum_000 .. -128) of boolean
The expected output was:
ptype pck.table
type = array (enum_000 .. enum_128) of boolean
The DWARF debugging info for our array looks like this:
<1><44>: Abbrev Number: 5 (DW_TAG_array_type)
<45> DW_AT_name : pck__table
<50> DW_AT_type : <0x28>
<2><54>: Abbrev Number: 6 (DW_TAG_subrange_type)
<55> DW_AT_type : <0x5c>
<59> DW_AT_lower_bound : 0
<5a> DW_AT_upper_bound : 128
The array index type is, by construction with the DWARF standard,
a subrange of our enumeration type, defined as follow:
<2><5b>: Abbrev Number: 0
<1><5c>: Abbrev Number: 7 (DW_TAG_enumeration_type)
<5d> DW_AT_name : pck__enum_t
<69> DW_AT_byte_size : 1
<2><6b>: Abbrev Number: 8 (DW_TAG_enumerator)
<6c> DW_AT_name : pck__enum_000
<7a> DW_AT_const_value : 0
[etc]
Therefore, while processing these DIEs, the array index type ends
up being a TYPE_CODE_RANGE whose target type is our enumeration type.
But the problem is that we read the upper bound as a negative value
(-128), which is then used as is by the type printer to print the
array upper bound. This negative value explains the "-128" in the
output.
To understand why the range type's upper bound is read as a negative
value, one needs to look at how it is determined, in read_subrange_type:
orig_base_type = die_type (die, cu);
base_type = check_typedef (orig_base_type);
[... high is first correctly read as 128, but then ...]
if (!TYPE_UNSIGNED (base_type) && (high & negative_mask))
high |= negative_mask;
The negative_mask is applied, here, because BASE_TYPE->FLAG_UNSIGNED
is not set. And the reason for that is because the base_type was only
partially constructed during the call to die_type. While the enum
is constructed on the fly by read_enumeration_type, its flag_unsigned
flag is only set later on, while creating the symbols corresponding to
the enum type's enumerators (see process_enumeration_scope), after
we've already finished creating our range type - and therefore too
late.
My first naive attempt at fixing this problem consisted in extracting
the part in process_enumeration_scope which processes all enumerators,
to generate the associated symbols, but more importantly set the type's
various flags when necessary. However, this does not always work well,
because we're still in the subrange_type's scope, and it might be
different from the scope where the enumeration type is defined.
So, instead, what this patch does to fix the issue is to extract
from process_enumeration_scope the part that determines whether
the enumeration type should have the flag_unsigned and/or the
flag_flag_enum flags set. It turns out that, aside from the code
implementing the loop, this part is fairly independent of the symbol
creation. With that part extracted, we can then use it at the end
of our enumeration type creation, to produce a type which should now
no longer need any adjustment.
Once the enumeration type produced is correctly marked as unsigned,
the subrange type's upper bound is then correctly read as an unsigned
value, therefore giving us an upper bound of 128 instead of -128.
gdb/ChangeLog:
* dwarf2read.c (update_enumeration_type_from_children): New
function, mostly extracted from process_structure_scope.
(read_enumeration_type): Call update_enumeration_type_from_children.
(process_enumeration_scope): Do not set THIS_TYPE's flag_unsigned
and flag_flag_enum fields.
gdb/testsuite/ChangeLog:
* gdb.dwarf2/arr-subrange.c, gdb.dwarf2/arr-subrange.exp: New files.
2014-01-22 14:40:20 +00:00
|
|
|
|
2014-02-27 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* dwarf2read.c (update_enumeration_type_from_children): New
|
|
|
|
|
function, mostly extracted from process_structure_scope.
|
|
|
|
|
(read_enumeration_type): Call update_enumeration_type_from_children.
|
|
|
|
|
(process_enumeration_scope): Do not set THIS_TYPE's flag_unsigned
|
|
|
|
|
and flag_flag_enum fields.
|
|
|
|
|
|
2014-02-26 14:36:05 +00:00
|
|
|
|
2014-02-26 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* bsd-uthread.c (bsd_uthread_xfer_partial): Delete function.
|
|
|
|
|
(bsd_uthread_target): Don't install bsd_uthread_xfer_partial as
|
|
|
|
|
to_xfer_partial method.
|
|
|
|
|
|
2014-02-26 14:36:04 +00:00
|
|
|
|
2014-02-26 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.c (complete_target_initialization): Don't install
|
|
|
|
|
default_xfer_partial as to_xfer_partial hook.
|
|
|
|
|
(nomemory): Delete.
|
|
|
|
|
(update_current_target): Don't INHERIT nor de_fault
|
|
|
|
|
deprecated_xfer_memory. Delete de_fault macro.
|
|
|
|
|
(default_xfer_partial, deprecated_debug_xfer_memory): Delete.
|
|
|
|
|
(setup_target_debug): Don't install a deprecated_xfer_memory hook.
|
|
|
|
|
* target.h (struct target_ops) <deprecated_xfer_memory>: Delete
|
|
|
|
|
field.
|
|
|
|
|
|
2014-02-26 14:36:04 +00:00
|
|
|
|
2014-02-26 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* go32-nat.c (my_write_child): New function.
|
|
|
|
|
(go32_xfer_memory): Rewrite as to_xfer_partial helper.
|
|
|
|
|
(go32_xfer_partial): New function.
|
|
|
|
|
(init_go32_ops): Don't install a deprecated_xfer_memory hook.
|
|
|
|
|
Instead install a to_xfer_partial hook.
|
|
|
|
|
|
2014-02-26 14:36:04 +00:00
|
|
|
|
2014-02-26 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* nto-procfs.c (procfs_xfer_memory): Adjust interface as a
|
|
|
|
|
to_xfer_partial helper. Rewrite.
|
|
|
|
|
(procfs_xfer_partial): New function.
|
|
|
|
|
(init_procfs_ops): Don't install a deprecated_xfer_memory hook.
|
|
|
|
|
Install a to_xfer_partial hook.
|
|
|
|
|
|
2014-02-26 14:36:03 +00:00
|
|
|
|
2014-02-26 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* remote-m32r-sdi.c (send_data): Constify 'buf' parameter.
|
|
|
|
|
(m32r_xfer_memory): Adjust as a to_xfer_partial helper.
|
|
|
|
|
(m32r_xfer_partial): New function.
|
|
|
|
|
(init_m32r_ops): Don't install a deprecated_xfer_memory hook.
|
|
|
|
|
Install a to_xfer_partial hook.
|
|
|
|
|
|
2014-02-26 14:36:03 +00:00
|
|
|
|
2014-02-26 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* remote-mips.c (mips_xfer_memory): Adjust as to_xfer_partial
|
|
|
|
|
helper.
|
|
|
|
|
(mips_xfer_partial): New function.
|
|
|
|
|
(_initialize_remote_mips): Don't install a deprecated_xfer_memory
|
|
|
|
|
hook. Install a to_xfer_partial hook.
|
|
|
|
|
|
DWARF: Add array DW_AT_bit_stride and DW_AT_byte_stride support
Consider the following declarations in Ada...
type Item is range -32 .. 31;
for Item'Size use 6;
type Table is array (Natural range 0 .. 4) of Item;
pragma Pack (Table);
... which declare a packed array whose elements are 6 bits long.
The debugger currently does not notice that the array is packed,
and thus prints values of this type incorrectly. This can be seen
in the "ptype" output:
(gdb) ptype table
type = array (0 .. 4) of foo.item
Normally, the debugger should print:
(gdb) ptype table
type = array (0 .. 4) of foo.item <packed: 6-bit elements>
The debugging information for this array looks like this:
.uleb128 0xf # (DIE (0x15c) DW_TAG_array_type)
.long .LASF9 # DW_AT_name: "pck__table"
.byte 0x6 # DW_AT_bit_stride
.long 0x1a9 # DW_AT_type
.uleb128 0x10 # (DIE (0x16a) DW_TAG_subrange_type)
.long 0x3b # DW_AT_type
.byte 0 # DW_AT_lower_bound
.byte 0x4 # DW_AT_upper_bound
.byte 0 # end of children of DIE 0x15c
The interesting part is the DW_AT_bit_stride attribute, which tells
the size of the array elements is 6 bits, rather than the normal
element type's size.
This patch adds support for this attribute by first creating
gdbtypes.c::create_array_type_with_stride, which is an enhanced
version of create_array_type taking an extra parameter as the stride.
The old create_array_type can then be re-implemented very simply
by calling the new create_array_type_with_stride.
We can then use this new function from dwarf2read, to create
arrays with or without stride.
gdb/ChangeLog:
* gdbtypes.h (create_array_type_with_stride): Add declaration.
* gdbtypes.c (create_array_type_with_stride): New function,
renaming create_array_type, but with an added parameter
called "bit_stride".
(create_array_type): Re-implement using
create_array_type_with_stride.
* dwarf2read.c (read_array_type): Add support for DW_AT_byte_stride
and DW_AT_bit_stride attributes.
gdb/testsuite/ChangeLog:
* gdb.dwarf2/arr-stride.c: New file.
* gdb.dwarf2/arr-stride.exp: New file.
The test, relying purely on generating an assembly file, only
verifies the type description of our array. But I was also
able to verify manually that the debugger print values of these
types correctly as well (which was not the case prior to this
patch).
2014-01-29 13:39:56 +00:00
|
|
|
|
2014-02-26 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* gdbtypes.h (create_array_type_with_stride): Add declaration.
|
|
|
|
|
* gdbtypes.c (create_array_type_with_stride): New function,
|
|
|
|
|
renaming create_array_type, but with an added parameter
|
|
|
|
|
called "bit_stride".
|
|
|
|
|
(create_array_type): Re-implement using
|
|
|
|
|
create_array_type_with_stride.
|
|
|
|
|
* dwarf2read.c (read_array_type): Add support for DW_AT_byte_stride
|
|
|
|
|
and DW_AT_bit_stride attributes.
|
|
|
|
|
|
Multiple Ada task-specific breakpoints at the same address.
With the test changed as in the patch, against current mainline, we get:
(gdb) PASS: gdb.ada/tasks.exp: info tasks before inserting breakpoint
break break_me task 1
Breakpoint 2 at 0x4030b0: file /home/pedro/gdb/mygit/src/gdb/testsuite/gdb.ada/tasks/foo.adb, line 27.
(gdb) PASS: gdb.ada/tasks.exp: break break_me task 1
break break_me task 3
Note: breakpoint 2 also set at pc 0x4030b0.
Breakpoint 3 at 0x4030b0: file /home/pedro/gdb/mygit/src/gdb/testsuite/gdb.ada/tasks/foo.adb, line 27.
(gdb) PASS: gdb.ada/tasks.exp: break break_me task 3
continue
Continuing.
[Switching to Thread 0x7ffff7dc7700 (LWP 27133)]
Breakpoint 2, foo.break_me () at /home/pedro/gdb/mygit/src/gdb/testsuite/gdb.ada/tasks/foo.adb:27
27 null;
(gdb) FAIL: gdb.ada/tasks.exp: continue to breakpoint
info tasks
ID TID P-ID Pri State Name
1 63b010 48 Waiting on RV with 3 main_task
2 63bd80 1 48 Accept or Select Term task_list(1)
* 3 63f510 1 48 Accepting RV with 1 task_list(2)
4 642ca0 1 48 Accept or Select Term task_list(3)
(gdb) PASS: gdb.ada/tasks.exp: info tasks after hitting breakpoint
The breakpoint that caused a stop is breakpoint 3, but GDB end up
reporting (and running breakpoint commands of) "Breakpoint 2" instead.
The issue is that the bpstat_check_breakpoint_conditions logic of
"wrong thread" is missing the "wrong task" check. This is usually
harmless, because the thread hop code in infrun.c code that handles
wrong-task-hitting-breakpoint does check for task-specific breakpoints
(within breakpoint_thread_match):
/* Check if a regular breakpoint has been hit before checking
for a potential single step breakpoint. Otherwise, GDB will
not see this breakpoint hit when stepping onto breakpoints. */
if (regular_breakpoint_inserted_here_p (aspace, stop_pc))
{
if (!breakpoint_thread_match (aspace, stop_pc, ecs->ptid))
thread_hop_needed = 1;
}
IOW, usually, when one only has a task specific breakpoint at a given
address, things work correctly. Put another task-specific or
non-task-specific breakpoint there, and things break.
A patch that eliminates the special thread hop code in infrun.c is
what exposed this, as after that GDB solely relies on
bpstat_check_breakpoint_conditions to know whether the right or wrong
task hit a breakpoint. IOW, given the latent bug, Ada task-specific
breakpoints become non-task-specific, and that is caught by the
testsuite, as:
break break_me task 3
Breakpoint 2 at 0x4030b0: file /home/pedro/gdb/mygit/src/gdb/testsuite/gdb.ada/tasks/foo.adb, line 27.
(gdb) PASS: gdb.ada/tasks.exp: break break_me task 3
continue
Continuing.
[Switching to Thread 0x7ffff7fcb700 (LWP 17122)]
Breakpoint 2, foo.break_me () at /home/pedro/gdb/mygit/src/gdb/testsuite/gdb.ada/tasks/foo.adb:27
27 null;
(gdb) PASS: gdb.ada/tasks.exp: continue to breakpoint
info tasks
ID TID P-ID Pri State Name
1 63b010 48 Waiting on RV with 2 main_task
* 2 63bd80 1 48 Accepting RV with 1 task_list(1)
3 63f510 1 48 Accept or Select Term task_list(2)
4 642ca0 1 48 Accept or Select Term task_list(3)
(gdb) FAIL: gdb.ada/tasks.exp: info tasks after hitting breakpoint
It was after seeing this that I thought of how to expose the bug with
current mainline.
Tested on x86_64 Fedora 17.
gdb/
2014-02-26 Pedro Alves <palves@redhat.com>
* breakpoint.c (bpstat_check_breakpoint_conditions): Handle
task-specific breakpoints.
gdb/testsuite/
2014-02-26 Pedro Alves <palves@redhat.com>
* gdb.ada/tasks.exp: Set a task-specific breakpoint at break_me
that won't ever trigger. Make sure that GDB reports the correct
breakpoint that caused the stop.
2014-02-26 14:22:33 +00:00
|
|
|
|
2014-02-26 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* breakpoint.c (bpstat_check_breakpoint_conditions): Handle
|
|
|
|
|
task-specific breakpoints.
|
|
|
|
|
|
2014-02-26 01:45:50 +00:00
|
|
|
|
2014-02-25 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* ia64-linux-nat.c (ia64_linux_xfer_partial): Reimplement
|
|
|
|
|
handling of object == TARGET_OBJECT_UNWIND_TABLE.
|
|
|
|
|
|
2014-02-25 23:47:58 +00:00
|
|
|
|
2014-02-25 Stan Shebs <stan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* defs.h: Annotate comments for Doxygen.
|
|
|
|
|
|
2014-02-24 21:57:14 +00:00
|
|
|
|
2014-02-25 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (target_ignore): Don't declare.
|
|
|
|
|
* target.c (target_ignore): Remove.
|
|
|
|
|
|
2014-02-25 17:32:32 +00:00
|
|
|
|
2014-02-25 Jan Kratochvil <jan.kratochvil@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR gdb/16626
|
|
|
|
|
* auto-load.c (auto_load_objfile_script_1): Change filename to
|
|
|
|
|
debugfile.
|
|
|
|
|
|
2014-02-25 14:58:25 +00:00
|
|
|
|
2014-02-25 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* ia64-linux-nat.c (ia64_linux_xfer_partial): Add function
|
|
|
|
|
documentation. Adjust prototype to match the target_ops
|
|
|
|
|
to_xfer_partial method. Adjust implementation accordingly.
|
|
|
|
|
|
2014-02-25 15:55:42 +00:00
|
|
|
|
2014-02-25 Hui Zhu <hui@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* target.h (target_ops): Fix TARGET_DEFAULT_RETURN of
|
|
|
|
|
to_traceframe_info.
|
|
|
|
|
|
Use 16-bit integer type for rl78 register pairs.
This patch changes rl78-tdep.c so that a 16-bit type is used for
register pairs instead of a pointer type as was previously the case.
This will cause these register pairs to be displayed as integers
instead of as a data address with a 0xf0000 ORed in.
E.g. registers ax, bc, de, and hl might now be displayed like this:
(gdb) info registers ax bc de hl
ax 0x6 6
bc 0x0 0
de 0x10c3 4291
hl 0x108d 423
Whereas, before, they were displayed as follows:
(gdb) info registers ax bc de hl
ax 0xf0006 0xf0006
bc 0xf0000 0xf0000
de 0xf10c3 0xf10c3
hl 0xf108d 0xf108d
These pairs are 16 bit quantities and should be displayed as such.
This change also affects the way that the banked register pairs are
displayed. Within GDB, the banked register pairs are named bank0_rp0,
bank0_rp1, .., bank3_rp2, bank3_rp3.
However, these register pairs need to be used as addresses in DWARF
expressions. I have added 16 pseudo registers corresponding to banked
register pairs. These new pseudo registers are all hidden from the
user and have a pointer type. Values from these registers are
intended to be used in DWARF expressions. Therefore,
rl78_dwarf_reg_to_regnum() has been adjusted to return these new
pseudo register numbers.
I had a much simpler patch which only changed the types, but it showed
a number of regressions due to integer values from the banked register
pairs being used as part of an address expression. This current patch
shows no regressions and now displays values of register pairs
correctly.
* rl78-tdep.c ( RL78_BANK0_RP0_PTR_REGNUM, RL78_BANK0_RP1_PTR_REGNUM)
(RL78_BANK0_RP2_PTR_REGNUM, RL78_BANK0_RP3_PTR_REGNUM)
(RL78_BANK1_RP0_PTR_REGNUM, RL78_BANK1_RP1_PTR_REGNUM)
(RL78_BANK1_RP2_PTR_REGNUM, RL78_BANK1_RP3_PTR_REGNUM)
(RL78_BANK2_RP0_PTR_REGNUM, RL78_BANK2_RP1_PTR_REGNUM)
(RL78_BANK2_RP2_PTR_REGNUM, RL78_BANK2_RP3_PTR_REGNUM)
(RL78_BANK3_RP0_PTR_REGNUM, RL78_BANK3_RP1_PTR_REGNUM)
(RL78_BANK3_RP2_PTR_REGNUM, RL78_BANK3_RP3_PTR_REGNUM):
New constants.
(rl78_register_type): Use a data pointer type for SP and
new pseudo registers mentioned above. Use a 16 bit integer
type for all other register pairs.
(rl78_register_name, rl78_g10_register_name): Update for
new pseudo registers.
(rl78_pseudo_register_read): Likewise.
(rl78_pseudo_register_write): Likewise.
(rl78_dwarf_reg_to_regnum): Return register numbers representing
to the newly added pseudo registers.
2014-02-25 07:32:45 +00:00
|
|
|
|
2014-02-25 Kevin Buettner <kevinb@redhat.com>
|
|
|
|
|
|
2014-02-25 15:59:47 +00:00
|
|
|
|
* rl78-tdep.c (RL78_BANK0_RP0_PTR_REGNUM, RL78_BANK0_RP1_PTR_REGNUM)
|
Use 16-bit integer type for rl78 register pairs.
This patch changes rl78-tdep.c so that a 16-bit type is used for
register pairs instead of a pointer type as was previously the case.
This will cause these register pairs to be displayed as integers
instead of as a data address with a 0xf0000 ORed in.
E.g. registers ax, bc, de, and hl might now be displayed like this:
(gdb) info registers ax bc de hl
ax 0x6 6
bc 0x0 0
de 0x10c3 4291
hl 0x108d 423
Whereas, before, they were displayed as follows:
(gdb) info registers ax bc de hl
ax 0xf0006 0xf0006
bc 0xf0000 0xf0000
de 0xf10c3 0xf10c3
hl 0xf108d 0xf108d
These pairs are 16 bit quantities and should be displayed as such.
This change also affects the way that the banked register pairs are
displayed. Within GDB, the banked register pairs are named bank0_rp0,
bank0_rp1, .., bank3_rp2, bank3_rp3.
However, these register pairs need to be used as addresses in DWARF
expressions. I have added 16 pseudo registers corresponding to banked
register pairs. These new pseudo registers are all hidden from the
user and have a pointer type. Values from these registers are
intended to be used in DWARF expressions. Therefore,
rl78_dwarf_reg_to_regnum() has been adjusted to return these new
pseudo register numbers.
I had a much simpler patch which only changed the types, but it showed
a number of regressions due to integer values from the banked register
pairs being used as part of an address expression. This current patch
shows no regressions and now displays values of register pairs
correctly.
* rl78-tdep.c ( RL78_BANK0_RP0_PTR_REGNUM, RL78_BANK0_RP1_PTR_REGNUM)
(RL78_BANK0_RP2_PTR_REGNUM, RL78_BANK0_RP3_PTR_REGNUM)
(RL78_BANK1_RP0_PTR_REGNUM, RL78_BANK1_RP1_PTR_REGNUM)
(RL78_BANK1_RP2_PTR_REGNUM, RL78_BANK1_RP3_PTR_REGNUM)
(RL78_BANK2_RP0_PTR_REGNUM, RL78_BANK2_RP1_PTR_REGNUM)
(RL78_BANK2_RP2_PTR_REGNUM, RL78_BANK2_RP3_PTR_REGNUM)
(RL78_BANK3_RP0_PTR_REGNUM, RL78_BANK3_RP1_PTR_REGNUM)
(RL78_BANK3_RP2_PTR_REGNUM, RL78_BANK3_RP3_PTR_REGNUM):
New constants.
(rl78_register_type): Use a data pointer type for SP and
new pseudo registers mentioned above. Use a 16 bit integer
type for all other register pairs.
(rl78_register_name, rl78_g10_register_name): Update for
new pseudo registers.
(rl78_pseudo_register_read): Likewise.
(rl78_pseudo_register_write): Likewise.
(rl78_dwarf_reg_to_regnum): Return register numbers representing
to the newly added pseudo registers.
2014-02-25 07:32:45 +00:00
|
|
|
|
(RL78_BANK0_RP2_PTR_REGNUM, RL78_BANK0_RP3_PTR_REGNUM)
|
|
|
|
|
(RL78_BANK1_RP0_PTR_REGNUM, RL78_BANK1_RP1_PTR_REGNUM)
|
|
|
|
|
(RL78_BANK1_RP2_PTR_REGNUM, RL78_BANK1_RP3_PTR_REGNUM)
|
|
|
|
|
(RL78_BANK2_RP0_PTR_REGNUM, RL78_BANK2_RP1_PTR_REGNUM)
|
|
|
|
|
(RL78_BANK2_RP2_PTR_REGNUM, RL78_BANK2_RP3_PTR_REGNUM)
|
|
|
|
|
(RL78_BANK3_RP0_PTR_REGNUM, RL78_BANK3_RP1_PTR_REGNUM)
|
|
|
|
|
(RL78_BANK3_RP2_PTR_REGNUM, RL78_BANK3_RP3_PTR_REGNUM):
|
|
|
|
|
New constants.
|
|
|
|
|
(rl78_register_type): Use a data pointer type for SP and
|
|
|
|
|
new pseudo registers mentioned above. Use a 16 bit integer
|
|
|
|
|
type for all other register pairs.
|
|
|
|
|
(rl78_register_name, rl78_g10_register_name): Update for
|
|
|
|
|
new pseudo registers.
|
|
|
|
|
(rl78_pseudo_register_read): Likewise.
|
|
|
|
|
(rl78_pseudo_register_write): Likewise.
|
|
|
|
|
(rl78_dwarf_reg_to_regnum): Return register numbers representing
|
|
|
|
|
to the newly added pseudo registers.
|
|
|
|
|
|
2014-02-24 22:01:45 +00:00
|
|
|
|
2014-02-24 Doug Evans <dje@google.com>
|
|
|
|
|
|
|
|
|
|
* value.c (record_latest_value): Fix comment.
|
|
|
|
|
* printcmd.c (print_command_1): Remove code to handle -1 return from
|
|
|
|
|
record_latest_value.
|
|
|
|
|
|
2014-02-19 20:29:31 +00:00
|
|
|
|
2014-02-24 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* procfs.c (procfs_target): Don't install procfs_xfer_memory as
|
|
|
|
|
deprecated_xfer_memory hook.
|
|
|
|
|
(procfs_xfer_partial): Call procfs_xfer_memory instead
|
|
|
|
|
of the deprecated_xfer_memory target hook.
|
|
|
|
|
(procfs_xfer_memory): Adjust interface as a to_xfer_partial
|
|
|
|
|
helper.
|
|
|
|
|
|
Fix a GDB assert failure on windows
A GDB internal error is found on native mingw32 target.
(gdb) run
../../binutils-gdb/gdb/target.c:1483: internal-error:
target_xfer_partial: Assertion `*xfered_len > 0' failed.
A problem internal to GDB has been detected,
further debugging may prove unreliable.
Quit this debugging session? (y or n)
This error was introduced by the following snippet in commit
9b409511d07fe375284701af34909fb539029caf
> @@ -2536,27 +2538,30 @@ windows_xfer_shared_libraries (struct target_ops *ops,
> }
>
> obstack_free (&obstack, NULL);
> - return len;
> + *xfered_len = (ULONGEST) len;
> + return TARGET_XFER_OK;
> }
In the original code, len is returned, which could be 0, but after that
commit, only TARGET_XFER_OK is returned, which is wrong. If len is 0,
TARGET_XFER_EOF should be returned. (it is 0 in enum
target_xfer_status declaration).
gdb:
2014-02-24 Yuanhui Zhang <asmwarrior@gmail.com>
* windows-nat.c (windows_xfer_shared_libraries): Return
TARGET_XFER_EOF if LEN is zero to fix an assert failure when
requested object is TARGET_OBJECT_LIBRARIES.
2014-02-24 07:22:10 +00:00
|
|
|
|
2014-02-24 Yuanhui Zhang <asmwarrior@gmail.com>
|
|
|
|
|
|
|
|
|
|
* windows-nat.c (windows_xfer_shared_libraries): Return
|
|
|
|
|
TARGET_XFER_EOF if LEN is zero to fix an assert failure when
|
|
|
|
|
requested object is TARGET_OBJECT_LIBRARIES.
|
|
|
|
|
|
2014-02-23 06:34:29 +00:00
|
|
|
|
2014-02-24 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* target.h (enum target_xfer_status)
|
|
|
|
|
<TARGET_XFER_E_UNAVAILABLE>: Rename it to ...
|
|
|
|
|
<TARGET_XFER_UNAVAILABLE>: ... it with setting value 2
|
|
|
|
|
explicitly. New.
|
|
|
|
|
* corefile.c (memory_error_message): User updated.
|
|
|
|
|
* exec.c (section_table_read_available_memory): Likewise.
|
|
|
|
|
* record-btrace.c (record_btrace_xfer_partial): Likewise.
|
|
|
|
|
* target.c (target_xfer_status_to_string): Likewise.
|
|
|
|
|
(raw_memory_xfer_partial): Likewise.
|
|
|
|
|
(memory_xfer_partial_1, target_xfer_partial): Likewise.
|
|
|
|
|
* valops.c (read_value_memory): Likewise.
|
|
|
|
|
* exec.h: Update comments.
|
|
|
|
|
|
2014-02-23 06:27:17 +00:00
|
|
|
|
2014-02-24 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* target.c (target_xfer_status_to_string): Rename argument err
|
|
|
|
|
to status.
|
|
|
|
|
* target.h (target_xfer_status_to_string): Update declaration.
|
|
|
|
|
Replace target_xfer_error_to_string with
|
|
|
|
|
target_xfer_status_to_string in comment.
|
|
|
|
|
|
2014-02-24 04:03:05 +00:00
|
|
|
|
2014-02-24 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* mips-linux-nat.c (super_close): Update its type.
|
|
|
|
|
(mips_linux_close): Pass 'self' to super_close.
|
|
|
|
|
|
2014-02-23 04:24:08 +00:00
|
|
|
|
2014-02-24 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* target.h (TARGET_XFER_STATUS_ERROR_P): Remove.
|
|
|
|
|
* corefile.c (read_memory): Adjusted.
|
|
|
|
|
* target.c (target_write_with_progress): Adjusted.
|
|
|
|
|
|
2013-12-16 13:13:36 +00:00
|
|
|
|
2014-02-23 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
Revert two patches:
|
|
|
|
|
|
|
|
|
|
2013-10-25 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* remote.c (remote_traceframe_info): Return early if
|
|
|
|
|
traceframe is not selected.
|
|
|
|
|
|
|
|
|
|
2013-07-19 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* target.c (update_current_target): Change the default action
|
|
|
|
|
of 'to_traceframe_info' from tcomplain to return_zero.
|
|
|
|
|
* target.h (struct target_ops) <to_traceframe_info>: Add more
|
|
|
|
|
comments.
|
|
|
|
|
|
2013-11-05 01:50:21 +00:00
|
|
|
|
2014-02-23 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* valops.c (read_value_memory): Rewrite it. Call
|
|
|
|
|
target_xfer_partial in a loop.
|
|
|
|
|
* exec.h (section_table_available_memory): Remove declaration.
|
|
|
|
|
Move comments to ...
|
|
|
|
|
* exec.c (section_table_available_memory): ... here. Make it
|
|
|
|
|
static.
|
|
|
|
|
|
2014-02-11 04:20:05 +00:00
|
|
|
|
2014-02-23 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* exec.c (section_table_read_available_memory): New function.
|
|
|
|
|
* exec.h (section_table_read_available_memory): Declare.
|
|
|
|
|
* ctf.c (ctf_xfer_partial): Call
|
|
|
|
|
section_table_read_available_memory.
|
|
|
|
|
* tracefile-tfile.c (tfile_xfer_partial): Likewise.
|
|
|
|
|
|
2014-02-10 09:17:32 +00:00
|
|
|
|
2014-02-23 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* ctf.c (ctf_xfer_partial): Move code to ...
|
|
|
|
|
* exec.c (exec_read_partial_read_only): ... it. New function.
|
|
|
|
|
* tracefile-tfile.c (tfile_xfer_partial): Likewise.
|
|
|
|
|
* tracefile.c: Include "exec.h".
|
|
|
|
|
* exec.h (exec_read_partial_read_only): Declare.
|
|
|
|
|
|
2014-02-10 07:28:33 +00:00
|
|
|
|
2014-02-23 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* tracefile-tfile.c (tfile_has_all_memory): Remove.
|
|
|
|
|
(tfile_has_memory): Remove.
|
|
|
|
|
(init_tfile_ops): Don't set fields to_has_all_memory and
|
|
|
|
|
to_has_memory of tfile_ops.
|
|
|
|
|
* tracefile.c (tracefile_has_all_memory): New function.
|
|
|
|
|
(tracefile_has_memory): New function.
|
|
|
|
|
(init_tracefile_ops): Initialize fields to_has_all_memory and
|
|
|
|
|
to_has_memory of 'ops'.
|
|
|
|
|
|
2014-02-10 07:22:55 +00:00
|
|
|
|
2014-02-23 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* ctf.c (ctf_has_stack, ctf_has_registers): Remove.
|
|
|
|
|
(ctf_thread_alive, ctf_get_trace_status): Remove.
|
|
|
|
|
(init_ctf_ops): Don't set some fields of ctf_ops. Call
|
|
|
|
|
init_tracefile_ops.
|
|
|
|
|
* tracefile-tfile.c (tfile_get_trace_status): Remove.
|
|
|
|
|
(tfile_has_stack, tfile_has_registers): Remove.
|
|
|
|
|
(tfile_thread_alive): Remove.
|
|
|
|
|
(init_tfile_ops): Don't set some fields of tfile_ops. Call
|
|
|
|
|
init_tracefile_ops.
|
|
|
|
|
* tracefile.c (tracefile_has_stack): New function.
|
|
|
|
|
(tracefile_has_registers): New function.
|
|
|
|
|
(tracefile_thread_alive): New function.
|
|
|
|
|
(tracefile_get_trace_status): New function.
|
|
|
|
|
(init_tracefile_ops): New function.
|
|
|
|
|
* tracefile.h (init_tracefile_ops): Declare.
|
|
|
|
|
|
Move tfile target to tracefile-tfile.c
This patch moves tfile target related code from tracepoint.c to
tracefile-tfile.c.
gdb:
2014-02-23 Yao Qi <yao@codesourcery.com>
* tracepoint.c (TFILE_PID): Move it to tracefile-tfile.c.
(O_LARGEFILE): Likewise.
(tfile_ops): Likewise.
(TRACE_HEADER_SIZE): Likewise.
(trace_fd, trace_frames_offset, cur_offset): Likewise.
(cur_data_size): Likewise.
(tfile_read, tfile_open, tfile_interp_line): Likewise.
(tfile_close, tfile_files_info): Likewise.
(tfile_get_trace_status): Likewise.
(tfile_get_tracepoint_status): Likewise.
(tfile_get_traceframe_address): Likewise.
(tfile_trace_find, match_blocktype): Likewise.
(traceframe_walk_blocks, traceframe_find_block_type): Likewise.
(tfile_fetch_registers, tfile_xfer_partial): Likewise.
(tfile_get_trace_state_variable_value): Likewise.
(tfile_has_all_memory, tfile_has_memory): Likewise.
(tfile_has_stack, tfile_has_registers): Likewise.
(tfile_thread_alive, build_traceframe_info): Likewise.
(tfile_traceframe_info, init_tfile_ops): Likewise.
(_initialize_tracepoint): Don't call init_tfile_ops
and add_target_with_completer.
* tracefile-tfile.c: Include regcache.h, inferior.h, gdbthread.h,
exec.h, completer.h and filenames.h.
(_initialize_tracefile_tfile): New function.
2014-02-10 06:38:26 +00:00
|
|
|
|
2014-02-23 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* tracepoint.c (TFILE_PID): Move it to tracefile-tfile.c.
|
|
|
|
|
(O_LARGEFILE): Likewise.
|
|
|
|
|
(tfile_ops): Likewise.
|
|
|
|
|
(TRACE_HEADER_SIZE): Likewise.
|
|
|
|
|
(trace_fd, trace_frames_offset, cur_offset): Likewise.
|
|
|
|
|
(cur_data_size): Likewise.
|
|
|
|
|
(tfile_read, tfile_open, tfile_interp_line): Likewise.
|
|
|
|
|
(tfile_close, tfile_files_info): Likewise.
|
|
|
|
|
(tfile_get_trace_status): Likewise.
|
|
|
|
|
(tfile_get_tracepoint_status): Likewise.
|
|
|
|
|
(tfile_get_traceframe_address): Likewise.
|
|
|
|
|
(tfile_trace_find, match_blocktype): Likewise.
|
|
|
|
|
(traceframe_walk_blocks, traceframe_find_block_type): Likewise.
|
|
|
|
|
(tfile_fetch_registers, tfile_xfer_partial): Likewise.
|
|
|
|
|
(tfile_get_trace_state_variable_value): Likewise.
|
|
|
|
|
(tfile_has_all_memory, tfile_has_memory): Likewise.
|
|
|
|
|
(tfile_has_stack, tfile_has_registers): Likewise.
|
|
|
|
|
(tfile_thread_alive, build_traceframe_info): Likewise.
|
|
|
|
|
(tfile_traceframe_info, init_tfile_ops): Likewise.
|
|
|
|
|
(_initialize_tracepoint): Don't call init_tfile_ops
|
|
|
|
|
and add_target_with_completer.
|
|
|
|
|
* tracefile-tfile.c: Include regcache.h, inferior.h, gdbthread.h,
|
|
|
|
|
exec.h, completer.h and filenames.h.
|
|
|
|
|
(_initialize_tracefile_tfile): New function.
|
|
|
|
|
|
Move trace file writer out of tracepoint.c
This patch is a refactor which moves trace file writer related code
out of tracepoint.c, which has 6k LOC. It moves general trace file
writer to a new file tracefile.c and moves tfile specific writer to
tracefile-tfile.c.
gdb:
2014-02-23 Yao Qi <yao@codesourcery.com>
* Makefile.in (REMOTE_OBS): Append tracefile.o and
tracefile-tfile.o.
(HFILES_NO_SRCDIR): Add tracefile.h.
* ctf.c: Include "tracefile.h".
* tracefile.h: New file.
* tracefile.c: New file
* tracefile-tfile.c: New file.
* tracepoint.c: Include "tracefile.h".
(free_uploaded_tps, free_uploaded_tsvs): Remove declarations.
(stop_reason_names): Add const.
(trace_file_writer_xfree): Move it to tracefile.c.
(trace_save, trace_save_command, trace_save_tfile): Likewise.
(trace_save_ctf): Likewise.
(struct tfile_trace_file_writer): Move it to tracefile-tfile.c.
(tfile_target_save, tfile_dtor, tfile_start): Likewise.
(tfile_write_header, tfile_write_regblock_type): Likewise.
(tfile_write_status, tfile_write_uploaded_tsv): Likewise.
(tfile_write_uploaded_tp, tfile_write_definition_end): Likewise.
(tfile_write_raw_data, tfile_end): Likewise.
(tfile_trace_file_writer_new): Likewise.
(free_uploaded_tp): Make it extern.
(free_uploaded_tsv): Make it extern.
(_initialize_tracepoint): Move code to register command 'tsave'
to tracefile.c.
* tracepoint.h (stop_reason_names): Declare.
(struct trace_frame_write_ops): Move it to tracefile.h.
(struct trace_file_write_ops): Likewise.
(struct trace_file_writer): Likewise.
(free_uploaded_tsvs, free_uploaded_tps): Declare.
2014-02-10 05:31:12 +00:00
|
|
|
|
2014-02-23 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* Makefile.in (REMOTE_OBS): Append tracefile.o and
|
|
|
|
|
tracefile-tfile.o.
|
|
|
|
|
(HFILES_NO_SRCDIR): Add tracefile.h.
|
|
|
|
|
* ctf.c: Include "tracefile.h".
|
|
|
|
|
* tracefile.h: New file.
|
|
|
|
|
* tracefile.c: New file
|
|
|
|
|
* tracefile-tfile.c: New file.
|
|
|
|
|
* tracepoint.c: Include "tracefile.h".
|
|
|
|
|
(free_uploaded_tps, free_uploaded_tsvs): Remove declarations.
|
|
|
|
|
(stop_reason_names): Add const.
|
|
|
|
|
(trace_file_writer_xfree): Move it to tracefile.c.
|
|
|
|
|
(trace_save, trace_save_command, trace_save_tfile): Likewise.
|
|
|
|
|
(trace_save_ctf): Likewise.
|
|
|
|
|
(struct tfile_trace_file_writer): Move it to tracefile-tfile.c.
|
|
|
|
|
(tfile_target_save, tfile_dtor, tfile_start): Likewise.
|
|
|
|
|
(tfile_write_header, tfile_write_regblock_type): Likewise.
|
|
|
|
|
(tfile_write_status, tfile_write_uploaded_tsv): Likewise.
|
|
|
|
|
(tfile_write_uploaded_tp, tfile_write_definition_end): Likewise.
|
|
|
|
|
(tfile_write_raw_data, tfile_end): Likewise.
|
|
|
|
|
(tfile_trace_file_writer_new): Likewise.
|
|
|
|
|
(free_uploaded_tp): Make it extern.
|
|
|
|
|
(free_uploaded_tsv): Make it extern.
|
|
|
|
|
(_initialize_tracepoint): Move code to register command 'tsave'
|
|
|
|
|
to tracefile.c.
|
|
|
|
|
* tracepoint.h (stop_reason_names): Declare.
|
|
|
|
|
(struct trace_frame_write_ops): Move it to tracefile.h.
|
|
|
|
|
(struct trace_file_write_ops): Likewise.
|
|
|
|
|
(struct trace_file_writer): Likewise.
|
|
|
|
|
(free_uploaded_tsvs, free_uploaded_tps): Declare.
|
|
|
|
|
|
2014-02-21 17:39:40 +00:00
|
|
|
|
2014-02-21 Jan Kratochvil <jan.kratochvil@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR gdb/16594
|
|
|
|
|
* common/linux-osdata.c (linux_common_core_of_thread): Find the end of
|
|
|
|
|
process name.
|
|
|
|
|
(get_cores_used_by_process): New parameter num_cores, use it.
|
|
|
|
|
(linux_xfer_osdata_processes): Pass num_cores to it.
|
|
|
|
|
* linux-tdep.c (linux_info_proc, linux_fill_prpsinfo): Find the end of
|
|
|
|
|
process name.
|
|
|
|
|
|
2014-02-21 14:55:37 +00:00
|
|
|
|
2014-02-21 Andreas Arnez <arnez@vnet.linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
* target.c (memory_xfer_partial): Fix length arg in call to
|
|
|
|
|
breakpoint_xfer_memory.
|
|
|
|
|
|
2014-02-20 21:49:09 +00:00
|
|
|
|
2014-02-20 Sergio Durigan Junior <sergiodj@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR tdep/16397
|
|
|
|
|
* i386-tdep.c (i386_stap_parse_special_token_triplet): Check if a
|
|
|
|
|
number comes after the + or - signs. Adjust length of register
|
|
|
|
|
name to be extracted.
|
|
|
|
|
|
2014-02-20 21:05:32 +00:00
|
|
|
|
2014-02-20 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* varobj.h (c_varobj_ops, cplus_varobj_ops, java_varobj_ops)
|
|
|
|
|
(ada_varobj_ops): Mark "extern".
|
|
|
|
|
|
2014-02-20 19:14:23 +00:00
|
|
|
|
2014-02-20 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* dbxread.c (read_dbx_symtab): Remove last_o_file_start.
|
|
|
|
|
|
2014-02-20 17:27:12 +00:00
|
|
|
|
2014-02-20 Doug Evans <xdje42@gmail.com>
|
|
|
|
|
|
|
|
|
|
* guile/scm-gsmob.c (gdbscm_init_eqable_gsmob): New arg containing_scm.
|
|
|
|
|
All callers updated.
|
|
|
|
|
(gdbscm_fill_eqable_gsmob_ptr_slot): Delete arg containing_scm.
|
|
|
|
|
All callers updated.
|
|
|
|
|
* guile/guile-internal.h (gdbscm_init_eqable_gsmob): Update.
|
|
|
|
|
(gdbscm_fill_eqable_gsmob_ptr_slot): Update.
|
|
|
|
|
|
2014-02-20 17:13:53 +00:00
|
|
|
|
2014-02-20 lin zuojian <manjian2006@gmail.com>
|
|
|
|
|
Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
Doug Evans <xdje42@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR symtab/16581
|
|
|
|
|
* dwarf2read.c (struct die_info): New member in_process.
|
|
|
|
|
(reset_die_in_process): New function.
|
|
|
|
|
(process_die): Set it at the start, reset when returning.
|
|
|
|
|
(inherit_abstract_dies): Only call process_die if origin_child_die
|
|
|
|
|
not already being processed.
|
|
|
|
|
|
2014-02-20 16:18:47 +00:00
|
|
|
|
2014-02-20 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* windows-nat.c (handle_unload_dll): Add function documentation.
|
|
|
|
|
(do_initial_windows_stuff): Add comment explaining why we wait
|
|
|
|
|
until after inferior initialization has finished before
|
|
|
|
|
processing all DLLs.
|
|
|
|
|
|
2014-02-03 11:10:48 +00:00
|
|
|
|
2014-02-20 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* windows-nat.c (get_module_name): Delete.
|
|
|
|
|
(windows_get_exec_module_filename): New function, mostly
|
|
|
|
|
inspired from get_module_name.
|
|
|
|
|
(windows_pid_to_exec_file): Replace call to get_module_name
|
|
|
|
|
by call to windows_get_exec_module_filename.
|
|
|
|
|
|
2014-02-03 08:03:39 +00:00
|
|
|
|
2014-02-20 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* windows-nat.c (handle_load_dll): Rewrite this function's
|
|
|
|
|
introductory comment. Remove code using get_module_name
|
|
|
|
|
to get the DLL's name.
|
|
|
|
|
|
2014-02-03 07:32:40 +00:00
|
|
|
|
2014-02-20 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* windows-nat.c (get_windows_debug_event): Ignore
|
|
|
|
|
LOAD_DLL_DEBUG_EVENT and UNLOAD_DLL_DEBUG_EVENT
|
|
|
|
|
if windows_initialization_done == 0.
|
|
|
|
|
(windows_add_all_dlls): Renames windows_ensure_ntdll_loaded.
|
|
|
|
|
Adjust implementation to always load all DLLs.
|
|
|
|
|
(do_initial_windows_stuff): Replace call to
|
|
|
|
|
windows_ensure_ntdll_loaded by call to windows_add_all_dlls.
|
|
|
|
|
|
Deprecate windows-specific dll-symbols command and aliases
The "dll-symbols" command, specific to native Windows platforms,
gives the impression that the symbols were not loaded, first
because it completes silently, and second because the "info shared"
output does not get updated after the command completes:
(gdb) dll-symbols C:\WINDOWS\syswow64\rpcrt4.dll
(gdb) info shared
From To Syms Read Shared Object Library
[...]
0x77e51000 0x77ee2554 No C:\WINDOWS\system32\rpcrt4.dll
(we exected the "Syms Read" column to read "Yes").
As far as I can tell, the symbols actually do get loaded, but completely
independently from the solib framework, which explains the silent
loading and the fact that the "Syms Read" column does not get updated.
See windows-nat.c::safe_symbol_file_add_stub, which calls symbol_file_add
instead of calling solib_add.
But, aside from the fact that the "Syms Read" status does not get
updated, I also noticed that it does not take into account the DLL's
actual load address when loading its symbols. As a result, I believe
that we get it wrong if the DLL does not get loaded at the prefered
address.
Rather than trying to fix this command, there does not seem to be
a reason other than historical for having Windows-specific commands
which essentially re-implements the "sharedlibrary" command. The
command interface is slightly different (the latter takes a regexp
rather than a plain filename), but it should be just as easy to use
the "sharedlibrary" command, or its "share" alias, as usisng the
"dll-symbols" command. For instance:
(gdb) share rpcrt4.dll
Reading symbols from C:\WINDOWS\system32\rpcrt4.dll...(no debugging symbols found)...done.
Loaded symbols for C:\WINDOWS\system32\rpcrt4.dll
(gdb) info shared
From To Syms Read Shared Object Library
[...]
0x77e51000 0x77ee2554 Yes (*) C:\WINDOWS\system32\rpcrt4.dll
This patch therefore deprecates the "dll-symbols" command, as well
as its two aliases "add-shared-symbol-files" and "assf", with a view
of deleting them as soon as the 7.8 branch gets cut.
gdb/ChangeLog:
* windows-nat.c (_initialize_windows_nat): Deprecate the
"dll-symbols" command. Turn the "add-shared-symbol-files"
and "assf" aliases into commands, and deprecate them as well.
* NEWS: Add entry explaining that "dll-symbols" and its two
aliases are now deprecated.
gdb/doc/ChangeLog:
* gdb.texinfo (Files): Document "add-shared-symbol-files"
and "assf" as being deprecated.
(Cygwin Native): Likewise for "dll-symbols".
(Non-debug DLL Symbols): Remove reference to "dll-symbols"
as a way to force the loading of symbols from a DLL.
2014-01-31 09:22:53 +00:00
|
|
|
|
2014-02-20 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* windows-nat.c (_initialize_windows_nat): Deprecate the
|
|
|
|
|
"dll-symbols" command. Turn the "add-shared-symbol-files"
|
|
|
|
|
and "assf" aliases into commands, and deprecate them as well.
|
|
|
|
|
* NEWS: Add entry explaining that "dll-symbols" and its two
|
|
|
|
|
aliases are now deprecated.
|
|
|
|
|
|
2014-02-20 07:56:35 +00:00
|
|
|
|
2014-02-20 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* dec-thread.c (dec_thread_get_ada_task_ptid): Avoid unescaped
|
|
|
|
|
new-line in debug string. Remove trailing spaces.
|
|
|
|
|
|
2014-02-20 00:48:26 +00:00
|
|
|
|
2014-02-19 Stan Shebs <stan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* darwin-nat.c (darwin_xfer_partial): Fix return type.
|
|
|
|
|
|
2013-12-02 14:45:09 +00:00
|
|
|
|
2014-02-19 Siva Chandra Reddy <sivachandra@google.com>
|
|
|
|
|
|
|
|
|
|
* NEWS: Add entry for the new feature
|
|
|
|
|
* python/py-value.c (valpy_binop): Call value_x_binop for struct
|
|
|
|
|
and class values.
|
|
|
|
|
|
2014-02-19 21:38:12 +00:00
|
|
|
|
2014-02-19 Stan Shebs <stan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* MAINTAINERS: List Yao Qi as nios2 maintainer.
|
|
|
|
|
|
2014-02-19 18:25:41 +00:00
|
|
|
|
2014-02-19 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* common/ptid.h (struct ptid): Mention that process_stratum
|
|
|
|
|
targets should prefer ptid.lwp.
|
|
|
|
|
|
remote.c: Use the ptid.lwp field to store remote thread ids rather than ptid.tid.
From GDB's perspective, independently of how the target really
implements threads, gdb/remote sees all threads as if kernel/system
threads. A rationale along theses lines led to gdbserver storing
thread ids in ptid.lwp in all ports.
Because remote.c is currently using ptid.tid, we can't make gdbserver
and gdb share bits of remote-specific code that manipulates ptids
(e.g., write_ptid/read_ptid).
This patch thus makes remote.c use ptid.lwp instead of ptid.tid.
I believe that on the GDB side too, it's best that we standardize on
process_stratum targets using the ptid.lwp field to store thread ids
anyway. The idea being leave the ptid.tid field free for any
thread_stratum target that might want to sit on top.
Tested on x86_64 Fedora 17, w/ local gdbserver.
gdb/
2014-02-19 Pedro Alves <palves@redhat.com>
* remote.c (remote_thread_alive, write_ptid, read_ptid)
(read_ptid, remote_newthread_step, remote_threads_extra_info)
(remote_get_ada_task_ptid, append_resumption, remote_stop_ns)
(threadalive_test, remote_pid_to_str): Use the ptid.lwp field to
store remote thread ids rather than ptid.tid.
(_initialize_remote): Adjust.
2014-02-19 18:25:40 +00:00
|
|
|
|
2014-02-19 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* remote.c (remote_thread_alive, write_ptid, read_ptid)
|
|
|
|
|
(read_ptid, remote_newthread_step, remote_threads_extra_info)
|
|
|
|
|
(remote_get_ada_task_ptid, append_resumption, remote_stop_ns)
|
|
|
|
|
(threadalive_test, remote_pid_to_str): Use the ptid.lwp field to
|
|
|
|
|
store remote thread ids rather than ptid.tid.
|
|
|
|
|
(_initialize_remote): Adjust.
|
|
|
|
|
|
2014-01-16 20:00:07 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.c (target_get_unwinder): Rewrite.
|
|
|
|
|
(target_get_tailcall_unwinder): Rewrite.
|
|
|
|
|
* record-btrace.c (record_btrace_to_get_unwinder): New function.
|
|
|
|
|
(record_btrace_to_get_tailcall_unwinder): New function.
|
|
|
|
|
(init_record_btrace_ops): Update.
|
|
|
|
|
* target.h (struct target_ops) <to_get_unwinder,
|
|
|
|
|
to_get_tailcall_unwinder>: Now function pointers. Use
|
|
|
|
|
TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2014-01-16 18:46:23 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* nto-procfs.c (procfs_remove_hw_breakpoint): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
(init_procfs_ops): Correctly set to_remove_hw_breakpoint.
|
|
|
|
|
|
2014-01-16 18:39:32 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* record-btrace.c (record_btrace_decr_pc_after_break): Delegate
|
|
|
|
|
directly.
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.h (struct target_ops) <to_decr_pc_after_break>: Use
|
|
|
|
|
TARGET_DEFAULT_FUNC.
|
|
|
|
|
* target.c (default_target_decr_pc_after_break): Rename from
|
|
|
|
|
forward_target_decr_pc_after_break. Simplify.
|
|
|
|
|
(target_decr_pc_after_break): Rely on delegation.
|
|
|
|
|
|
2014-01-15 19:58:50 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.c (update_current_target): Do not INHERIT to_doc or
|
|
|
|
|
to_magic. Do not de_fault to_open or to_close.
|
|
|
|
|
|
2014-01-15 16:40:13 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* gcore.h (objfile_find_memory_regions): Declare.
|
|
|
|
|
* gcore.c (objfile_find_memory_regions): No longer static. Add
|
|
|
|
|
"self" argument.
|
|
|
|
|
(_initialize_gcore): Don't call exec_set_find_memory_regions.
|
|
|
|
|
* exec.c: Include gcore.h.
|
|
|
|
|
(exec_set_find_memory_regions): Remove.
|
|
|
|
|
(exec_find_memory_regions): Remove.
|
|
|
|
|
(exec_do_find_memory_regions): Remove.
|
|
|
|
|
(init_exec_ops): Update.
|
|
|
|
|
* defs.h (exec_set_find_memory_regions): Remove.
|
|
|
|
|
|
pass NULL to TARGET_DEFAULT_RETURN when appropriate
This changes instances of TARGET_DEFAULT_RETURN(0) to
TARGET_DEFAULT_RETURN(NULL) when appropriate. The use of "0" was a
relic from an earlier implementation of make-target-delegates; and I
didn't want to go back through the long patch series, fixing up
conflicts, just to change this small detail.
2014-02-19 Tom Tromey <tromey@redhat.com>
* target-delegates.c: Rebuild.
* target.h (struct target_ops) <to_extra_thread_info,
to_thread_name, to_pid_to_exec_file, to_get_section_table,
to_memory_map, to_read_description, to_traceframe_info>: Use NULL,
not 0, in TARGET_DEFAULT_RETURN.
2014-01-15 16:30:05 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.h (struct target_ops) <to_extra_thread_info,
|
|
|
|
|
to_thread_name, to_pid_to_exec_file, to_get_section_table,
|
|
|
|
|
to_memory_map, to_read_description, to_traceframe_info>: Use NULL,
|
|
|
|
|
not 0, in TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2014-01-13 19:16:41 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.c (complete_target_initialization): Remove casts. Use
|
|
|
|
|
return_zero_has_execution.
|
|
|
|
|
(return_zero): Add "ignore" argument.
|
|
|
|
|
(return_zero_has_execution): New function.
|
|
|
|
|
(init_dummy_target): Remove casts. Use
|
|
|
|
|
return_zero_has_execution.
|
|
|
|
|
|
2014-01-13 18:49:32 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.c (update_current_target): Update comments. Do not
|
|
|
|
|
INHERIT to_stratum.
|
|
|
|
|
|
2014-01-13 16:30:30 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* arm-linux-nat.c (arm_linux_read_description): Delegate when
|
|
|
|
|
needed.
|
|
|
|
|
* corelow.c (core_read_description): Delegate when needed.
|
|
|
|
|
* remote.c (remote_read_description): Delegate when needed.
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (target_read_description): Rewrite.
|
|
|
|
|
* target.h (struct target_ops) <to_read_description>: Update
|
|
|
|
|
comment. Use TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-20 19:19:37 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_can_run.
|
|
|
|
|
(find_default_run_target): Check against delegate_can_run.
|
|
|
|
|
* target.h (struct target_ops) <to_can_run>: Use
|
|
|
|
|
TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-20 17:30:13 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (target_disconnect): Unconditionally delegate.
|
|
|
|
|
* target.h (struct target_ops) <to_disconnect>: Use
|
|
|
|
|
TARGET_DEFAULT_NORETURN.
|
|
|
|
|
|
2013-12-19 15:21:20 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* record.c (record_stop): Unconditionally delegate.
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (target_stop_recording): Unconditionally delegate.
|
|
|
|
|
* target.h (struct target_ops) <to_stop_recording>: Use
|
|
|
|
|
TARGET_DEFAULT_IGNORE.
|
|
|
|
|
|
2013-12-19 15:19:41 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (target_enable_btrace): Unconditionally delegate.
|
|
|
|
|
* target.h (struct target_ops) <to_enable_btrace>: Use
|
|
|
|
|
TARGET_DEFAULT_NORETURN.
|
|
|
|
|
|
2013-12-19 15:19:02 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (target_read_btrace): Unconditionally delegate.
|
|
|
|
|
* target.h (struct target_ops) <to_read_btrace>: Use
|
|
|
|
|
TARGET_DEFAULT_NORETURN.
|
|
|
|
|
|
2013-12-19 15:18:04 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (target_teardown_btrace): Unconditionally delegate.
|
|
|
|
|
* target.h (struct target_ops) <to_teardown_btrace>: Use
|
|
|
|
|
TARGET_DEFAULT_NORETURN.
|
|
|
|
|
|
2013-12-19 15:17:16 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (target_disable_btrace): Unconditionally delegate.
|
|
|
|
|
* target.h (struct target_ops) <to_disable_btrace>: Use
|
|
|
|
|
TARGET_DEFAULT_NORETURN.
|
|
|
|
|
|
2013-12-19 15:12:26 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (default_search_memory): New function.
|
|
|
|
|
(simple_search_memory): Update comment.
|
|
|
|
|
(target_search_memory): Unconditionally delegate.
|
|
|
|
|
* target.h (struct target_ops) <to_search_memory>: Use
|
|
|
|
|
TARGET_DEFAULT_FUNC.
|
|
|
|
|
|
2013-12-19 14:56:20 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* auxv.c (default_auxv_parse): No longer static.
|
|
|
|
|
(target_auxv_parse): Unconditionally delegate.
|
|
|
|
|
* auxv.h (default_auxv_parse): Declare.
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c: Include auxv.h.
|
|
|
|
|
* target.h (struct target_ops) <to_auxv_parse>: Use
|
|
|
|
|
TARGET_DEFAULT_FUNC.
|
|
|
|
|
|
2013-12-19 14:47:11 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (target_memory_map): Unconditionally delegate.
|
|
|
|
|
* target.h (struct target_ops) <to_memory_map>: Use
|
|
|
|
|
TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-19 14:21:56 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (target_thread_alive): Unconditionally delegate.
|
|
|
|
|
* target.h (struct target_ops) <to_thread_alive>: Use
|
|
|
|
|
TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-19 03:26:34 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (target_save_record): Unconditionally delegate.
|
|
|
|
|
* target.h (struct target_ops) <to_save_record>: Use
|
|
|
|
|
TARGET_DEFAULT_NORETURN.
|
|
|
|
|
|
2013-12-19 03:25:47 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (target_delete_record): Unconditionally delegate.
|
|
|
|
|
* target.h (struct target_ops) <to_delete_record>: Use
|
|
|
|
|
TARGET_DEFAULT_NORETURN.
|
|
|
|
|
|
2013-12-19 03:25:01 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (target_record_is_replaying): Unconditionally
|
|
|
|
|
delegate.
|
|
|
|
|
* target.h (struct target_ops) <to_record_is_replaying>: Use
|
|
|
|
|
TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-19 03:24:04 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (target_goto_record_begin): Unconditionally delegate.
|
|
|
|
|
* target.h (struct target_ops) <to_goto_record_begin>: Use
|
|
|
|
|
TARGET_DEFAULT_NORETURN.
|
|
|
|
|
|
2013-12-19 03:23:23 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (target_goto_record_end): Unconditionally delegate.
|
|
|
|
|
* target.h (struct target_ops) <to_goto_record_end>: Use
|
|
|
|
|
TARGET_DEFAULT_NORETURN.
|
|
|
|
|
|
2013-12-19 03:22:36 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (target_goto_record): Unconditionally delegate.
|
|
|
|
|
* target.h (struct target_ops) <to_goto_record>: Use
|
|
|
|
|
TARGET_DEFAULT_NORETURN.
|
|
|
|
|
|
2013-12-19 03:18:49 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (target_insn_history): Unconditionally delegate.
|
|
|
|
|
* target.h (struct target_ops) <to_insn_history>: Use
|
|
|
|
|
TARGET_DEFAULT_NORETURN.
|
|
|
|
|
|
2013-12-19 03:16:56 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (target_insn_history_from): Unconditionally delegate.
|
|
|
|
|
* target.h (struct target_ops) <to_insn_history_from>: Use
|
|
|
|
|
TARGET_DEFAULT_NORETURN.
|
|
|
|
|
|
2013-12-19 03:15:44 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (target_insn_history_range): Unconditionally delegate.
|
|
|
|
|
* target.h (struct target_ops) <to_insn_history_range>: Use
|
|
|
|
|
TARGET_DEFAULT_NORETURN.
|
|
|
|
|
|
2013-12-19 03:13:40 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (target_call_history): Unconditionally delegate.
|
|
|
|
|
* target.h (struct target_ops) <to_call_history>: Use
|
|
|
|
|
TARGET_DEFAULT_NORETURN.
|
|
|
|
|
|
2013-12-19 03:11:49 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (target_call_history_from): Unconditionally delegate.
|
|
|
|
|
* target.h (struct target_ops) <to_call_history_from>: Use
|
|
|
|
|
TARGET_DEFAULT_NORETURN.
|
|
|
|
|
|
2013-12-19 03:10:20 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (target_call_history_range): Unconditionally delegate.
|
|
|
|
|
* target.h (struct target_ops) <to_call_history_range>: Use
|
|
|
|
|
TARGET_DEFAULT_NORETURN.
|
|
|
|
|
|
2013-12-18 21:55:44 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (target_verify_memory): Unconditionally delegate.
|
|
|
|
|
* target.h (struct target_ops) <to_verify_memory>: Use
|
|
|
|
|
TARGET_DEFAULT_NORETURN.
|
|
|
|
|
|
2013-12-18 21:55:06 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (target_core_of_thread): Unconditionally delegate.
|
|
|
|
|
* target.h (struct target_ops) <to_core_of_thread>: Use
|
|
|
|
|
TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-18 21:52:02 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (target_flash_done): Unconditionally delegate.
|
|
|
|
|
* target.h (struct target_ops) <to_flash_done>: Use
|
|
|
|
|
TARGET_DEFAULT_NORETURN.
|
|
|
|
|
|
2013-12-18 21:50:56 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (target_flash_erase): Unconditionally delegate.
|
|
|
|
|
* target.h (struct target_ops) <to_flash_erase>: Use
|
|
|
|
|
TARGET_DEFAULT_NORETURN.
|
|
|
|
|
|
2013-12-18 21:47:06 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (target_get_section_table): Unconditionally delegate.
|
|
|
|
|
* target.h (struct target_ops) <to_get_section_table>: Use
|
|
|
|
|
TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-18 21:46:03 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (target_pid_to_str): Unconditionally delegate.
|
|
|
|
|
(init_dummy_target): Don't initialize to_pid_to_str.
|
|
|
|
|
(default_pid_to_str): Rename from dummy_pid_to_str.
|
|
|
|
|
* target.h (struct target_ops) <to_pid_to_str>: Use
|
|
|
|
|
TARGET_DEFAULT_FUNC.
|
|
|
|
|
|
2013-12-18 21:44:20 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (target_find_new_threads): Unconditionally delegate.
|
|
|
|
|
* target.h (struct target_ops) <to_find_new_threads>: Use
|
|
|
|
|
TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-18 21:42:54 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (target_program_signals): Unconditionally delegate.
|
|
|
|
|
* target.h (struct target_ops) <to_program_signals>: Use
|
|
|
|
|
TARGET_DEFAULT_IGNORE.
|
|
|
|
|
|
2013-12-18 21:42:10 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (target_pass_signals): Unconditionally delegate.
|
|
|
|
|
* target.h (struct target_ops) <to_pass_signals>: Use
|
|
|
|
|
TARGET_DEFAULT_IGNORE.
|
|
|
|
|
|
2013-12-18 21:40:23 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (default_mourn_inferior): New function.
|
|
|
|
|
(target_mourn_inferior): Unconditionally delegate.
|
|
|
|
|
* target.h (struct target_ops) <to_mourn_inferior>: Use
|
|
|
|
|
TARGET_DEFAULT_FUNC.
|
|
|
|
|
|
2013-12-18 21:38:04 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (default_follow_fork): New function.
|
|
|
|
|
(target_follow_fork): Unconditionally delegate.
|
|
|
|
|
* target.h (struct target_ops) <to_follow_fork>: Use
|
|
|
|
|
TARGET_DEFAULT_FUNC.
|
|
|
|
|
|
2013-12-18 21:35:15 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (target_kill): Unconditionally delegate.
|
|
|
|
|
* target.h (struct target_ops) <to_kill>: Use
|
|
|
|
|
TARGET_DEFAULT_NORETURN.
|
|
|
|
|
|
2013-12-18 21:34:15 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (target_masked_watch_num_registers): Unconditionally
|
|
|
|
|
delegate.
|
|
|
|
|
* target.h (struct target_ops) <to_masked_watch_num_registers>:
|
|
|
|
|
Use TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-18 21:33:28 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (target_remove_mask_watchpoint): Unconditionally
|
|
|
|
|
delegate.
|
|
|
|
|
* target.h (struct target_ops) <to_remove_mask_watchpoint>: Use
|
|
|
|
|
TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-18 21:32:43 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (target_insert_mask_watchpoint): Unconditionally
|
|
|
|
|
delegate.
|
|
|
|
|
* target.h (struct target_ops) <to_insert_mask_watchpoint>: Use
|
|
|
|
|
TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-18 21:31:42 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (target_ranged_break_num_registers): Unconditionally
|
|
|
|
|
delegate.
|
|
|
|
|
* target.h (struct target_ops) <to_ranged_break_num_registers>:
|
|
|
|
|
Use TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-18 21:30:22 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (target_fetch_registers): Unconditionally delegate.
|
|
|
|
|
* target.h (struct target_ops) <to_fetch_registers>: Use
|
|
|
|
|
TARGET_DEFAULT_NORETURN.
|
|
|
|
|
|
2013-12-18 21:28:07 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_stop.
|
|
|
|
|
* target.h (struct target_ops) <to_stop>: Use
|
|
|
|
|
TARGET_DEFAULT_IGNORE.
|
|
|
|
|
|
2013-12-18 21:20:36 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_can_run_breakpoint_commands.
|
|
|
|
|
* target.h (struct target_ops) <to_can_run_breakpoint_commands>:
|
|
|
|
|
Use TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-18 21:20:06 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_supports_evaluation_of_breakpoint_conditions.
|
|
|
|
|
* target.h (struct target_ops)
|
|
|
|
|
<to_supports_evaluation_of_breakpoint_conditions>: Use
|
|
|
|
|
TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-18 21:19:33 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_augmented_libraries_svr4_read.
|
|
|
|
|
* target.h (struct target_ops) <to_augmented_libraries_svr4_read>:
|
|
|
|
|
Use TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-18 21:19:04 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_can_use_agent.
|
|
|
|
|
* target.h (struct target_ops) <to_can_use_agent>: Use
|
|
|
|
|
TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-18 21:18:35 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_use_agent.
|
|
|
|
|
* target.h (struct target_ops) <to_use_agent>: Use
|
|
|
|
|
TARGET_DEFAULT_NORETURN.
|
|
|
|
|
|
2013-12-18 21:18:10 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_traceframe_info.
|
|
|
|
|
(return_null): Remove.
|
|
|
|
|
* target.h (struct target_ops) <to_traceframe_info>: Use
|
|
|
|
|
TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-18 21:17:35 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_static_tracepoint_markers_by_strid.
|
|
|
|
|
* target.h (struct target_ops)
|
|
|
|
|
<to_static_tracepoint_markers_by_strid>: Use
|
|
|
|
|
TARGET_DEFAULT_NORETURN.
|
|
|
|
|
|
2013-12-18 21:16:51 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_static_tracepoint_marker_at.
|
|
|
|
|
* target.h (struct target_ops) <to_static_tracepoint_marker_at>:
|
|
|
|
|
Use TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-18 21:16:24 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_set_permissions.
|
|
|
|
|
* target.h (struct target_ops) <to_set_permissions>: Use
|
|
|
|
|
TARGET_DEFAULT_IGNORE.
|
|
|
|
|
|
2013-12-18 21:15:55 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_get_tib_address.
|
|
|
|
|
* target.h (struct target_ops) <to_get_tib_address>: Use
|
|
|
|
|
TARGET_DEFAULT_NORETURN.
|
|
|
|
|
|
2013-12-18 21:15:23 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_set_trace_notes.
|
|
|
|
|
* target.h (struct target_ops) <to_set_trace_notes>: Use
|
|
|
|
|
TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-18 21:14:58 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't initialize
|
|
|
|
|
to_set_trace_buffer_size.
|
|
|
|
|
* target.h (struct target_ops) <to_set_trace_buffer_size>: Use
|
|
|
|
|
TARGET_DEFAULT_IGNORE.
|
|
|
|
|
|
2013-12-18 21:13:09 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_set_circular_trace_buffer.
|
|
|
|
|
* target.h (struct target_ops) <to_set_circular_trace_buffer>: Use
|
|
|
|
|
TARGET_DEFAULT_IGNORE.
|
|
|
|
|
|
2013-12-18 21:12:29 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_set_disconnected_tracing.
|
|
|
|
|
* target.h (struct target_ops) <to_set_disconnected_tracing>: Use
|
|
|
|
|
TARGET_DEFAULT_IGNORE.
|
|
|
|
|
|
2013-12-18 21:11:53 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_get_min_fast_tracepoint_insn_len.
|
|
|
|
|
(return_minus_one): Remove.
|
|
|
|
|
* target.h (struct target_ops)
|
|
|
|
|
<to_get_min_fast_tracepoint_insn_len>: Use TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-18 21:11:12 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_get_raw_trace_data.
|
|
|
|
|
* target.h (struct target_ops) <to_get_raw_trace_data>: Use
|
|
|
|
|
TARGET_DEFAULT_NORETURN.
|
|
|
|
|
|
2013-12-18 21:10:40 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_upload_trace_state_variables.
|
|
|
|
|
* target.h (struct target_ops) <to_upload_trace_state_variables>:
|
|
|
|
|
Use TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-18 21:10:14 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_upload_tracepoints.
|
|
|
|
|
* target.h (struct target_ops) <to_upload_tracepoints>: Use
|
|
|
|
|
TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-18 21:09:37 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_save_trace_data.
|
|
|
|
|
* target.h (struct target_ops) <to_save_trace_data>: Use
|
|
|
|
|
TARGET_DEFAULT_NORETURN.
|
|
|
|
|
|
2013-12-18 21:09:04 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_get_trace_state_variable_value.
|
|
|
|
|
* target.h (struct target_ops)
|
|
|
|
|
<to_get_trace_state_variable_value>: Use TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-18 21:08:14 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_trace_find.
|
|
|
|
|
* target.h (struct target_ops): Use TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-18 21:07:28 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_trace_stop.
|
|
|
|
|
* target.h (struct target_ops) <to_trace_stop>: Use
|
|
|
|
|
TARGET_DEFAULT_NORETURN.
|
|
|
|
|
|
2013-12-18 21:06:52 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_get_tracepoint_status.
|
|
|
|
|
* target.h (struct target_ops) <to_get_tracepoint_status>: Use
|
|
|
|
|
TARGET_DEFAULT_NORETURN.
|
|
|
|
|
|
2013-12-18 21:06:18 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_get_trace_status.
|
|
|
|
|
* target.h (struct target_ops) <to_get_trace_status>: Use
|
|
|
|
|
TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-18 21:04:27 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_trace_start.
|
|
|
|
|
* target.h (struct target_ops) <to_trace_start>: Use
|
|
|
|
|
TARGET_DEFAULT_NORETURN.
|
|
|
|
|
|
2013-12-18 21:03:28 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_trace_set_readonly_regions.
|
|
|
|
|
* target.h (struct target_ops) <to_trace_set_readonly_regions>:
|
|
|
|
|
Use TARGET_DEFAULT_NORETURN.
|
|
|
|
|
|
2013-12-18 21:02:30 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_disable_tracepoint.
|
|
|
|
|
* target.h (struct target_ops) <to_disable_tracepoint>: Use
|
|
|
|
|
TARGET_DEFAULT_NORETURN.
|
|
|
|
|
|
2013-12-18 21:01:51 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_enable_tracepoint.
|
|
|
|
|
* target.h (struct target_ops) <to_enable_tracepoint>: Use
|
|
|
|
|
TARGET_DEFAULT_NORETURN.
|
|
|
|
|
|
2013-12-18 21:01:07 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_download_trace_state_variable.
|
|
|
|
|
* target.h (struct target_ops) <to_download_trace_state_variable>:
|
|
|
|
|
Use TARGET_DEFAULT_NORETURN.
|
|
|
|
|
|
2013-12-18 21:00:23 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_can_download_tracepoint.
|
|
|
|
|
* target.h (struct target_ops) <to_can_download_tracepoint>: Use
|
|
|
|
|
TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-18 20:57:41 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_download_tracepoint.
|
|
|
|
|
* target.h (struct target_ops) <to_download_tracepoint>: Use
|
|
|
|
|
TARGET_DEFAULT_NORETURN.
|
|
|
|
|
|
2013-12-18 20:57:05 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_trace_init.
|
|
|
|
|
* target.h (struct target_ops) <to_trace_init>: Use
|
|
|
|
|
TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-18 20:56:04 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_supports_string_tracing.
|
|
|
|
|
* target.h (struct target_ops) <to_supports_string_tracing>: Use
|
|
|
|
|
TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-18 20:54:59 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_supports_enable_disable_tracepoint.
|
|
|
|
|
* target.h (struct target_ops)
|
|
|
|
|
<to_supports_enable_disable_tracepoint>: Use
|
|
|
|
|
TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-18 20:54:06 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_supports_multi_process.
|
|
|
|
|
* target.h (struct target_ops) <to_supports_multi_process>: Use
|
|
|
|
|
TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-18 20:53:09 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_get_ada_task_ptid.
|
|
|
|
|
* target.h (struct target_ops) <to_get_ada_task_ptid>: Use
|
|
|
|
|
TARGET_DEFAULT_FUNC.
|
|
|
|
|
|
2013-12-18 18:16:31 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_thread_architecture.
|
|
|
|
|
* target.h (struct target_ops) <to_thread_architecture>: Use
|
|
|
|
|
TARGET_DEFAULT_FUNC.
|
|
|
|
|
|
2013-12-18 18:15:21 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_execution_direction.
|
|
|
|
|
* target.h (struct target_ops) <to_execution_direction>: Use
|
|
|
|
|
TARGET_DEFAULT_FUNC.
|
|
|
|
|
|
2013-12-18 18:12:28 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_can_execute_reverse.
|
|
|
|
|
* target.h (struct target_ops) <to_can_execute_reverse>: Use
|
|
|
|
|
TARGET_DEFAULT_RETURN.
|
|
|
|
|
(target_can_execute_reverse): Unconditionally delegate.
|
|
|
|
|
|
2013-12-18 18:11:25 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_goto_bookmark.
|
|
|
|
|
(dummy_goto_bookmark): Remove.
|
|
|
|
|
(init_dummy_target): Don't inherit or default to_goto_bookmark.
|
|
|
|
|
* target.h (struct target_ops) <to_goto_bookmark>: Use
|
|
|
|
|
TARGET_DEFAULT_NORETURN.
|
|
|
|
|
|
2013-12-18 18:10:32 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_get_bookmark.
|
|
|
|
|
(dummy_get_bookmark): Remove.
|
|
|
|
|
(init_dummy_target): Don't inherit or default to_get_bookmark.
|
|
|
|
|
* target.h (struct target_ops) <to_get_bookmark>: Use
|
|
|
|
|
TARGET_DEFAULT_NORETURN
|
|
|
|
|
|
2013-12-18 17:57:18 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_make_corefile_notes.
|
|
|
|
|
(init_dummy_target): Don't initialize to_make_corefile_notes.
|
|
|
|
|
* target.h (struct target_ops) <to_make_corefile_notes>: Use
|
|
|
|
|
TARGET_DEFAULT_FUNC.
|
|
|
|
|
|
2013-12-18 17:55:34 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_find_memory_regions.
|
|
|
|
|
(init_dummy_target): Don't initialize to_find_memory_regions.
|
|
|
|
|
* target.h (struct target_ops) <to_find_memory_regions>: Use
|
|
|
|
|
TARGET_DEFAULT_FUNC.
|
|
|
|
|
|
2013-12-18 17:52:58 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_log_command.
|
|
|
|
|
* target.h (struct target_ops) <to_log_command>: Use
|
|
|
|
|
TARGET_DEFAULT_IGNORE.
|
|
|
|
|
(target_log_command): Unconditionally delegate.
|
|
|
|
|
|
2013-12-18 17:51:10 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_pid_to_exec_file.
|
|
|
|
|
* target.h (struct target_ops) <to_pid_to_exec_file>: Use
|
|
|
|
|
TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-18 17:49:35 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_thread_name.
|
|
|
|
|
(target_thread_name): Unconditionally delegate.
|
|
|
|
|
* target.h (struct target_ops) <to_thread_name>: Use
|
|
|
|
|
TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-18 17:48:36 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_extra_thread_info.
|
|
|
|
|
* target.h (struct target_ops) <to_extra_thread_info>: Use
|
|
|
|
|
TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-18 17:47:22 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_has_exited.
|
|
|
|
|
* target.h (struct target_ops) <to_has_exited>: Use
|
|
|
|
|
TARGET_DEFAULT_RETURN..
|
|
|
|
|
|
2013-12-18 17:46:38 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_set_syscall_catchpoint.
|
|
|
|
|
(return_one): Remove.
|
|
|
|
|
* target.h (struct target_ops) <to_set_syscall_catchpoint>: Use
|
|
|
|
|
TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-18 17:45:38 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_insert_exec_catchpoint.
|
|
|
|
|
* target.h (struct target_ops) <to_insert_exec_catchpoint>: Use
|
|
|
|
|
TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-18 17:46:02 +00:00
|
|
|
|
2014-01-08 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_insert_exec_catchpoint.
|
|
|
|
|
* target.h (struct target_ops) <to_insert_exec_catchpoint>: Use
|
|
|
|
|
TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-18 17:44:57 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_remove_vfork_catchpoint.
|
|
|
|
|
* target.h (struct target_ops) <to_remove_vfork_catchpoint>: Use
|
|
|
|
|
TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-18 17:44:22 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_insert_vfork_catchpoint.
|
|
|
|
|
* target.h (struct target_ops) <to_insert_vfork_catchpoint>: Use
|
|
|
|
|
TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-18 17:34:15 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_remove_fork_catchpoint.
|
|
|
|
|
* target.h (struct target_ops) <to_remove_fork_catchpoint>: Use
|
|
|
|
|
TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-18 17:33:43 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_insert_fork_catchpoint.
|
|
|
|
|
* target.h (struct target_ops) <to_insert_fork_catchpoint>: Use
|
|
|
|
|
TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-18 17:32:56 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_post_startup_inferior.
|
|
|
|
|
* target.h (struct target_ops) <to_post_startup_inferior>: Use
|
|
|
|
|
TARGET_DEFAULT_IGNORE.
|
|
|
|
|
|
2013-12-18 17:31:48 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_load.
|
|
|
|
|
* target.h (struct target_ops) <to_load>: Use
|
|
|
|
|
TARGET_DEFAULT_NORETURN.
|
|
|
|
|
|
2013-12-18 17:31:10 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_terminal_info.
|
|
|
|
|
* target.h (struct target_ops) <to_terminal_info>: Use
|
|
|
|
|
TARGET_DEFAULT_FUNC.
|
|
|
|
|
|
2013-12-18 17:30:41 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_terminal_save_ours.
|
|
|
|
|
* target.h (struct target_ops) <to_terminal_save_ours>: Use
|
|
|
|
|
TARGET_DEFAULT_IGNORE.
|
|
|
|
|
|
2013-12-18 17:30:16 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_terminal_ours.
|
|
|
|
|
* target.h (struct target_ops) <to_terminal_ours>: Use
|
|
|
|
|
TARGET_DEFAULT_IGNORE.
|
|
|
|
|
|
2013-12-18 17:29:46 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_terminal_ours_for_output.
|
|
|
|
|
* target.h (struct target_ops) <to_terminal_ours_for_output>: Use
|
|
|
|
|
TARGET_DEFAULT_IGNORE.
|
|
|
|
|
|
2013-12-18 17:29:01 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_terminal_inferior.
|
|
|
|
|
* target.h (struct target_ops) <to_terminal_inferior>: Use
|
|
|
|
|
TARGET_DEFAULT_IGNORE.
|
|
|
|
|
|
2013-12-18 17:24:07 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_terminal_init.
|
|
|
|
|
* target.h (struct target_ops) <to_terminal_init>: Use
|
|
|
|
|
TARGET_DEFAULT_IGNORE.
|
|
|
|
|
|
2013-12-18 17:20:48 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_can_accel_watchpoint_condition.
|
|
|
|
|
* target.h (struct target_ops)
|
|
|
|
|
<to_can_accel_watchpoint_condition>: Use TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-18 17:18:05 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_region_ok_for_hw_watchpoint.
|
|
|
|
|
* target.h (struct target_ops) <to_region_ok_for_hw_watchpoint>:
|
|
|
|
|
Use TARGET_DEFAULT_FUNC.
|
|
|
|
|
|
2013-12-18 17:15:23 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_watchpoint_addr_within_range.
|
|
|
|
|
* target.h (struct target_ops) <to_watchpoint_addr_within_range>:
|
|
|
|
|
Use TARGET_DEFAULT_FUNC.
|
|
|
|
|
|
2013-12-18 17:11:49 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_remove_watchpoint.
|
|
|
|
|
* target.h (struct target_ops) <to_remove_watchpoint>: Use
|
|
|
|
|
TARGET_DEFAULT_NORETURN.
|
|
|
|
|
|
2013-12-18 17:08:59 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_insert_watchpoint.
|
|
|
|
|
* target.h (struct target_ops) <to_insert_watchpoint>: Use
|
|
|
|
|
TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-18 17:05:18 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_remove_hw_breakpoint.
|
|
|
|
|
* target.h (struct target_ops) <to_remove_hw_breakpoint>: Use
|
|
|
|
|
TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-18 17:01:11 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_insert_hw_breakpoint.
|
|
|
|
|
* target.h (struct target_ops) <to_insert_hw_breakpoint>: Use
|
|
|
|
|
TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-18 16:58:16 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_can_use_hw_breakpoint.
|
|
|
|
|
* target.h (struct target_ops) <to_can_use_hw_breakpoint>: Use
|
|
|
|
|
TARGET_DEFAULT_RETURN.
|
|
|
|
|
|
2013-12-18 16:51:47 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_files_info.
|
|
|
|
|
* target.h (struct target_ops) <to_files_info>: Use
|
|
|
|
|
TARGET_DEFAULT_IGNORE.
|
|
|
|
|
|
2013-12-18 16:47:18 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_store.
|
|
|
|
|
* target.h (struct target_ops) <to_store>: Use
|
|
|
|
|
TARGET_DEFAULT_NORETURN.
|
|
|
|
|
|
2013-12-18 16:42:24 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_post_attach.
|
|
|
|
|
* target.h (struct target_ops) <to_post_attach>: Use
|
|
|
|
|
TARGET_DEFAULT_IGNORE.
|
|
|
|
|
|
2013-12-18 16:35:21 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (update_current_target): Don't inherit or default
|
|
|
|
|
to_rcmd.
|
|
|
|
|
(default_rcmd): New function.
|
|
|
|
|
(do_monitor_command): Unconditionally delegate.
|
|
|
|
|
* target.h (struct target_ops) <to_rmcd>: Use
|
|
|
|
|
TARGET_DEFAULT_FUNC.
|
|
|
|
|
|
2013-12-13 21:16:57 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (init_dummy_target): Don't initialize to_attach.
|
|
|
|
|
(target_attach): Unconditionally delegate.
|
|
|
|
|
* target.h (struct target_ops) <to_attach>: Use
|
|
|
|
|
TARGET_DEFAULT_FUNC.
|
|
|
|
|
|
2013-12-13 20:33:08 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (target_detach): Unconditionally delegate.
|
|
|
|
|
(init_dummy_target): Don't initialize to_detach.
|
|
|
|
|
* target.h (struct target_ops) <to_detach>: Use
|
|
|
|
|
TARGET_DEFAULT_IGNORE.
|
|
|
|
|
|
2013-12-18 04:49:18 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_augmented_libraries_svr4_read>:
|
|
|
|
|
Add argument.
|
|
|
|
|
(target_augmented_libraries_svr4_read): Add argument.
|
|
|
|
|
* target.c (update_current_target): Update.
|
|
|
|
|
* remote.c (remote_augmented_libraries_svr4_read): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
|
2013-12-18 04:49:06 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_call_history_range>: Add
|
|
|
|
|
argument.
|
|
|
|
|
* target.c (target_call_history_range): Add argument.
|
|
|
|
|
* record-btrace.c (record_btrace_call_history_range): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
(record_btrace_call_history_from): Update.
|
|
|
|
|
|
2013-12-18 04:48:53 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_call_history_from>: Add
|
|
|
|
|
argument.
|
|
|
|
|
* target.c (target_call_history_from): Add argument.
|
|
|
|
|
* record-btrace.c (record_btrace_call_history_from): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
|
2013-12-18 04:48:41 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_call_history>: Add argument.
|
|
|
|
|
* target.c (target_call_history): Add argument.
|
|
|
|
|
* record-btrace.c (record_btrace_call_history): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
|
2013-12-18 04:48:29 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_insn_history_range>: Add
|
|
|
|
|
argument.
|
|
|
|
|
* target.c (target_insn_history_range): Add argument.
|
|
|
|
|
* record-btrace.c (record_btrace_insn_history_range): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
(record_btrace_insn_history_from): Update.
|
|
|
|
|
|
2013-12-18 04:48:16 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_insn_history_from>: Add
|
|
|
|
|
argument.
|
|
|
|
|
* target.c (target_insn_history_from): Add argument.
|
|
|
|
|
* record-btrace.c (record_btrace_insn_history_from): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
|
2013-12-18 04:48:04 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_insn_history>: Add argument.
|
|
|
|
|
* target.c (target_insn_history): Add argument.
|
|
|
|
|
* record-btrace.c (record_btrace_insn_history): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
|
2013-12-18 04:47:52 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_goto_record>: Add argument.
|
|
|
|
|
* target.c (target_goto_record): Add argument.
|
|
|
|
|
* record-full.c (record_full_goto): Add 'self' argument.
|
|
|
|
|
* record-btrace.c (record_btrace_goto): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:47:39 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_goto_record_end>: Add argument.
|
|
|
|
|
* target.c (target_goto_record_end): Add argument.
|
|
|
|
|
* record-full.c (record_full_goto_end): Add 'self' argument.
|
|
|
|
|
* record-btrace.c (record_btrace_goto_end): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:47:27 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_goto_record_begin>: Add
|
|
|
|
|
argument.
|
|
|
|
|
* target.c (target_goto_record_begin): Add argument.
|
|
|
|
|
* record-full.c (record_full_goto_begin): Add 'self' argument.
|
|
|
|
|
* record-btrace.c (record_btrace_goto_begin): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
|
2013-12-18 04:47:15 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_record_is_replaying>: Add
|
|
|
|
|
argument.
|
|
|
|
|
* target.c (target_record_is_replaying): Add argument.
|
|
|
|
|
* record-full.c (record_full_is_replaying): Add 'self' argument.
|
|
|
|
|
* record-btrace.c (record_btrace_is_replaying): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
(record_btrace_xfer_partial, record_btrace_store_registers)
|
|
|
|
|
(record_btrace_prepare_to_store, record_btrace_resume)
|
|
|
|
|
(record_btrace_wait, record_btrace_decr_pc_after_break)
|
|
|
|
|
(record_btrace_find_new_threads, record_btrace_thread_alive):
|
|
|
|
|
Update.
|
|
|
|
|
|
2013-12-18 04:47:02 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_delete_record>: Add argument.
|
|
|
|
|
* target.c (target_delete_record): Add argument.
|
|
|
|
|
* record-full.c (record_full_delete): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:46:50 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_save_record>: Add argument.
|
|
|
|
|
* target.c (target_save_record): Add argument.
|
|
|
|
|
* record-full.c (record_full_save): Add 'self' argument.
|
|
|
|
|
(record_full_save): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:46:38 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_info_record>: Add argument.
|
|
|
|
|
* target.c (target_info_record): Add argument.
|
|
|
|
|
* record.c (info_record_command): Add argument.
|
|
|
|
|
* record-full.c (record_full_info): Add 'self' argument.
|
|
|
|
|
* record-btrace.c (record_btrace_info): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:46:25 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_stop_recording>: Add argument.
|
|
|
|
|
* target.c (target_stop_recording): Add argument.
|
|
|
|
|
* record.c (record_stop): Add argument.
|
|
|
|
|
* record-btrace.c (record_btrace_stop_recording): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
|
2013-12-18 04:46:13 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_read_btrace>: Add argument.
|
|
|
|
|
* target.c (struct target_ops) <to_read_btrace>: Add argument.
|
|
|
|
|
* remote.c (struct target_ops) <to_read_btrace>: Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* amd64-linux-nat.c (amd64_linux_read_btrace): New function.
|
|
|
|
|
(_initialize_amd64_linux_nat): Use it.
|
|
|
|
|
* i386-linux-nat.c (i386_linux_read_btrace): New function.
|
|
|
|
|
(_initialize_i386_linux_nat): Use it.
|
|
|
|
|
|
2013-12-18 04:46:00 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_teardown_btrace>: Add argument.
|
|
|
|
|
* target.c (target_teardown_btrace): Add argument.
|
|
|
|
|
* remote.c (remote_teardown_btrace): Add 'self' argument.
|
|
|
|
|
* i386-linux-nat.c (i386_linux_teardown_btrace): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* amd64-linux-nat.c (amd64_linux_teardown_btrace): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
|
2013-12-18 04:45:48 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_disable_btrace>: Add argument.
|
|
|
|
|
* target.c (target_disable_btrace): Add argument.
|
|
|
|
|
* remote.c (remote_disable_btrace): Add 'self' argument.
|
|
|
|
|
* i386-linux-nat.c (i386_linux_disable_btrace): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* amd64-linux-nat.c (amd64_linux_disable_btrace): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
|
2013-12-18 04:45:35 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_enable_btrace>: Add argument.
|
|
|
|
|
* target.c (target_enable_btrace): Add argument.
|
|
|
|
|
* remote.c (remote_enable_btrace): Add 'self' argument.
|
|
|
|
|
* i386-linux-nat.c (i386_linux_enable_btrace): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* amd64-linux-nat.c (amd64_linux_enable_btrace): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
|
2013-12-18 04:45:22 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_can_use_agent>: Add argument.
|
|
|
|
|
(target_can_use_agent): Add argument.
|
|
|
|
|
* target.c (update_current_target): Update.
|
|
|
|
|
* remote.c (remote_can_use_agent): Add 'self' argument.
|
|
|
|
|
* inf-child.c (inf_child_can_use_agent): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:45:10 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_use_agent>: Add argument.
|
|
|
|
|
(target_use_agent): Add argument.
|
|
|
|
|
* target.c (update_current_target): Update.
|
|
|
|
|
* remote.c (remote_use_agent): Add 'self' argument.
|
|
|
|
|
* inf-child.c (inf_child_use_agent): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:44:57 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* tracepoint.c (tfile_traceframe_info): Add 'self' argument.
|
|
|
|
|
* target.h (struct target_ops) <to_traceframe_info>: Add argument.
|
|
|
|
|
(target_traceframe_info): Add argument.
|
|
|
|
|
* target.c (update_current_target): Update.
|
|
|
|
|
* remote.c (remote_traceframe_info): Add 'self' argument.
|
|
|
|
|
* ctf.c (ctf_traceframe_info): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:44:45 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (target_static_tracepoint_markers_by_strid): Add
|
|
|
|
|
argument.
|
|
|
|
|
(struct target_ops) <to_static_tracepoint_markers_by_strid>: Add
|
|
|
|
|
'self' argument.
|
|
|
|
|
* target.c (update_current_target): Update.
|
|
|
|
|
* remote.c (struct target_ops)
|
|
|
|
|
<to_static_tracepoint_markers_by_strid>: Add 'self' argument.
|
|
|
|
|
* linux-nat.c (struct target_ops)
|
|
|
|
|
<to_static_tracepoint_markers_by_strid>: Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:44:32 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_static_tracepoint_marker_at>:
|
|
|
|
|
Add argument.
|
|
|
|
|
(target_static_tracepoint_marker_at): Add argument.
|
|
|
|
|
* target.c (update_current_target): Update.
|
|
|
|
|
* remote.c (remote_static_tracepoint_marker_at): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
|
2013-12-18 04:44:20 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_set_permissions>: Add argument.
|
|
|
|
|
(target_set_permissions): Add argument.
|
|
|
|
|
* target.c (update_current_target): Update.
|
|
|
|
|
* remote.c (remote_set_permissions): Add 'self' argument.
|
|
|
|
|
(remote_start_remote): Update.
|
|
|
|
|
|
2013-12-18 04:44:08 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* windows-nat.c (windows_get_tib_address): Add 'self' argument.
|
|
|
|
|
* target.h (struct target_ops) <to_get_tib_address>: Add argument.
|
|
|
|
|
(target_get_tib_address): Add argument.
|
|
|
|
|
* target.c (update_current_target): Update.
|
|
|
|
|
* remote.c (remote_get_tib_address): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:43:55 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_set_trace_notes>: Add argument.
|
|
|
|
|
(target_set_trace_notes): Add argument.
|
|
|
|
|
* target.c (update_current_target): Update.
|
|
|
|
|
* remote.c (remote_set_trace_notes): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:43:43 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_set_trace_buffer_size>: Add
|
|
|
|
|
argument.
|
|
|
|
|
(target_set_trace_buffer_size): Add argument.
|
|
|
|
|
* target.c (update_current_target): Update.
|
|
|
|
|
* remote.c (remote_set_trace_buffer_size): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:43:31 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_set_circular_trace_buffer>: Add
|
|
|
|
|
argument.
|
|
|
|
|
(target_set_circular_trace_buffer): Add argument.
|
|
|
|
|
* target.c (update_current_target): Update.
|
|
|
|
|
* remote.c (remote_set_circular_trace_buffer): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
|
2013-12-18 04:43:19 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_set_disconnected_tracing>: Add
|
|
|
|
|
argument.
|
|
|
|
|
(target_set_disconnected_tracing): Add argument.
|
|
|
|
|
* target.c (update_current_target): Update.
|
|
|
|
|
* remote.c (remote_set_disconnected_tracing): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:43:06 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops)
|
|
|
|
|
<to_get_min_fast_tracepoint_insn_len>: Add argument.
|
|
|
|
|
(target_get_min_fast_tracepoint_insn_len): Add argument.
|
|
|
|
|
* target.c (update_current_target): Update.
|
|
|
|
|
* remote.c (remote_get_min_fast_tracepoint_insn_len): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
|
2013-12-18 04:42:54 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_get_raw_trace_data>: Add
|
|
|
|
|
argument.
|
|
|
|
|
(target_get_raw_trace_data): Add argument.
|
|
|
|
|
* target.c (update_current_target): Update.
|
|
|
|
|
* remote.c (remote_get_raw_trace_data): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:42:42 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_upload_trace_state_variables>:
|
|
|
|
|
Add argument.
|
|
|
|
|
(target_upload_trace_state_variables): Add argument.
|
|
|
|
|
* target.c (update_current_target): Update.
|
|
|
|
|
* remote.c (remote_upload_trace_state_variables): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
(remote_start_remote): Update.
|
|
|
|
|
|
2013-12-18 04:42:29 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_upload_tracepoints>: Add
|
|
|
|
|
argument.
|
|
|
|
|
(target_upload_tracepoints): Add argument.
|
|
|
|
|
* target.c (update_current_target): Update.
|
|
|
|
|
* remote.c (remote_upload_tracepoints): Add 'self' argument.
|
|
|
|
|
(remote_start_remote): Update.
|
|
|
|
|
|
2013-12-18 04:42:17 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_save_trace_data>: Add argument.
|
|
|
|
|
(target_save_trace_data): Add argument.
|
|
|
|
|
* target.c (update_current_target): Update.
|
|
|
|
|
* remote.c (remote_save_trace_data): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:42:05 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* tracepoint.c (tfile_get_trace_state_variable_value): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* target.h (struct target_ops)
|
|
|
|
|
<to_get_trace_state_variable_value>: Add argument.
|
|
|
|
|
(target_get_trace_state_variable_value): Add argument.
|
|
|
|
|
* target.c (update_current_target): Update.
|
|
|
|
|
* remote.c (remote_get_trace_state_variable_value): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* ctf.c (ctf_get_trace_state_variable_value): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:41:52 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* tracepoint.c (tfile_trace_find): Add 'self' argument.
|
|
|
|
|
* target.h (struct target_ops) <to_trace_find>: Add argument.
|
|
|
|
|
(target_trace_find): Add argument.
|
|
|
|
|
* target.c (update_current_target): Update.
|
|
|
|
|
* remote.c (remote_trace_find): Add 'self' argument.
|
|
|
|
|
* ctf.c (ctf_trace_find): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:41:40 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_trace_stop>: Add argument.
|
|
|
|
|
(target_trace_stop): Add argument.
|
|
|
|
|
* target.c (update_current_target): Update.
|
|
|
|
|
* remote.c (remote_trace_stop): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:41:27 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* tracepoint.c (tfile_get_tracepoint_status): Add 'self' argument.
|
|
|
|
|
* target.h (struct target_ops) <to_get_tracepoint_status>: Add
|
|
|
|
|
argument.
|
|
|
|
|
(target_get_tracepoint_status): Add argument.
|
|
|
|
|
* target.c (update_current_target): Update.
|
|
|
|
|
* remote.c (remote_get_tracepoint_status): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:41:15 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* tracepoint.c (tfile_get_trace_status): Add 'self' argument.
|
|
|
|
|
* target.h (struct target_ops) <to_get_trace_status>: Add
|
|
|
|
|
argument.
|
|
|
|
|
(target_get_trace_status): Add argument.
|
|
|
|
|
* target.c (update_current_target): Update.
|
|
|
|
|
* remote.c (remote_get_trace_status): Add 'self' argument.
|
|
|
|
|
(remote_start_remote, remote_can_download_tracepoint): Update.
|
|
|
|
|
* ctf.c (ctf_get_trace_status): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:41:02 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_trace_start>: Add argument.
|
|
|
|
|
(target_trace_start): Add argument.
|
|
|
|
|
* target.c (update_current_target): Update.
|
|
|
|
|
* remote.c (remote_trace_start): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:40:50 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_trace_set_readonly_regions>:
|
|
|
|
|
Add argument.
|
|
|
|
|
(target_trace_set_readonly_regions): Add argument.
|
|
|
|
|
* target.c (update_current_target): Update.
|
|
|
|
|
* remote.c (remote_trace_set_readonly_regions): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
|
2013-12-18 04:40:38 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_disable_tracepoint>: Add
|
|
|
|
|
argument.
|
|
|
|
|
(target_disable_tracepoint): Add argument.
|
|
|
|
|
* target.c (update_current_target): Update.
|
|
|
|
|
* remote.c (remote_disable_tracepoint): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:40:25 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_enable_tracepoint>: Add
|
|
|
|
|
argument.
|
|
|
|
|
(target_enable_tracepoint): Add argument.
|
|
|
|
|
* target.c (update_current_target): Update.
|
|
|
|
|
* remote.c (remote_enable_tracepoint): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:40:13 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_download_trace_state_variable>:
|
|
|
|
|
Add argument.
|
|
|
|
|
(target_download_trace_state_variable): Add argument.
|
|
|
|
|
* target.c (update_current_target): Update.
|
|
|
|
|
* remote.c (remote_download_trace_state_variable): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
|
2013-12-18 04:40:01 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_can_download_tracepoint>: Add
|
|
|
|
|
argument.
|
|
|
|
|
(target_can_download_tracepoint): Add argument.
|
|
|
|
|
* target.c (update_current_target): Update.
|
|
|
|
|
* remote.c (remote_can_download_tracepoint): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:39:49 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_download_tracepoint>: Add
|
|
|
|
|
argument.
|
|
|
|
|
(target_download_tracepoint): Add argument.
|
|
|
|
|
* target.c (update_current_target): Update.
|
|
|
|
|
* remote.c (remote_download_tracepoint): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:39:36 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_trace_init>: Add argument.
|
|
|
|
|
(target_trace_init): Add argument.
|
|
|
|
|
* target.c (update_current_target): Update.
|
|
|
|
|
* remote.c (remote_trace_init): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:39:24 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_fileio_readlink>: Add argument.
|
|
|
|
|
* target.c (target_fileio_readlink): Add argument.
|
|
|
|
|
* remote.c (remote_hostio_readlink): Add 'self' argument.
|
|
|
|
|
* inf-child.c (inf_child_fileio_readlink): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:39:11 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_fileio_unlink>: Add argument.
|
|
|
|
|
* target.c (target_fileio_unlink): Add argument.
|
|
|
|
|
* remote.c (remote_hostio_unlink): Add 'self' argument.
|
|
|
|
|
(remote_file_delete): Update.
|
|
|
|
|
* inf-child.c (inf_child_fileio_unlink): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:38:59 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_fileio_close>: Add argument.
|
|
|
|
|
* target.c (target_fileio_close): Add argument.
|
|
|
|
|
* remote.c (remote_hostio_close): Add 'self' argument.
|
|
|
|
|
(remote_hostio_close_cleanup): Update.
|
|
|
|
|
(remote_bfd_iovec_close, remote_file_put, remote_file_get):
|
|
|
|
|
Update.
|
|
|
|
|
* inf-child.c (inf_child_fileio_close): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:38:46 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_fileio_pread>: Add argument.
|
|
|
|
|
* target.c (target_fileio_pread): Add argument.
|
|
|
|
|
* remote.c (remote_hostio_pread): Add 'self' argument.
|
|
|
|
|
(remote_bfd_iovec_pread, remote_file_get): Update.
|
|
|
|
|
* inf-child.c (inf_child_fileio_pread): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:38:34 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_fileio_pwrite>: Add argument.
|
|
|
|
|
* target.c (target_fileio_pwrite): Add argument.
|
|
|
|
|
* remote.c (remote_hostio_pwrite): Add 'self' argument.
|
|
|
|
|
(remote_file_put): Update.
|
|
|
|
|
* inf-child.c (inf_child_fileio_pwrite): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:38:21 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_fileio_open>: Add argument.
|
|
|
|
|
* target.c (target_fileio_open): Add argument.
|
|
|
|
|
* remote.c (remote_hostio_open): Add 'self' argument.
|
|
|
|
|
(remote_bfd_iovec_open): Add 'self' argument.
|
|
|
|
|
(remote_file_put): Add 'self' argument.
|
|
|
|
|
(remote_file_get): Add 'self' argument.
|
|
|
|
|
* inf-child.c (inf_child_fileio_open): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:38:09 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_can_run_breakpoint_commands>:
|
|
|
|
|
Add argument.
|
|
|
|
|
(target_can_run_breakpoint_commands): Add argument.
|
|
|
|
|
* target.c (update_current_target): Update.
|
|
|
|
|
* remote.c (remote_can_run_breakpoint_commands): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
(remote_insert_breakpoint): Add 'self' argument.
|
|
|
|
|
(remote_insert_hw_breakpoint): Add 'self' argument.
|
|
|
|
|
(remote_can_run_breakpoint_commands): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:37:56 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops)
|
|
|
|
|
<to_supports_evaluation_of_breakpoint_conditions>: Add argument.
|
|
|
|
|
(target_supports_evaluation_of_breakpoint_conditions): Add
|
|
|
|
|
argument.
|
|
|
|
|
* target.c (update_current_target): Update.
|
|
|
|
|
* remote.c (remote_supports_cond_breakpoints): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
(remote_insert_breakpoint): Add 'self' argument.
|
|
|
|
|
(remote_insert_hw_breakpoint): Add 'self' argument.
|
|
|
|
|
(remote_supports_cond_breakpoints): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:37:44 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_supports_string_tracing>: Add
|
|
|
|
|
argument.
|
|
|
|
|
(target_supports_string_tracing): Add argument.
|
|
|
|
|
* target.c (update_current_target): Update.
|
|
|
|
|
* remote.c (remote_supports_string_tracing): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:37:32 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops)
|
|
|
|
|
<to_supports_disable_randomization>: Add argument.
|
|
|
|
|
* target.c (find_default_supports_disable_randomization): Add
|
|
|
|
|
argument.
|
|
|
|
|
(target_supports_disable_randomization): Add argument.
|
|
|
|
|
(find_default_supports_disable_randomization): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* remote.c (extended_remote_supports_disable_randomization): Add
|
|
|
|
|
'self' argument.
|
|
|
|
|
(remote_supports_disable_randomization): Add 'self' argument.
|
|
|
|
|
(extended_remote_create_inferior): Update.
|
|
|
|
|
* linux-nat.c (linux_nat_supports_disable_randomization): Add
|
|
|
|
|
'self' argument.
|
|
|
|
|
|
2013-12-18 04:37:19 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops)
|
|
|
|
|
<to_supports_enable_disable_tracepoint>: Add argument.
|
|
|
|
|
(target_supports_enable_disable_tracepoint): Add argument.
|
|
|
|
|
* target.c (update_current_target): Update.
|
|
|
|
|
* remote.c (remote_supports_enable_disable_tracepoint): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
|
2013-12-18 04:37:07 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_supports_multi_process>: Add
|
|
|
|
|
argument.
|
|
|
|
|
(target_supports_multi_process): Add argument.
|
|
|
|
|
* target.c (update_current_target): Update.
|
|
|
|
|
* remote.c (remote_supports_multi_process): Add 'self' argument.
|
|
|
|
|
* linux-nat.c (linux_nat_supports_multi_process): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* darwin-nat.c (darwin_supports_multi_process): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
|
2013-12-18 04:36:54 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_execution_direction>: Add
|
|
|
|
|
argument.
|
|
|
|
|
(target_execution_direction): Add argument.
|
|
|
|
|
* target.c (default_execution_direction): Add 'self' argument.
|
|
|
|
|
* record-full.c (record_full_execution_direction): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
|
2013-12-18 04:36:42 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_can_execute_reverse>: Add
|
|
|
|
|
argument.
|
|
|
|
|
(target_can_execute_reverse): Add argument.
|
|
|
|
|
* remote.c (remote_can_execute_reverse): Add 'self' argument.
|
|
|
|
|
* record-full.c (record_full_can_execute_reverse): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* record-btrace.c (record_btrace_can_execute_reverse): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
|
2013-12-18 04:36:30 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* windows-nat.c (windows_get_ada_task_ptid): Add 'self' argument.
|
|
|
|
|
* target.h (struct target_ops) <to_get_ada_task_ptid>: Add
|
|
|
|
|
argument.
|
|
|
|
|
(target_get_ada_task_ptid): Add argument.
|
|
|
|
|
* target.c (update_current_target): Update.
|
|
|
|
|
(default_get_ada_task_ptid): Add 'self' argument.
|
|
|
|
|
* sol-thread.c (sol_get_ada_task_ptid): Add 'self' argument.
|
|
|
|
|
* remote.c (remote_get_ada_task_ptid): Add 'self' argument.
|
|
|
|
|
* ravenscar-thread.c (ravenscar_get_ada_task_ptid): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* linux-thread-db.c (thread_db_get_ada_task_ptid): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* inf-ttrace.c (inf_ttrace_get_ada_task_ptid): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* dec-thread.c (dec_thread_get_ada_task_ptid): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* darwin-nat.c (darwin_get_ada_task_ptid): Add 'self' argument.
|
|
|
|
|
* aix-thread.c (aix_thread_get_ada_task_ptid): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
|
2013-12-18 04:36:17 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_goto_bookmark>: Add argument.
|
|
|
|
|
(target_goto_bookmark): Add argument.
|
|
|
|
|
* target.c (dummy_goto_bookmark): Add 'self' argument.
|
|
|
|
|
* record-full.c (record_full_goto_bookmark): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:36:04 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_get_bookmark>: Add argument.
|
|
|
|
|
(target_get_bookmark): Add argument.
|
|
|
|
|
* target.c (dummy_get_bookmark): Add 'self' argument.
|
|
|
|
|
* record-full.c (record_full_get_bookmark): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:35:52 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_make_corefile_notes>: Add
|
|
|
|
|
argument.
|
|
|
|
|
(target_make_corefile_notes): Add argument.
|
|
|
|
|
* target.c (dummy_make_corefile_notes): Add 'self' argument.
|
|
|
|
|
* procfs.c (procfs_make_note_section): Add 'self' argument.
|
|
|
|
|
(procfs_make_note_section): Add 'self' argument.
|
|
|
|
|
(procfs_make_note_section): Add 'self' argument.
|
|
|
|
|
* linux-nat.c (linux_nat_make_corefile_notes): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* fbsd-nat.h (fbsd_make_corefile_notes): Add 'self' argument.
|
|
|
|
|
* fbsd-nat.c (fbsd_make_corefile_notes): Add 'self' argument.
|
|
|
|
|
* exec.c (exec_make_note_section): Add 'self' argument.
|
|
|
|
|
(exec_make_note_section): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:35:39 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_find_memory_regions>: Add
|
|
|
|
|
argument.
|
|
|
|
|
(target_find_memory_regions): Add argument.
|
|
|
|
|
* target.c (dummy_find_memory_regions): Add 'self' argument.
|
|
|
|
|
* procfs.c (proc_find_memory_regions): Add 'self' argument.
|
|
|
|
|
* gnu-nat.c (gnu_find_memory_regions): Add 'self' argument.
|
|
|
|
|
* fbsd-nat.h (fbsd_find_memory_regions): Add 'self' argument.
|
|
|
|
|
* fbsd-nat.c (fbsd_find_memory_regions): Add 'self' argument.
|
|
|
|
|
* exec. (exec_do_find_memory_regions): New global.
|
|
|
|
|
(exec_set_find_memory_regions): Rewrite.
|
|
|
|
|
(exec_find_memory_regions): New function.
|
|
|
|
|
(init_exec_ops): Use exec_find_memory_regions.
|
|
|
|
|
|
2013-12-18 04:35:26 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_supports_non_stop>: Add
|
|
|
|
|
argument.
|
|
|
|
|
* target.c (find_default_supports_non_stop): Add argument.
|
|
|
|
|
(target_supports_non_stop): Add argument.
|
|
|
|
|
(find_default_supports_non_stop): Add 'self' argument.
|
|
|
|
|
* remote.c (remote_supports_non_stop): Add 'self' argument.
|
|
|
|
|
* linux-nat.c (linux_nat_supports_non_stop): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:35:13 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_log_command>: Add argument.
|
|
|
|
|
(target_log_command): Add argument.
|
|
|
|
|
* serial.h (serial_log_command): Add 'self' argument.
|
|
|
|
|
* serial.c (serial_log_command): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:35:01 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* windows-nat.c (windows_pid_to_exec_file): Add 'self' argument.
|
|
|
|
|
* target.h (struct target_ops) <to_pid_to_exec_file>: Add
|
|
|
|
|
argument.
|
|
|
|
|
(target_pid_to_exec_file): Add argument.
|
|
|
|
|
* target.c (debug_to_pid_to_exec_file): Add argument.
|
|
|
|
|
(update_current_target): Update.
|
|
|
|
|
* nbsd-nat.h (nbsd_pid_to_exec_file): Add 'self' argument.
|
|
|
|
|
* nbsd-nat.c (nbsd_pid_to_exec_file): Add 'self' argument.
|
|
|
|
|
* linux-nat.c (linux_child_pid_to_exec_file): Add 'self' argument.
|
|
|
|
|
(linux_handle_extended_wait): Update.
|
|
|
|
|
* inf-child.c (inf_child_pid_to_exec_file): Add 'self' argument.
|
|
|
|
|
* fbsd-nat.h (fbsd_pid_to_exec_file): Add 'self' argument.
|
|
|
|
|
* fbsd-nat.c (fbsd_pid_to_exec_file): Add 'self' argument.
|
|
|
|
|
* darwin-nat.c (darwin_pid_to_exec_file): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:34:48 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_rcmd>: Add argument.
|
|
|
|
|
(target_rcmd): Add argument.
|
|
|
|
|
* target.c (debug_to_rcmd): Add argument.
|
|
|
|
|
(update_current_target, do_monitor_command): Update.
|
|
|
|
|
* remote.c (remote_rcmd): Add 'self' argument.
|
|
|
|
|
* monitor.c (monitor_rcmd): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:34:36 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* windows-nat.c (windows_stop): Add 'self' argument.
|
|
|
|
|
* target.h (struct target_ops) <to_stop>: Add argument.
|
|
|
|
|
* target.c (target_stop): Add argument.
|
|
|
|
|
(debug_to_stop): Add argument.
|
|
|
|
|
(update_current_target): Update.
|
|
|
|
|
* remote.c (remote_stop): Add 'self' argument.
|
|
|
|
|
* remote-sim.c (gdbsim_stop): Add 'self' argument.
|
|
|
|
|
(gdbsim_cntrl_c): Update.
|
|
|
|
|
* remote-m32r-sdi.c (m32r_stop): Add 'self' argument.
|
|
|
|
|
* procfs.c (procfs_stop): Add 'self' argument.
|
|
|
|
|
* nto-procfs.c (procfs_stop): Add 'self' argument.
|
|
|
|
|
* monitor.c (monitor_stop): Add 'self' argument.
|
|
|
|
|
(monitor_open): Update.
|
|
|
|
|
* linux-nat.c (linux_nat_stop): Add argument.
|
|
|
|
|
* inf-ptrace.c (inf_ptrace_stop): Add 'self' argument.
|
|
|
|
|
* gnu-nat.c (gnu_stop): Add 'self' argument.
|
|
|
|
|
* darwin-nat.c (darwin_stop): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:34:22 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_thread_name>: Add argument.
|
|
|
|
|
* target.c (target_thread_name): Add argument.
|
|
|
|
|
(update_current_target): Update.
|
|
|
|
|
* linux-nat.c (linux_nat_thread_name): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:34:09 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_extra_thread_info>: Add
|
|
|
|
|
argument.
|
|
|
|
|
(target_extra_thread_info): Add argument.
|
|
|
|
|
* target.c (update_current_target): Update.
|
|
|
|
|
* remote.c (remote_threads_extra_info): Add 'self' argument.
|
|
|
|
|
* ravenscar-thread.c (ravenscar_extra_thread_info): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* nto-tdep.h (nto_extra_thread_info): Add 'self' argument.
|
|
|
|
|
* nto-tdep.c (nto_extra_thread_info): Add 'self' argument.
|
|
|
|
|
* linux-thread-db.c (thread_db_extra_thread_info): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* inf-ttrace.c (inf_ttrace_extra_thread_info): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* bsd-uthread.c (bsd_uthread_extra_thread_info): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* aix-thread.c (aix_thread_extra_thread_info): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
|
2013-12-18 04:33:56 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_program_signals>: Add argument.
|
|
|
|
|
* target.c (target_program_signals): Add argument.
|
|
|
|
|
* remote.c (remote_program_signals): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:33:44 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_pass_signals>: Add argument.
|
|
|
|
|
* target.c (target_pass_signals): Add argument.
|
|
|
|
|
* remote.c (remote_pass_signals): Add 'self' argument.
|
|
|
|
|
(remote_start_remote): Update.
|
|
|
|
|
* procfs.c (procfs_pass_signals): Add 'self' argument.
|
|
|
|
|
* nto-procfs.c (procfs_pass_signals): Add 'self' argument.
|
|
|
|
|
* linux-nat.c (linux_nat_pass_signals): Add 'self' argument.
|
|
|
|
|
(linux_nat_create_inferior, linux_nat_attach): Update.
|
|
|
|
|
|
2013-12-18 04:33:31 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* windows-nat.c (windows_can_run): Add 'self' argument.
|
|
|
|
|
* target.h (struct target_ops) <to_can_run>: Add argument.
|
|
|
|
|
(target_can_run): Add argument.
|
|
|
|
|
* target.c (debug_to_can_run): Add argument.
|
|
|
|
|
(update_current_target): Update.
|
|
|
|
|
* nto-procfs.c (procfs_can_run): Add 'self' argument.
|
|
|
|
|
* inf-child.c (inf_child_can_run): Add 'self' argument.
|
|
|
|
|
* go32-nat.c (go32_can_run): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:33:18 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_has_exited>: Add argument.
|
|
|
|
|
(target_has_exited): Add argument.
|
|
|
|
|
* target.c (debug_to_has_exited): Add argument.
|
|
|
|
|
(update_current_target): Update.
|
|
|
|
|
|
2013-12-18 04:33:06 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_set_syscall_catchpoint>: Add
|
|
|
|
|
argument.
|
|
|
|
|
(target_set_syscall_catchpoint): Add argument.
|
|
|
|
|
* linux-nat.c (linux_child_set_syscall_catchpoint): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* target.c (update_current_target): Update.
|
|
|
|
|
|
2013-12-18 04:32:54 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_remove_exec_catchpoint>: Add
|
|
|
|
|
argument.
|
|
|
|
|
(target_remove_exec_catchpoint): Add argument.
|
|
|
|
|
* target.c (debug_to_remove_exec_catchpoint): Add argument.
|
|
|
|
|
(update_current_target): Update.
|
|
|
|
|
* linux-nat.c (linux_child_remove_exec_catchpoint): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
|
2013-12-18 04:32:41 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_insert_exec_catchpoint>: Add
|
|
|
|
|
argument.
|
|
|
|
|
(target_insert_exec_catchpoint): Add argument.
|
|
|
|
|
* target.c (debug_to_insert_exec_catchpoint): Add argument.
|
|
|
|
|
(update_current_target): Update.
|
|
|
|
|
* linux-nat.c (linux_child_insert_exec_catchpoint): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
|
2013-12-18 04:32:29 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_remove_vfork_catchpoint>: Add
|
|
|
|
|
argument.
|
|
|
|
|
(target_remove_vfork_catchpoint): Add argument.
|
|
|
|
|
* target.c (debug_to_remove_vfork_catchpoint): Add argument.
|
|
|
|
|
(update_current_target): Update.
|
|
|
|
|
* linux-nat.c (linux_child_remove_vfork_catchpoint): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
|
2013-12-18 04:32:17 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_insert_vfork_catchpoint>: Add
|
|
|
|
|
argument.
|
|
|
|
|
(target_insert_vfork_catchpoint): Add argument.
|
|
|
|
|
* target.c (debug_to_insert_vfork_catchpoint): Add argument.
|
|
|
|
|
(update_current_target): Update.
|
|
|
|
|
* linux-nat.c (linux_child_insert_vfork_catchpoint): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
|
2013-12-18 04:32:05 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_remove_fork_catchpoint>: Add
|
|
|
|
|
argument.
|
|
|
|
|
(target_remove_fork_catchpoint): Add argument.
|
|
|
|
|
* target.c (debug_to_remove_fork_catchpoint): Add argument.
|
|
|
|
|
(update_current_target): Update.
|
|
|
|
|
* linux-nat.c (linux_child_remove_fork_catchpoint): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
|
2013-12-18 04:31:52 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_insert_fork_catchpoint>: Add
|
|
|
|
|
argument.
|
|
|
|
|
(target_insert_fork_catchpoint): Add argument.
|
|
|
|
|
* target.c (debug_to_insert_fork_catchpoint): Add argument.
|
|
|
|
|
(update_current_target): Update.
|
|
|
|
|
* linux-nat.c (linux_child_insert_fork_catchpoint): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
|
2013-12-18 04:31:40 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_post_startup_inferior>: Add
|
|
|
|
|
argument.
|
|
|
|
|
(target_post_startup_inferior): Add argument.
|
|
|
|
|
* target.c (debug_to_post_startup_inferior): Add argument.
|
|
|
|
|
(update_current_target): Update.
|
|
|
|
|
* spu-linux-nat.c (spu_child_post_startup_inferior): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* linux-nat.c (linux_child_post_startup_inferior): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* inf-ptrace.c (inf_ptrace_post_startup_inferior): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* inf-child.c (inf_child_post_startup_inferior): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* i386-linux-nat.c (i386_linux_child_post_startup_inferior): Add
|
|
|
|
|
'self' argument.
|
|
|
|
|
(super_post_startup_inferior): Likewise.
|
|
|
|
|
* amd64-linux-nat.c (amd64_linux_child_post_startup_inferior): Add
|
|
|
|
|
'self' argument.
|
|
|
|
|
(super_post_startup_inferior): Likewise.
|
|
|
|
|
* aarch64-linux-nat.c (aarch64_linux_child_post_startup_inferior):
|
|
|
|
|
Add 'self' argument.
|
|
|
|
|
(super_post_startup_inferior): Likewise.
|
|
|
|
|
|
2013-12-18 04:31:27 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_load>: Add argument.
|
|
|
|
|
* target.c (target_load): Add argument.
|
|
|
|
|
(debug_to_load): Add argument.
|
|
|
|
|
(update_current_target): Update.
|
|
|
|
|
* remote.c (remote_load): Add 'self' argument.
|
|
|
|
|
* remote-sim.c (gdbsim_load): Add 'self' argument.
|
|
|
|
|
* remote-mips.c (mips_load): Add 'self' argument.
|
|
|
|
|
* remote-m32r-sdi.c (m32r_load): Add 'self' argument.
|
|
|
|
|
* monitor.c (monitor_load): Add 'self' argument.
|
|
|
|
|
* m32r-rom.c (m32r_load_gen): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:31:14 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_terminal_info>: Add argument.
|
|
|
|
|
(target_terminal_info): Add argument.
|
|
|
|
|
* target.c (debug_to_terminal_info): Add argument.
|
|
|
|
|
(default_terminal_info): Likewise.
|
|
|
|
|
* inflow.c (child_terminal_info): Add 'self' argument.
|
|
|
|
|
* inferior.h (child_terminal_info): Add 'self' argument.
|
|
|
|
|
* go32-nat.c (go32_terminal_info): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:31:01 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_terminal_save_ours>: Add
|
|
|
|
|
argument.
|
|
|
|
|
(target_terminal_save_ours): Add argument.
|
|
|
|
|
* target.c (debug_to_terminal_save_ours): Add argument.
|
|
|
|
|
(update_current_target): Update.
|
|
|
|
|
* inflow.c (terminal_save_ours): Add 'self' argument.
|
|
|
|
|
* inferior.h (terminal_save_ours): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:30:49 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_terminal_ours>: Add argument.
|
|
|
|
|
(target_terminal_ours): Add argument.
|
|
|
|
|
* target.c (debug_to_terminal_ours): Add argument.
|
|
|
|
|
(update_current_target): Update.
|
|
|
|
|
* remote.c (remote_terminal_ours): Add 'self' argument.
|
|
|
|
|
(remote_close): Update.
|
|
|
|
|
* linux-nat.c (linux_nat_terminal_ours): Add 'self' argument.
|
|
|
|
|
* inflow.c (terminal_ours): Add 'self' argument.
|
|
|
|
|
* inferior.h (terminal_ours): Add 'self' argument.
|
|
|
|
|
* go32-nat.c (go32_terminal_ours): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:30:36 +00:00
|
|
|
|
2014-02-19 Pedro Alves <palves@redhat.com>
|
|
|
|
|
Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_terminal_ours_for_output>: Add
|
|
|
|
|
argument.
|
|
|
|
|
(target_terminal_ours_for_output): Add argument.
|
|
|
|
|
* target.c (debug_to_terminal_ours_for_output): Add argument.
|
|
|
|
|
(update_current_target): Update.
|
|
|
|
|
* inflow.c (terminal_ours_for_output): Add 'self' argument.
|
|
|
|
|
* inferior.h (terminal_ours_for_output): Add 'self' argument.
|
|
|
|
|
* go32-nat.c (go32_terminal_ours): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:30:23 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_terminal_inferior>: Add
|
|
|
|
|
argument.
|
|
|
|
|
* target.c (target_terminal_inferior): Add argument.
|
|
|
|
|
(update_current_target): Update.
|
|
|
|
|
* remote.c (remote_terminal_inferior): Add 'self' argument.
|
|
|
|
|
* linux-nat.c (linux_nat_terminal_inferior): Add 'self' argument.
|
|
|
|
|
* inflow.c (terminal_inferior): Add 'self' argument.
|
|
|
|
|
* inferior.h (terminal_inferior): Add 'self' argument.
|
|
|
|
|
* go32-nat.c (go32_terminal_inferior): Add 'self' argument.
|
|
|
|
|
(go32_terminal_inferior): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:30:10 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_terminal_init>: Add argument.
|
|
|
|
|
(target_terminal_init): Add argument.
|
|
|
|
|
* target.c (debug_to_terminal_init): Add argument.
|
|
|
|
|
(update_current_target): Update.
|
|
|
|
|
* inflow.c (terminal_init_inferior): Add 'self' argument.
|
|
|
|
|
* inferior.h (terminal_init_inferior): Add 'self' argument.
|
|
|
|
|
* go32-nat.c (go32_terminal_init): Add 'self' argument.
|
|
|
|
|
* gnu-nat.c (gnu_terminal_init_inferior): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:29:57 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops)
|
|
|
|
|
<to_can_accel_watchpoint_condition>: Add argument.
|
|
|
|
|
(target_can_accel_watchpoint_condition): Add argument.
|
|
|
|
|
* target.c (debug_to_can_accel_watchpoint_condition): Add
|
|
|
|
|
argument.
|
|
|
|
|
(update_current_target): Update.
|
|
|
|
|
* ppc-linux-nat.c (ppc_linux_can_accel_watchpoint_condition): Add
|
|
|
|
|
'self' argument.
|
|
|
|
|
|
2013-12-18 04:29:45 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_region_ok_for_hw_watchpoint>:
|
|
|
|
|
Add argument.
|
|
|
|
|
(target_region_ok_for_hw_watchpoint): Add argument.
|
|
|
|
|
* target.c (debug_to_region_ok_for_hw_watchpoint): Add argument.
|
|
|
|
|
(default_region_ok_for_hw_watchpoint): Add argument.
|
|
|
|
|
* spu-multiarch.c (spu_region_ok_for_hw_watchpoint): Add argument.
|
|
|
|
|
* s390-linux-nat.c (s390_region_ok_for_hw_watchpoint): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* remote.c (remote_region_ok_for_hw_watchpoint): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* procfs.c (procfs_region_ok_for_hw_watchpoint): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* ppc-linux-nat.c (ppc_linux_region_ok_for_hw_watchpoint): Add
|
|
|
|
|
'self' argument.
|
|
|
|
|
* mips-linux-nat.c (mips_linux_region_ok_for_hw_watchpoint): Add
|
|
|
|
|
'self' argument.
|
|
|
|
|
* inf-ttrace.c (inf_ttrace_region_ok_for_hw_watchpoint): Add
|
|
|
|
|
'self' argument.
|
|
|
|
|
* i386-nat.c (i386_region_ok_for_watchpoint): Add 'self' argument.
|
|
|
|
|
* arm-linux-nat.c (arm_linux_region_ok_for_hw_watchpoint): Add
|
|
|
|
|
'self' argument.
|
|
|
|
|
* aarch64-linux-nat.c (aarch64_linux_region_ok_for_hw_watchpoint):
|
|
|
|
|
Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:29:31 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_insert_watchpoint>: Add
|
|
|
|
|
argument.
|
|
|
|
|
(target_insert_watchpoint): Add argument.
|
|
|
|
|
* target.c (debug_to_insert_watchpoint): Add argument.
|
|
|
|
|
(update_current_target): Update.
|
|
|
|
|
* s390-linux-nat.c (s390_insert_watchpoint): Add 'self' argument.
|
|
|
|
|
* remote.c (remote_insert_watchpoint): Add 'self' argument.
|
|
|
|
|
* remote-mips.c (mips_insert_watchpoint): Add 'self' argument.
|
|
|
|
|
* remote-m32r-sdi.c (m32r_insert_watchpoint): Add 'self' argument.
|
|
|
|
|
* procfs.c (procfs_insert_watchpoint): Add 'self' argument.
|
|
|
|
|
* ppc-linux-nat.c (ppc_linux_insert_watchpoint): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* nto-procfs.c (procfs_insert_hw_watchpoint): Add 'self' argument.
|
|
|
|
|
(procfs_insert_hw_watchpoint): Add 'self' argument.
|
|
|
|
|
* mips-linux-nat.c (mips_linux_insert_watchpoint): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* inf-ttrace.c (inf_ttrace_insert_watchpoint): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* ia64-linux-nat.c (ia64_linux_insert_watchpoint): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* i386-nat.c (i386_insert_watchpoint): Add 'self' argument.
|
|
|
|
|
* arm-linux-nat.c (arm_linux_insert_watchpoint): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* aarch64-linux-nat.c (aarch64_linux_insert_watchpoint): Add
|
|
|
|
|
'self' argument.
|
|
|
|
|
|
2013-12-18 04:29:17 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_remove_watchpoint>: Add
|
|
|
|
|
argument.
|
|
|
|
|
(target_remove_watchpoint): Add argument.
|
|
|
|
|
* target.c (debug_to_remove_watchpoint): Add argument.
|
|
|
|
|
(update_current_target): Update.
|
|
|
|
|
* s390-linux-nat.c (s390_remove_watchpoint): Add 'self' argument.
|
|
|
|
|
* remote.c (remote_remove_watchpoint): Add 'self' argument.
|
|
|
|
|
* remote-mips.c (mips_remove_watchpoint): Add 'self' argument.
|
|
|
|
|
* remote-m32r-sdi.c (m32r_remove_watchpoint): Add 'self' argument.
|
|
|
|
|
* procfs.c (procfs_remove_watchpoint): Add 'self' argument.
|
|
|
|
|
* ppc-linux-nat.c (ppc_linux_remove_watchpoint): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* nto-procfs.c (procfs_remove_hw_watchpoint): Add 'self' argument.
|
|
|
|
|
* mips-linux-nat.c (mips_linux_remove_watchpoint): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* inf-ttrace.c (inf_ttrace_remove_watchpoint): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* ia64-linux-nat.c (ia64_linux_remove_watchpoint): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* i386-nat.c (i386_remove_watchpoint): Add 'self' argument.
|
|
|
|
|
* arm-linux-nat.c (arm_linux_remove_watchpoint): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* aarch64-linux-nat.c (aarch64_linux_remove_watchpoint): Add
|
|
|
|
|
'self' argument.
|
|
|
|
|
|
2013-12-18 04:29:03 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_remove_hw_breakpoint>: Add
|
|
|
|
|
argument.
|
|
|
|
|
(target_remove_hw_breakpoint): Add argument.
|
|
|
|
|
* target.c (debug_to_remove_hw_breakpoint): Add argument.
|
|
|
|
|
(update_current_target): Update.
|
|
|
|
|
* remote.c (remote_remove_hw_breakpoint): Add 'self' argument.
|
|
|
|
|
* ppc-linux-nat.c (ppc_linux_remove_hw_breakpoint): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* i386-nat.c (i386_remove_hw_breakpoint): Add 'self' argument.
|
|
|
|
|
* arm-linux-nat.c (arm_linux_remove_hw_breakpoint): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* aarch64-linux-nat.c (aarch64_linux_remove_hw_breakpoint): Add
|
|
|
|
|
'self' argument.
|
|
|
|
|
|
2013-12-18 04:28:50 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_insert_hw_breakpoint>: Add
|
|
|
|
|
argument.
|
|
|
|
|
(target_insert_hw_breakpoint): Add argument.
|
|
|
|
|
* target.c (debug_to_insert_hw_breakpoint): Add argument.
|
|
|
|
|
(update_current_target): Update.
|
|
|
|
|
* remote.c (remote_insert_hw_breakpoint): Add 'self' argument.
|
|
|
|
|
* ppc-linux-nat.c (ppc_linux_insert_hw_breakpoint): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* nto-procfs.c (procfs_insert_hw_breakpoint): Add 'self' argument.
|
|
|
|
|
* i386-nat.c (i386_insert_hw_breakpoint): Add 'self' argument.
|
|
|
|
|
* arm-linux-nat.c (arm_linux_insert_hw_breakpoint): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* aarch64-linux-nat.c (aarch64_linux_insert_hw_breakpoint): Add
|
|
|
|
|
'self' argument.
|
|
|
|
|
|
2013-12-18 04:28:37 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_can_use_hw_breakpoint>: Add
|
|
|
|
|
argument.
|
|
|
|
|
(target_can_use_hardware_watchpoint): Add argument.
|
|
|
|
|
* target.c (debug_to_can_use_hw_breakpoint): Add argument.
|
|
|
|
|
(update_current_target): Update.
|
|
|
|
|
* spu-linux-nat.c (spu_can_use_hw_breakpoint): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* s390-linux-nat.c (s390_can_use_hw_breakpoint): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* remote.c (remote_check_watch_resources): Add 'self' argument.
|
|
|
|
|
* remote-mips.c (mips_can_use_watchpoint): Add 'self' argument.
|
|
|
|
|
* remote-m32r-sdi.c (m32r_can_use_hw_watchpoint): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* procfs.c (procfs_can_use_hw_breakpoint): Add 'self' argument.
|
|
|
|
|
* ppc-linux-nat.c (ppc_linux_can_use_hw_breakpoint): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* nto-procfs.c (procfs_can_use_hw_breakpoint): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* mips-linux-nat.c (mips_linux_can_use_hw_breakpoint): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* inf-ttrace.c (inf_ttrace_can_use_hw_breakpoint): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* ia64-linux-nat.c (ia64_linux_can_use_hw_breakpoint): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* ia64-hpux-nat.c (ia64_hpux_can_use_hw_breakpoint): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* i386-nat.c (i386_can_use_hw_breakpoint): Add 'self' argument.
|
|
|
|
|
* arm-linux-nat.c (arm_linux_can_use_hw_breakpoint): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* aarch64-linux-nat.c (aarch64_linux_can_use_hw_breakpoint): Add
|
|
|
|
|
'self' argument.
|
|
|
|
|
|
2013-12-18 04:28:08 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_post_attach>: Add argument.
|
|
|
|
|
(target_post_attach): Add argument.
|
|
|
|
|
* target.c (debug_to_post_attach): Add argument.
|
|
|
|
|
(update_current_target): Update.
|
|
|
|
|
* spu-linux-nat.c (spu_child_post_attach): Add 'self' argument.
|
|
|
|
|
* nto-procfs.c (procfs_post_attach): Add 'self' argument.
|
|
|
|
|
* linux-nat.c (linux_child_post_attach): Add 'self' argument.
|
|
|
|
|
* inf-ptrace.c (inf_ptrace_post_attach): Add 'self' argument.
|
|
|
|
|
* inf-child.c (inf_child_post_attach): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:27:56 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* windows-nat.c (windows_close): Add 'self' argument.
|
|
|
|
|
* tracepoint.c (tfile_close): Add 'self' argument.
|
|
|
|
|
* target.h (struct target_ops) <to_close>: Add argument.
|
|
|
|
|
* target.c (target_close): Add argument.
|
|
|
|
|
(update_current_target): Update.
|
|
|
|
|
* remote.c (remote_close): Add 'self' argument.
|
|
|
|
|
* remote-sim.c (gdbsim_close): Add 'self' argument.
|
|
|
|
|
* remote-mips.c (mips_close): Add 'self' argument.
|
|
|
|
|
* remote-m32r-sdi.c (m32r_close): Add 'self' argument.
|
|
|
|
|
* record-full.c (record_full_close): Add 'self' argument.
|
|
|
|
|
* record-btrace.c (record_btrace_close): Add 'self' argument.
|
|
|
|
|
* monitor.h (monitor_close): Add 'self' argument.
|
|
|
|
|
* monitor.c (monitor_close): Add 'self' argument.
|
|
|
|
|
* mips-linux-nat.c (mips_linux_close): Add 'self' argument.
|
|
|
|
|
* linux-nat.c (linux_nat_close): Add argument.
|
|
|
|
|
* go32-nat.c (go32_close): Add 'self' argument.
|
|
|
|
|
* exec.c (exec_close_1): Add 'self' argument.
|
|
|
|
|
* ctf.c (ctf_close): Add 'self' argument.
|
|
|
|
|
* corelow.c (core_close): Add 'self' argument.
|
|
|
|
|
(core_close_cleanup): Update.
|
|
|
|
|
* bsd-uthread.c (bsd_uthread_close): Add 'self' argument.
|
|
|
|
|
* bsd-kvm.c (bsd_kvm_close): Add 'self' argument.
|
|
|
|
|
|
2013-12-18 04:21:17 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* remote.c (remote_load): New function.
|
|
|
|
|
(init_remote_ops): Use it.
|
|
|
|
|
|
2013-12-13 20:26:04 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* common/linux-btrace.c (linux_supports_btrace): Add "ops"
|
|
|
|
|
argument.
|
|
|
|
|
* common/linux-btrace.h (linux_supports_btrace): Update.
|
|
|
|
|
* remote.c (remote_supports_btrace): Add "self" argument.
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (target_supports_btrace): Remove.
|
|
|
|
|
* target.h (struct target_ops) <to_supports_btrace>: Add
|
|
|
|
|
target_ops argument.
|
|
|
|
|
(target_supports_btrace): New define.
|
|
|
|
|
|
add target method delegation
This patch replaces some code in the record targets with target method
delegation.
record-full.c stores pointers to many target methods when the record
target is pushed. Then it later delegates some calls via these. This
is wrong because it violates the target stack contract. In particular
it is ok to unpush a target at any stratum, but record-full does not
keep track of this, so it could potentially call into an unpushed
target.
This patch fixes the problem by using the newly-introduced generic
approach to target delegation for the methods in question.
2014-02-19 Tom Tromey <tromey@redhat.com>
* record-full.c (record_full_beneath_to_resume_ops)
(record_full_beneath_to_resume, record_full_beneath_to_wait_ops)
(record_full_beneath_to_wait)
(record_full_beneath_to_store_registers_ops)
(record_full_beneath_to_store_registers)
(record_full_beneath_to_xfer_partial_ops)
(record_full_beneath_to_xfer_partial)
(record_full_beneath_to_insert_breakpoint_ops)
(record_full_beneath_to_insert_breakpoint)
(record_full_beneath_to_remove_breakpoint_ops)
(record_full_beneath_to_remove_breakpoint)
(record_full_beneath_to_stopped_by_watchpoint)
(record_full_beneath_to_stopped_data_address)
(record_full_beneath_to_async, tmp_to_resume_ops, tmp_to_resume)
(tmp_to_wait_ops, tmp_to_wait, tmp_to_store_registers_ops)
(tmp_to_store_registers, tmp_to_xfer_partial_ops)
(tmp_to_xfer_partial, tmp_to_instmp_to_insert_breakpoint_ops)
(tmp_to_insert_breakpoint, tmp_to_remove_breakpoint_ops)
(tmp_to_remove_breakpoint, tmp_to_stopped_by_watchpoint)
(tmp_to_stopped_data_address, tmp_to_async): Remove.
(record_full_open_1, record_full_open): Update. Use RECORD_IS_USED.
(record_full_resume, record_full_wait_1)
(record_full_stopped_by_watchpoint, record_full_stopped_data_address)
(record_full_store_registers, record_full_xfer_partial)
(record_full_insert_breakpoint, record_full_remove_breakpoint)
(record_full_async, record_full_core_xfer_partial): Use target
delegation.
* target-delegates.c: Rebuild.
* target.c (current_xfer_partial): Remove.
(update_current_target): Do not INHERIT or de_fault
to_insert_breakpoint, to_remove_breakpoint,
to_stopped_data_address, to_stopped_by_watchpoint, to_can_async_p,
to_is_async_p, to_async. Do not set to_xfer_partial field.
(default_xfer_partial): Simplify.
(current_xfer_partial): Remove.
(target_wait, target_resume): Simplify.
(find_default_can_async_p, find_default_is_async_p): Update.
(init_dummy_target): Don't set to_can_async_p, to_is_async_p,
to_xfer_partial, to_stopped_by_watchpoint,
to_stopped_data_address.
(target_store_registers): Simplify.
(forward_target_remove_breakpoint)
(forward_target_insert_breakpoint): Remove.
(target_remove_breakpoint, target_insert_breakpoint)
(debug_to_insert_breakpoint, debug_to_remove_breakpoint): Update.
* target.h (struct target_ops) <to_resume, to_wait,
to_store_registers, to_insert_breakpoint, to_remove_breakpoint,
to_stopped_by_watchpoint, to_stopped_data_address, to_can_async_p,
to_is_async_p, to_async, to_xfer_partial>: Add TARGET_DEFAULT
markup.
(forward_target_remove_breakpoint)
(forward_target_insert_breakpoint): Remove.
* record-btrace.c (record_btrace_remove_breakpoint): Delegate
directly.
(record_btrace_insert_breakpoint): Delegate directly.
2013-07-12 19:00:34 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* record-full.c (record_full_beneath_to_resume_ops)
|
|
|
|
|
(record_full_beneath_to_resume, record_full_beneath_to_wait_ops)
|
|
|
|
|
(record_full_beneath_to_wait)
|
|
|
|
|
(record_full_beneath_to_store_registers_ops)
|
|
|
|
|
(record_full_beneath_to_store_registers)
|
|
|
|
|
(record_full_beneath_to_xfer_partial_ops)
|
|
|
|
|
(record_full_beneath_to_xfer_partial)
|
|
|
|
|
(record_full_beneath_to_insert_breakpoint_ops)
|
|
|
|
|
(record_full_beneath_to_insert_breakpoint)
|
|
|
|
|
(record_full_beneath_to_remove_breakpoint_ops)
|
|
|
|
|
(record_full_beneath_to_remove_breakpoint)
|
|
|
|
|
(record_full_beneath_to_stopped_by_watchpoint)
|
|
|
|
|
(record_full_beneath_to_stopped_data_address)
|
|
|
|
|
(record_full_beneath_to_async, tmp_to_resume_ops, tmp_to_resume)
|
|
|
|
|
(tmp_to_wait_ops, tmp_to_wait, tmp_to_store_registers_ops)
|
|
|
|
|
(tmp_to_store_registers, tmp_to_xfer_partial_ops)
|
|
|
|
|
(tmp_to_xfer_partial, tmp_to_instmp_to_insert_breakpoint_ops)
|
|
|
|
|
(tmp_to_insert_breakpoint, tmp_to_remove_breakpoint_ops)
|
|
|
|
|
(tmp_to_remove_breakpoint, tmp_to_stopped_by_watchpoint)
|
|
|
|
|
(tmp_to_stopped_data_address, tmp_to_async): Remove.
|
|
|
|
|
(record_full_open_1, record_full_open): Update. Use RECORD_IS_USED.
|
|
|
|
|
(record_full_resume, record_full_wait_1)
|
|
|
|
|
(record_full_stopped_by_watchpoint, record_full_stopped_data_address)
|
|
|
|
|
(record_full_store_registers, record_full_xfer_partial)
|
|
|
|
|
(record_full_insert_breakpoint, record_full_remove_breakpoint)
|
|
|
|
|
(record_full_async, record_full_core_xfer_partial): Use target
|
|
|
|
|
delegation.
|
|
|
|
|
* target-delegates.c: Rebuild.
|
|
|
|
|
* target.c (current_xfer_partial): Remove.
|
|
|
|
|
(update_current_target): Do not INHERIT or de_fault
|
|
|
|
|
to_insert_breakpoint, to_remove_breakpoint,
|
|
|
|
|
to_stopped_data_address, to_stopped_by_watchpoint, to_can_async_p,
|
|
|
|
|
to_is_async_p, to_async. Do not set to_xfer_partial field.
|
|
|
|
|
(default_xfer_partial): Simplify.
|
|
|
|
|
(current_xfer_partial): Remove.
|
|
|
|
|
(target_wait, target_resume): Simplify.
|
|
|
|
|
(find_default_can_async_p, find_default_is_async_p): Update.
|
|
|
|
|
(init_dummy_target): Don't set to_can_async_p, to_is_async_p,
|
|
|
|
|
to_xfer_partial, to_stopped_by_watchpoint,
|
|
|
|
|
to_stopped_data_address.
|
|
|
|
|
(target_store_registers): Simplify.
|
|
|
|
|
(forward_target_remove_breakpoint)
|
|
|
|
|
(forward_target_insert_breakpoint): Remove.
|
|
|
|
|
(target_remove_breakpoint, target_insert_breakpoint)
|
|
|
|
|
(debug_to_insert_breakpoint, debug_to_remove_breakpoint): Update.
|
|
|
|
|
* target.h (struct target_ops) <to_resume, to_wait,
|
|
|
|
|
to_store_registers, to_insert_breakpoint, to_remove_breakpoint,
|
|
|
|
|
to_stopped_by_watchpoint, to_stopped_data_address, to_can_async_p,
|
|
|
|
|
to_is_async_p, to_async, to_xfer_partial>: Add TARGET_DEFAULT
|
|
|
|
|
markup.
|
|
|
|
|
(forward_target_remove_breakpoint)
|
|
|
|
|
(forward_target_insert_breakpoint): Remove.
|
|
|
|
|
* record-btrace.c (record_btrace_remove_breakpoint): Delegate
|
|
|
|
|
directly.
|
|
|
|
|
(record_btrace_insert_breakpoint): Delegate directly.
|
|
|
|
|
|
2013-12-19 16:38:11 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR build/7701:
|
|
|
|
|
* target-delegates.c: New file.
|
|
|
|
|
* target.c: Include target-delegates.c.
|
|
|
|
|
(init_dummy_target): Call install_dummy_methods.
|
|
|
|
|
(complete_target_initialization): Call install_delegators.
|
|
|
|
|
* target.h (TARGET_DEFAULT_IGNORE, TARGET_DEFAULT_NORETURN)
|
|
|
|
|
(TARGET_DEFAULT_RETURN, TARGET_DEFAULT_FUNC): New defines.
|
|
|
|
|
* make-target-delegates: New file.
|
|
|
|
|
|
2013-10-28 18:16:24 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* record.c (find_record_target): Use find_target_at.
|
|
|
|
|
* target.c (find_target_at): New function.
|
|
|
|
|
* target.h (find_target_at): Declare.
|
|
|
|
|
|
add "this" pointers to more target APIs
A subsequent pass introduces delegation helper functions to the target
API. This delegation is much cleaner if the target_ops pointer is
directly available at delegation time.
This patch adds the "this" pointer to various to_* methods for this
purpose.
This updates a number of ports which I am unable to test. Please give
them a look-over. Any possible problem here is trivial, though, as
all that is required is adding an argument to a function.
2014-02-19 Tom Tromey <tromey@redhat.com>
* aarch64-linux-nat.c (aarch64_linux_stopped_by_watchpoint):
Add 'ops' argument.
* arm-linux-nat.c (arm_linux_stopped_by_watchpoint): Add
'ops' argument.
* i386-nat.c (i386_stopped_by_watchpoint): Add 'ops' argument.
* ia64-linux-nat.c (ia64_linux_stopped_by_watchpoint): Add
'ops' argument.
* inf-ttrace.c (inf_ttrace_stopped_by_watchpoint): Add 'ops'
argument.
* linux-nat.c (save_sigtrap): Update.
(linux_nat_stopped_by_watchpoint, linux_nat_is_async_p)
(linux_nat_can_async_p, linux_nat_async): Add 'ops' argument.
(linux_nat_close): Update.
* mips-linux-nat.c (mips_linux_stopped_by_watchpoint): Add 'ops'
argument.
* ppc-linux-nat.c (ppc_linux_stopped_by_watchpoint): Add 'ops'
argument.
* procfs.c (procfs_stopped_by_watchpoint): Add 'ops' argument.
* record-full.c (record_full_beneath_to_stopped_by_watchpoint)
(record_full_beneath_to_async, tmp_to_stopped_by_watchpoint)
(tmp_to_async): Add 'ops' argument.
(record_full_stopped_by_watchpoint, record_full_async)
(record_full_can_async_p, record_full_is_async_p): Add 'ops'
argument.
* remote-m32r-sdi.c (m32r_insert_breakpoint, m32r_remove_breakpoint)
(m32r_stopped_by_watchpoint): Add 'ops' argument.
* remote-mips.c (mips_stopped_by_watchpoint): Add 'ops' argument.
* remote.c (remote_stopped_by_watchpoint_p, remote_can_async_p)
(remote_is_async_p, remote_async): Add 'ops' argument.
(remote_stopped_data_address): Update.
* s390-nat.c (s390_stopped_by_watchpoint): Add 'ops' argument.
* target.c (update_current_target)
(find_default_can_async_p, find_default_is_async_p): Update.
(init_dummy_target): Update.
(debug_to_stopped_by_watchpoint): Add 'ops' argument.
* target.h (struct target_ops) <to_stopped_by_watchpoint,
to_can_async_p, to_is_async_p, to_async>: Add 'ops' argument.
(target_can_async_p, target_is_async_p, target_async)
(target_stopped_by_watchpoint): Update.
2013-07-30 16:36:07 +00:00
|
|
|
|
2014-02-19 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* aarch64-linux-nat.c (aarch64_linux_stopped_by_watchpoint):
|
|
|
|
|
Add 'ops' argument.
|
|
|
|
|
* arm-linux-nat.c (arm_linux_stopped_by_watchpoint): Add
|
|
|
|
|
'ops' argument.
|
|
|
|
|
* i386-nat.c (i386_stopped_by_watchpoint): Add 'ops' argument.
|
|
|
|
|
* ia64-linux-nat.c (ia64_linux_stopped_by_watchpoint): Add
|
|
|
|
|
'ops' argument.
|
|
|
|
|
* inf-ttrace.c (inf_ttrace_stopped_by_watchpoint): Add 'ops'
|
|
|
|
|
argument.
|
|
|
|
|
* linux-nat.c (save_sigtrap): Update.
|
|
|
|
|
(linux_nat_stopped_by_watchpoint, linux_nat_is_async_p)
|
|
|
|
|
(linux_nat_can_async_p, linux_nat_async): Add 'ops' argument.
|
|
|
|
|
(linux_nat_close): Update.
|
|
|
|
|
* mips-linux-nat.c (mips_linux_stopped_by_watchpoint): Add 'ops'
|
|
|
|
|
argument.
|
|
|
|
|
* ppc-linux-nat.c (ppc_linux_stopped_by_watchpoint): Add 'ops'
|
|
|
|
|
argument.
|
|
|
|
|
* procfs.c (procfs_stopped_by_watchpoint): Add 'ops' argument.
|
|
|
|
|
* record-full.c (record_full_beneath_to_stopped_by_watchpoint)
|
|
|
|
|
(record_full_beneath_to_async, tmp_to_stopped_by_watchpoint)
|
|
|
|
|
(tmp_to_async): Add 'ops' argument.
|
|
|
|
|
(record_full_stopped_by_watchpoint, record_full_async)
|
|
|
|
|
(record_full_can_async_p, record_full_is_async_p): Add 'ops'
|
|
|
|
|
argument.
|
|
|
|
|
* remote-m32r-sdi.c (m32r_insert_breakpoint, m32r_remove_breakpoint)
|
|
|
|
|
(m32r_stopped_by_watchpoint): Add 'ops' argument.
|
|
|
|
|
* remote-mips.c (mips_stopped_by_watchpoint): Add 'ops' argument.
|
|
|
|
|
* remote.c (remote_stopped_by_watchpoint_p, remote_can_async_p)
|
|
|
|
|
(remote_is_async_p, remote_async): Add 'ops' argument.
|
|
|
|
|
(remote_stopped_data_address): Update.
|
|
|
|
|
* s390-nat.c (s390_stopped_by_watchpoint): Add 'ops' argument.
|
|
|
|
|
* target.c (update_current_target)
|
|
|
|
|
(find_default_can_async_p, find_default_is_async_p): Update.
|
|
|
|
|
(init_dummy_target): Update.
|
|
|
|
|
(debug_to_stopped_by_watchpoint): Add 'ops' argument.
|
|
|
|
|
* target.h (struct target_ops) <to_stopped_by_watchpoint,
|
|
|
|
|
to_can_async_p, to_is_async_p, to_async>: Add 'ops' argument.
|
|
|
|
|
(target_can_async_p, target_is_async_p, target_async)
|
|
|
|
|
(target_stopped_by_watchpoint): Update.
|
|
|
|
|
|
2014-02-18 06:57:03 +00:00
|
|
|
|
2014-02-19 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR gdb/16220
|
|
|
|
|
* gdbarch.sh: Remove startup_gdbarch.
|
|
|
|
|
* gdbarch.c: Regenerated.
|
|
|
|
|
* gdbarch.h: Likewise.
|
|
|
|
|
|
2014-02-17 19:03:23 +00:00
|
|
|
|
2014-02-17 Kevin Buettner <kevinb@redhat.com>
|
|
|
|
|
|
|
|
|
|
* rl78-tdep.c (rl78_g10_register_name): New function.
|
|
|
|
|
(rl78_return_value): Add g10 support.
|
|
|
|
|
(rl78_gdbarch_init): Register rl78_g10_register_name for the
|
|
|
|
|
g10.
|
|
|
|
|
|
2014-02-17 04:57:43 +00:00
|
|
|
|
2014-02-17 Doug Evans <xdje42@gmail.com>
|
2014-02-17 04:41:29 +00:00
|
|
|
|
|
|
|
|
|
* Makefile.in (SUBDIR_GUILE_OBS): Resort alphabetically.
|
|
|
|
|
(SUBDIR_GUILE_SRCS): Ditto.
|
|
|
|
|
(scm-gsmob.o): Ditto.
|
|
|
|
|
|
2014-02-17 03:20:35 +00:00
|
|
|
|
2014-02-17 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* gnu-nat.c (ILL_RPC): Declare defined function.
|
|
|
|
|
|
2014-02-07 06:35:09 +00:00
|
|
|
|
2014-02-17 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* gnu-nat.c (gnu_read_inferior): Change 'copy_count' type to
|
|
|
|
|
mach_msg_type_number_t.
|
|
|
|
|
(gnu_write_inferior): Likewise.
|
|
|
|
|
|
Fix -Wformat warnings in gnu-nat.c
I've seen some -Wformat warnings when build native gdb for hurd.
../../../git/gdb/gnu-nat.c:2384:8: error: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'vm_address_t' [-Werror=format]
../../../git/gdb/gnu-nat.c:2394:8: error: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'vm_address_t' [-Werror=format]
../../../git/gdb/gnu-nat.c: In function 'steal_exc_port':
../../../git/gdb/gnu-nat.c:2898:5: error: format '%d' expects argument of type 'int', but argument 2 has type 'mach_port_t' [-Werror=format]
in usr/include/mach/port.h, we have:
typedef vm_offset_t mach_port_t;
and in usr/include/mach/machine/vm_types.h, we have:
typedef unsigned long vm_offset_t;
so this patch changes '%d' to '%lu' in format string for mach_port_t
variables.
Similarly, in usr/include/mach/std_types.h, we have,
typedef vm_offset_t vm_address_t;
this patch also changes '%x' to '%lx' in gnu_write_inferior.
gdb:
2014-02-17 Yao Qi <yao@codesourcery.com>
* gnu-nat.c (proc_get_exception_port): Use 'lu' insetad of 'd'
in format string.
(proc_steal_exc_port, make_proc, inf_set_pid): Likewise.
(inf_validate_procs, inf_signal): Likewise.
(S_exception_raise_request): Likewise.
(do_mach_notify_dead_name): Likewise.
(steal_exc_port): Likewise.
(gnu_read_inferior): Change 'copy_count''s type to
mach_msg_type_number_t.
(gnu_write_inferior): Likewise. Use 'lx' instead of 'x' in
format string.
2014-01-05 11:37:27 +00:00
|
|
|
|
2014-02-17 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* gnu-nat.c (proc_get_exception_port): Use 'lu' insetad of 'd'
|
|
|
|
|
in format string.
|
|
|
|
|
(proc_steal_exc_port, make_proc, inf_set_pid): Likewise.
|
|
|
|
|
(inf_validate_procs, inf_signal): Likewise.
|
|
|
|
|
(S_exception_raise_request): Likewise.
|
|
|
|
|
(do_mach_notify_dead_name): Likewise.
|
|
|
|
|
(steal_exc_port): Likewise.
|
|
|
|
|
(gnu_read_inferior): Change 'copy_count''s type to
|
|
|
|
|
mach_msg_type_number_t.
|
|
|
|
|
(gnu_write_inferior): Likewise. Use 'lx' instead of 'x' in
|
|
|
|
|
format string.
|
|
|
|
|
|
2014-01-06 14:56:33 +00:00
|
|
|
|
2014-02-16 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
2014-01-08 20:42:07 +00:00
|
|
|
|
* gnu-nat.c (struct inf): Change pending_execs member to a 1-bit
|
|
|
|
|
flag. Adjust all users; in particular...
|
|
|
|
|
(gnu_wait): ..., don't decrement its value in here...
|
|
|
|
|
(gnu_create_inferior): ..., and instead set the flag in here,
|
|
|
|
|
around the startup_inferior call, and call that one with
|
|
|
|
|
START_INFERIOR_TRAPS_EXPECTED.
|
|
|
|
|
|
Hurd: New RPC reply stub functions.
gdb/
* gnu-nat.c (ill_rpc): Remove function; replaced with this...
(ILL_RPC): ... new macro.
(do_mach_notify_no_senders, do_mach_notify_port_deleted)
(do_mach_notify_msg_accepted, do_mach_notify_port_destroyed)
(do_mach_notify_send_once, S_proc_setmsgport_reply)
(S_proc_getmsgport_reply, S_msg_sig_post_reply): Generate stub
functions with ILL_RPC macro.
(S_proc_pid2task_reply, S_proc_task2pid_reply)
(S_proc_task2proc_reply, S_proc_proc2task_reply)
(S_proc_pid2proc_reply, S_proc_getprocinfo_reply)
(S_proc_getprocargs_reply, S_proc_getprocenv_reply)
(S_proc_getloginid_reply, S_proc_getloginpids_reply)
(S_proc_getlogin_reply, S_proc_getsid_reply)
(S_proc_getsessionpgids_reply, S_proc_getsessionpids_reply)
(S_proc_getsidport_reply, S_proc_getpgrp_reply)
(S_proc_getpgrppids_reply, S_proc_get_tty_reply)
(S_proc_getnports_reply, S_proc_is_important_reply)
(S_proc_get_code_reply): New stub functions, generated with
ILL_RPC macro.
Based on a patch by David Michael <fedora.dm0@gmail.com>.
2014-01-06 15:28:00 +00:00
|
|
|
|
* gnu-nat.c (ill_rpc): Remove function; replaced with this...
|
|
|
|
|
(ILL_RPC): ... new macro.
|
|
|
|
|
(do_mach_notify_no_senders, do_mach_notify_port_deleted)
|
|
|
|
|
(do_mach_notify_msg_accepted, do_mach_notify_port_destroyed)
|
|
|
|
|
(do_mach_notify_send_once, S_proc_setmsgport_reply)
|
|
|
|
|
(S_proc_getmsgport_reply, S_msg_sig_post_reply): Generate stub
|
|
|
|
|
functions with ILL_RPC macro.
|
|
|
|
|
(S_proc_pid2task_reply, S_proc_task2pid_reply)
|
|
|
|
|
(S_proc_task2proc_reply, S_proc_proc2task_reply)
|
|
|
|
|
(S_proc_pid2proc_reply, S_proc_getprocinfo_reply)
|
|
|
|
|
(S_proc_getprocargs_reply, S_proc_getprocenv_reply)
|
|
|
|
|
(S_proc_getloginid_reply, S_proc_getloginpids_reply)
|
|
|
|
|
(S_proc_getlogin_reply, S_proc_getsid_reply)
|
|
|
|
|
(S_proc_getsessionpgids_reply, S_proc_getsessionpids_reply)
|
|
|
|
|
(S_proc_getsidport_reply, S_proc_getpgrp_reply)
|
|
|
|
|
(S_proc_getpgrppids_reply, S_proc_get_tty_reply)
|
|
|
|
|
(S_proc_getnports_reply, S_proc_is_important_reply)
|
|
|
|
|
(S_proc_get_code_reply): New stub functions, generated with
|
|
|
|
|
ILL_RPC macro.
|
|
|
|
|
|
2014-01-06 15:01:08 +00:00
|
|
|
|
* reply_mig_hack.awk: In phase 5, keep going if we have not yet
|
|
|
|
|
collected the type check structures.
|
|
|
|
|
|
2014-01-06 14:56:33 +00:00
|
|
|
|
* reply_mig_hack.awk: Don't expect to see the auto keyword.
|
|
|
|
|
|
2014-02-14 22:57:37 +00:00
|
|
|
|
2014-02-14 Doug Evans <dje@google.com>
|
|
|
|
|
|
|
|
|
|
* target.c (target_write_partial): Fix result type.
|
|
|
|
|
|
2014-02-14 10:29:11 +00:00
|
|
|
|
2014-02-14 Jose E. Marchesi <jose.marchesi@oracle.com>
|
|
|
|
|
|
|
|
|
|
* sparc64-linux-nat.c (_initialize_sparc64_linux_nat): Register
|
|
|
|
|
the proper offsets to access fpregset_t.
|
|
|
|
|
|
2014-02-13 12:41:24 +00:00
|
|
|
|
2014-02-13 Sanimir Agovic <sanimir.agovic@intel.com>
|
|
|
|
|
|
|
|
|
|
* cris-tdep.c (cris_supply_gregset): Remove zerobuf.
|
|
|
|
|
(_initialize_cris_tdep): Remove cris_set_cmdlist, cris_show_cmdlist.
|
|
|
|
|
* h8300-tdep.c (setmachinelist): Remove global.
|
|
|
|
|
* hppa-tdep.c (hppa_sigtramp): Remove global.
|
|
|
|
|
* mipsnbsd-tdep.c (sigtramp_retcode_mipsel, sigtramp_retcode_mipseb
|
|
|
|
|
RETCODE_NWORDS, RETCODE_SIZE): Wrap code with #if 0.
|
|
|
|
|
* ravenscar-thread.c (update_target_observer): Remove global.
|
|
|
|
|
* rs6000-tdep.c (rs6000_gdbarch_init): Remove segment_regs.
|
|
|
|
|
|
2014-01-20 17:38:07 +00:00
|
|
|
|
2014-02-12 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* common/rsp-low.c: Update comments.
|
|
|
|
|
* common/rsp-low.h: Update comments.
|
|
|
|
|
|
2014-01-19 02:42:15 +00:00
|
|
|
|
2014-02-12 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* common/rsp-low.c (convert_ascii_to_int): Remove.
|
|
|
|
|
* common/rsp-low.h (convert_ascii_to_int): Don't declare.
|
|
|
|
|
|
2014-01-19 02:41:08 +00:00
|
|
|
|
2014-02-12 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* common/rsp-low.h (unhexify): Don't declare.
|
|
|
|
|
* common/rsp-low.c (unhexify): Remove.
|
|
|
|
|
|
2014-01-19 02:34:15 +00:00
|
|
|
|
2014-02-12 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* common/rsp-low.h (convert_int_to_ascii): Don't declare.
|
|
|
|
|
* common/rsp-low.c (convert_int_to_ascii): Remove.
|
|
|
|
|
|
2014-01-19 02:30:20 +00:00
|
|
|
|
2014-02-12 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* common/rsp-low.h (hexify): Don't declare.
|
|
|
|
|
* common/rsp-low.c (hexify): Remove.
|
|
|
|
|
|
2014-01-19 02:25:57 +00:00
|
|
|
|
2014-02-12 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* common/rsp-low.c (hexify): Never take strlen of argument.
|
|
|
|
|
|
2014-01-18 21:42:54 +00:00
|
|
|
|
2014-02-12 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* common/rsp-low.c (bin2hex): Never take strlen of argument.
|
|
|
|
|
* remote.c (extended_remote_run, remote_rcmd)
|
|
|
|
|
(remote_download_trace_state_variable, remote_save_trace_data)
|
|
|
|
|
(remote_set_trace_notes): Update.
|
|
|
|
|
* tracepoint.c (encode_source_string, tfile_write_status)
|
|
|
|
|
(tfile_write_uploaded_tsv): Update.
|
|
|
|
|
|
move some rsp bits into rsp-low.h
This moves various low-level remote serial protocol bits into
common/rsp-low.[ch].
This is as close to a pure move as possible. There are some
redundancies remaining but those will be dealt with in a subsequent
patch.
Note that the two variants of remote_escape_output disagreed on the
treatment of "*". On the theory that quoting cannot hurt but the
absence possibly can, I chose the gdbserver variant to be the
canonical one.
2014-02-12 Tom Tromey <tromey@redhat.com>
* tracepoint.c: Include rsp-low.h.
* remote.h (hex2bin, bin2hex, unpack_varlen_hex): Don't declare.
* remote.c: Include rsp-low.h.
(hexchars, ishex, unpack_varlen_hex, pack_nibble, pack_hex_byte)
(fromhex, hex2bin, tohex, bin2hex, remote_escape_output)
(remote_unescape_input): Move to common/rsp-low.c.
* common/rsp-low.h: New file.
* common/rsp-low.c: New file.
* Makefile.in (SFILES): Add common/rsp-low.c.
(HFILES_NO_SRCDIR): Add common/rsp-low.h.
(COMMON_OBS): Add rsp-low.o.
(rsp-low.o): New target.
2014-02-12 Tom Tromey <tromey@redhat.com>
* tracepoint.c: Include rsp-low.h.
* server.c: Include rsp-low.h.
* remote-utils.h (convert_ascii_to_int, convert_int_to_ascii)
(unhexify, hexify, remote_escape_output, unpack_varlen_hex): Don't
declare.
* remote-utils.c: Include rsp-low.h.
(fromhex, hexchars, ishex, unhexify, tohex, hexify)
(remote_escape_output, remote_unescape_input, unpack_varlen_hex)
(convert_int_to_ascii, convert_ascii_to_int): Move to
common/rsp-low.c.
* regcache.c: Include rsp-low.h.
* ax.c: Include rsp-low.h.
* Makefile.in (SFILES): Add common/rsp-low.c.
(OBS): Add rsp-low.o.
(rsp-low.o): New target.
2014-01-18 21:32:47 +00:00
|
|
|
|
2014-02-12 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* tracepoint.c: Include rsp-low.h.
|
|
|
|
|
* remote.h (hex2bin, bin2hex, unpack_varlen_hex): Don't declare.
|
|
|
|
|
* remote.c: Include rsp-low.h.
|
|
|
|
|
(hexchars, ishex, unpack_varlen_hex, pack_nibble, pack_hex_byte)
|
|
|
|
|
(fromhex, hex2bin, tohex, bin2hex, remote_escape_output)
|
|
|
|
|
(remote_unescape_input): Move to common/rsp-low.c.
|
|
|
|
|
* common/rsp-low.h: New file.
|
|
|
|
|
* common/rsp-low.c: New file.
|
|
|
|
|
* Makefile.in (SFILES): Add common/rsp-low.c.
|
|
|
|
|
(HFILES_NO_SRCDIR): Add common/rsp-low.h.
|
|
|
|
|
(COMMON_OBS): Add rsp-low.o.
|
|
|
|
|
(rsp-low.o): New target.
|
|
|
|
|
|
share "cell" code
The "cell"-based printing code, like phex, was duplicated in both gdb
and gdbserver. This patch merges the two implementations into a new
file in common/.
2014-02-12 Tom Tromey <tromey@redhat.com>
* utils.h: Include print-utils.h.
(host_address_to_string, plongest, pulongest, phex, phex_nz)
(int_string, core_addr_to_string, core_addr_to_string_nz)
(hex_string, hex_string_custom): Don't declare.
* utils.c (NUMCELLS, CELLSIZE, get_cell, decimal2str, pulongest)
(plongest, thirty_two, phex, phex_nz, octal2str, hex_string)
(hex_string_custom, int_string, core_addr_to_string)
(core_addr_to_string_nz, host_address_to_string): Move to
common/print-utils.c.
* common/print-utils.h: New file.
* common/print-utils.c: New file
* Makefile.in (SFILES): Add common/print-utils.c.
(HFILES_NO_SRCDIR): Add common/print-utils.h.
(COMMON_OBS): Add print-utils.o.
(print-utils.o): New target.
2014-02-12 Tom Tromey <tromey@redhat.com>
* utils.h (pulongest, plongest, phex_nz): Don't declare.
Include print-utils.h.
* utils.c (NUMCELLS, CELLSIZE, get_cell, decimal2str, pulongest)
(plongest, thirty_two, phex_nz): Remove.
* Makefile.in (SFILES): Add common/print-utils.c.
(OBS): Add print-utils.o.
(print-utils-ipa.o): New target.
(print-utils.o): New target.
(IPA_OBJS): Add print-utils-ipa.o.
2014-01-17 04:41:58 +00:00
|
|
|
|
2014-02-12 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* utils.h: Include print-utils.h.
|
|
|
|
|
(host_address_to_string, plongest, pulongest, phex, phex_nz)
|
|
|
|
|
(int_string, core_addr_to_string, core_addr_to_string_nz)
|
|
|
|
|
(hex_string, hex_string_custom): Don't declare.
|
|
|
|
|
* utils.c (NUMCELLS, CELLSIZE, get_cell, decimal2str, pulongest)
|
|
|
|
|
(plongest, thirty_two, phex, phex_nz, octal2str, hex_string)
|
|
|
|
|
(hex_string_custom, int_string, core_addr_to_string)
|
|
|
|
|
(core_addr_to_string_nz, host_address_to_string): Move to
|
|
|
|
|
common/print-utils.c.
|
|
|
|
|
* common/print-utils.h: New file.
|
|
|
|
|
* common/print-utils.c: New file
|
|
|
|
|
* Makefile.in (SFILES): Add common/print-utils.c.
|
|
|
|
|
(HFILES_NO_SRCDIR): Add common/print-utils.h.
|
|
|
|
|
(COMMON_OBS): Add print-utils.o.
|
|
|
|
|
(print-utils.o): New target.
|
|
|
|
|
|
2014-02-12 16:20:02 +00:00
|
|
|
|
2014-02-12 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* nios2-tdep.c (nios2_stub_frame_base_address): Remove.
|
|
|
|
|
|
2014-02-12 13:59:48 +00:00
|
|
|
|
2014-02-12 Mark Kettenis <kettenis@gnu.org>
|
|
|
|
|
|
|
|
|
|
* sparc64obsd-tdep.c (sparc64obsd_init_abi): Call obsd_init_abi.
|
|
|
|
|
|
2014-02-12 13:51:19 +00:00
|
|
|
|
2014-02-12 Mark Kettenis <kettenis@gnu.org>
|
|
|
|
|
|
|
|
|
|
* inf-ptrace.c (inf_ptrace_xfer_partial): Return TARGET_XFER_EOF
|
|
|
|
|
if a PT_IO ptrace request returns sucessfully but indicates that 0
|
|
|
|
|
bytes were transferred.
|
|
|
|
|
|
Explicitly mark vtables as code space
Ports for Hardvard architectures will typically have in their
pointer_to_address hook a check for TYPE_CODE_SPACE in their
"pointer_to_address" gdbarch method. E.g., rl78's:
/* Is it a code address? */
if (TYPE_CODE (TYPE_TARGET_TYPE (type)) == TYPE_CODE_FUNC
|| TYPE_CODE (TYPE_TARGET_TYPE (type)) == TYPE_CODE_METHOD
|| TYPE_CODE_SPACE (TYPE_TARGET_TYPE (type))
|| TYPE_LENGTH (type) == 4)
return rl78_make_instruction_address (addr);
else
return rl78_make_data_address (addr);
The avr port is similar.
The vtable type is a struct type gdb itself bakes. Being neither a
function, nor a method, and absent explicit flagging as residing in
code space, ends up being considered data.
This patch marks the type as code when it is created, on the theory
that this is needed for all Hardvard architectures. I believe this
should make no difference on archs with flat address space. Testing
on x86-64 GNU/Linux shows no changes.
gdb/
2014-02-12 Pedro Alves <palves@redhat.com>
Kevin Buettner <kevinb@redhat.com>
* gnu-v3-abi.c (build_gdb_vtable_type): Return a type marked with
TYPE_INSTANCE_FLAG_CODE_SPACE.
Kevin Buettner, at
<https://sourceware.org/ml/gdb-patches/2014-02/msg00338.html>, writes,
re. rl78:
This patch, for rl78 using the default multilib, fixes 5 failures in
gdb.cp/casts.exp, 2 failures in gdb.cp/class2.exp, 115 failures in
gdb.mi/mi-var-rtti.exp, and 2 failures in gdb.python/py-value.exp.
It introduces 9 failures (regressions) in gdb.mi/mi-var-rtti.exp.
One of the regressions is:
FAIL: gdb.mi/mi-var-rtti.exp: list children of s.public in type_update_when_use_rtti
The relevant lines from the log file from a pre-patch test run are as
follows:
-var-list-children S.public
^done,numchild="1",children=[child={name="S.public.ptr",exp="ptr",numchild="1",type="Base *",thread-id="1"}],has_more="0"
(gdb)
PASS: gdb.mi/mi-var-rtti.exp: list children of s.public in type_update_when_use_rtti
Expecting: \^done,numchild=".*",children=\[child={name="S.public.ptr.public",exp="public",numchild="1"(,thread-id="[0-9]+")?}.*\],has_more="0"
Expecting: ^(-var-list-children S\.public\.ptr [
]+)?(\^done,numchild=".*",children=\[child={name="S.public.ptr.public",exp="public",numchild="1"(,thread-id="[0-9]+")?}.*\],has_more="0"[
]+[(]gdb[)]
[ ]*)
The same set of lines for the failing (post-patch) run are instead:
-var-list-children S.public
&"warning: can't find linker symbol for virtual table for `Base' value\n"
&"warning: found `typeinfo for __cxxabiv1::__vmi_class_type_info' instead\n"
&"warning: can't find linker symbol for virtual table for `Base' value\n"
&"warning: found `typeinfo for __cxxabiv1::__vmi_class_type_info' instead\n"
&"warning: can't find linker symbol for virtual table for `Base' value\n"
&"warning: found `typeinfo for __cxxabiv1::__vmi_class_type_info' instead\n"
^done,numchild="1",children=[child={name="S.public.ptr",exp="ptr",numchild="1",type="Base *",thread-id="1"}],has_more="0"
(gdb)
FAIL: gdb.mi/mi-var-rtti.exp: list children of s.public in type_update_when_use_rtti
Expecting: \^done,numchild=".*",children=\[child={name="S.public.ptr.public",exp="public",numchild="1"(,thread-id="[0-9]+")?}.*\],has_more="0"
Expecting: ^(-var-list-children S\.public\.ptr [
]+)?(\^done,numchild=".*",children=\[child={name="S.public.ptr.public",exp="public",numchild="1"(,thread-id="[0-9]+")?}.*\],has_more="0"[
]+[(]gdb[)]
[ ]*)
Note that the difference between these are the warnings regarding
linker symbols. Aside from the warnings, the result is the same.
I.e. gdb produces the correct answer despite the warnings. The
reason for the other 8 failures is the same: the test harness is not
expecting these warnings.
I spent some time (a while ago) looking at the reason for these
warnings. As I recall, we are now getting further along in the type
resolution process than we were without my patch. I.e. for the
example above, the code in question never got to the point where it
was looking for the specified linker symbol. So it seems to me that,
at worst, my patch exposes some other problem, but is not directly the
cause of the problem.
2014-02-12 13:30:21 +00:00
|
|
|
|
2014-02-12 Pedro Alves <palves@redhat.com>
|
|
|
|
|
Kevin Buettner <kevinb@redhat.com>
|
|
|
|
|
|
|
|
|
|
* gnu-v3-abi.c (build_gdb_vtable_type): Return a type marked with
|
|
|
|
|
TYPE_INSTANCE_FLAG_CODE_SPACE.
|
|
|
|
|
|
2014-02-12 12:27:50 +00:00
|
|
|
|
2014-02-12 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* h8300-tdep.c (pseudo_from_raw_register)
|
|
|
|
|
(raw_from_pseudo_register): New functions.
|
|
|
|
|
(h8300_pseudo_register_read, h8300_pseudo_register_write): Use
|
|
|
|
|
them.
|
|
|
|
|
|
H8/300: Fix gdb<->sim register mapping.
Currently, printing the H8/300 ccr register when debugging with the
sim is broken:
(gdb) target sim
...
(gdb) load
...
(gdb) start
...
Breakpoint 1, foo (i=0x0 <foo>) at main.c:4
4 {
(gdb) info registers ccr
Register 13 is not available
'13' is the ccr pseudo-register. This pseudo-register provides an
8-bit view into the raw ccr register (regno=8).
The problem is that the H8/300 port does not define a
register_sim_regno gdbarch hook, and thus when fetching the raw
register off of the sim, we end up in legacy_register_sim_regno trying
to figure out the sim register number for the raw CCR register:
int
legacy_register_sim_regno (struct gdbarch *gdbarch, int regnum)
{
/* Only makes sense to supply raw registers. */
gdb_assert (regnum >= 0 && regnum < gdbarch_num_regs (gdbarch));
/* NOTE: cagney/2002-05-13: The old code did it this way and it is
suspected that some GDB/SIM combinations may rely on this
behavour. The default should be one2one_register_sim_regno
(below). */
if (gdbarch_register_name (gdbarch, regnum) != NULL
&& gdbarch_register_name (gdbarch, regnum)[0] != '\0')
return regnum;
else
return LEGACY_SIM_REGNO_IGNORE;
}
Because the raw ccr register does not have a name (so that it is
hidden from the user), that returns LEGACY_SIM_REGNO_IGNORE. That
means that we never actually read the value of the raw ccr register.
Before the <unavailable> support, this must have meant that ccr was
_always_ read as 0... At least, I'm not seeing how this ever worked.
The fix for that is adding a gdbarch_register_sim_regno hook that maps
all raw registers. Looking at sim/h8300/sim-main.h, I believe the
sim's register numbers are compatible with gdb's, so no actual
convertion is necessary.
gdb/
2014-02-12 Pedro Alves <palves@redhat.com>
* h8300-tdep.c (h8300_register_sim_regno): New function.
(h8300_gdbarch_init): Install h8300_register_sim_regno as
gdbarch_register_sim_regno hook.
2014-02-12 12:27:49 +00:00
|
|
|
|
2014-02-12 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* h8300-tdep.c (h8300_register_sim_regno): New function.
|
|
|
|
|
(h8300_gdbarch_init): Install h8300_register_sim_regno as
|
|
|
|
|
gdbarch_register_sim_regno hook.
|
|
|
|
|
|
2014-02-10 17:54:15 +00:00
|
|
|
|
2014-02-12 Sanimir Agovic <sanimir.agovic@intel.com>
|
|
|
|
|
|
|
|
|
|
* nios2-tdep.c (nios2_stub_frame_base): Remove global.
|
|
|
|
|
|
2014-02-10 18:00:01 +00:00
|
|
|
|
2014-02-12 Sanimir Agovic <sanimir.agovic@intel.com>
|
|
|
|
|
|
|
|
|
|
* tic6x-tdep.c (tic6x_gdbarch_init): Call frame_base_set_default.
|
|
|
|
|
|
2014-02-12 11:08:28 +00:00
|
|
|
|
2014-02-12 Mark Kettenis <kettenis@gnu.org>
|
|
|
|
|
|
|
|
|
|
* obsd-tdep.h (obsd_init_abi): New prototype.
|
|
|
|
|
* obsd-tdep.c: Define enum with OpenBSD signal numbers.
|
|
|
|
|
(obsd_gdb_signal_from_target, obsd_gdb_signal_to_target)
|
|
|
|
|
(obsd_init_abi): New functions.
|
|
|
|
|
* i386obsd-tdep.c: Include "obsd-tdep.h".
|
|
|
|
|
(i386obsd_init_abi): Call obsd_init_abi.
|
|
|
|
|
* amd64obsd-tdep.c: Include "obsd-tdep.h".
|
|
|
|
|
(amd64obsd_init_abi): Call obsd_init_abi.
|
|
|
|
|
* configure.tgt (i[34567]86-*-openbsd*, x86_64-*-openbsd*): Add
|
|
|
|
|
obsd-tdep.c to gdb_target_obs.
|
|
|
|
|
|
2014-02-11 12:27:20 +00:00
|
|
|
|
2014-02-11 Jose E. Marchesi <jose.marchesi@oracle.com>
|
|
|
|
|
|
|
|
|
|
* sparc64-tdep.c (sparc64_store_arguments): Do not align complex
|
|
|
|
|
double float arguments to 16-byte in the argument slots.
|
|
|
|
|
|
2014-02-11 07:04:38 +00:00
|
|
|
|
2014-02-11 Doug Evans <xdje42@gmail.com>
|
|
|
|
|
|
|
|
|
|
* configure.ac: Don't crash if pkg-config is not found and guile
|
|
|
|
|
wasn't explicitly requested. Use AC_MSG_ERROR instead of AC_ERROR
|
|
|
|
|
in guile checks.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2014-01-30 00:23:14 +00:00
|
|
|
|
2014-02-11 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* aix-thread.c (aix_thread_xfer_partial): Update comments.
|
|
|
|
|
* auxv.c (procfs_xfer_auxv, memory_xfer_auxv): Likewise.
|
|
|
|
|
* bsd-uthread.c (bsd_uthread_xfer_partial): Likewise.
|
|
|
|
|
* gnu-nat.c (gnu_xfer_memory): Likewise.
|
|
|
|
|
* inf-ptrace.c (inf_ptrace_xfer_partial): Likewise.
|
|
|
|
|
* rs6000-nat.c (rs6000_xfer_partial): Likewise.
|
|
|
|
|
* sparc-nat.c (sparc_xfer_wcookie): Likewise.
|
|
|
|
|
* spu-linux-nat.c (spu_proc_xfer_spu): Likewise.
|
|
|
|
|
|
Return target_xfer_status in to_xfer_partial
This patch does the conversion of to_xfer_partial from
LONGEST (*to_xfer_partial) (struct target_ops *ops,
enum target_object object, const char *annex,
gdb_byte *readbuf, const gdb_byte *writebuf,
ULONGEST offset, ULONGEST len);
to
enum target_xfer_status (*to_xfer_partial) (struct target_ops *ops,
enum target_object object, const char *annex,
gdb_byte *readbuf, const gdb_byte *writebuf,
ULONGEST offset, ULONGEST len, ULONGEST *xfered_len);
It changes to_xfer_partial return the transfer status and the transfered
length by *XFERED_LEN. Generally, the return status has three stats,
- TARGET_XFER_OK,
- TARGET_XFER_EOF,
- TARGET_XFER_E_XXXX,
See the comments to them in 'enum target_xfer_status'. Note that
Pedro suggested not name TARGET_XFER_DONE, as it is confusing,
compared with "TARGET_XFER_OK". We finally name it TARGET_XFER_EOF.
With this change, GDB core can handle unavailable data in a convenient
way.
The rationale behind this change was mentioned here
https://sourceware.org/ml/gdb-patches/2013-10/msg00761.html
Consider an object/value like this:
0 100 150 200 512
DDDDDDDDDDDxxxxxxxxxDDDDDD...DDIIIIIIIIIIII..III
where D is valid data, and xxx is unavailable data, and I is beyond
the end of the object (Invalid). Currently, if we start the
xfer at 0, requesting, say 512 bytes, we'll first get back 100 bytes.
The xfer machinery then retries fetching [100,512), and gets back
TARGET_XFER_E_UNAVAILABLE. That's sufficient when you're either
interested in either having the whole of the 512 bytes available,
or erroring out. But, in this scenario, we're interested in
the data at [150,512). The problem is that the last
TARGET_XFER_E_UNAVAILABLE gives us no indication where to
start the read next. We'd need something like:
get me [0,512) >>>
<<< here's [0,100), *xfered_len is 100, returns TARGET_XFER_OK
get me [100,512) >>> (**1)
<<< [100,150) is unavailable, *xfered_len is 50, return TARGET_XFER_E_UNAVAILABLE.
get me [150,512) >>>
<<< here's [150,200), *xfered_len is 50, return TARGET_XFER_OK.
get me [200,512) >>>
<<< no more data, return TARGET_XFER_EOF.
This naturally implies pushing down the decision of whether
to return TARGET_XFER_E_UNAVAILABLE or something else
down to the target. (Which kinds of leads back to tfile
itself reading from RO memory from file (though we could
export a function in exec.c for that that tfile delegates to,
instead of re-adding the old code).
Beside this change, we also add a macro TARGET_XFER_STATUS_ERROR_P to
check whether a status is an error or not, to stop using "status < 0".
This patch also eliminates the comparison between status and 0.
No target implementations to to_xfer_partial adapts this new
interface. The interface still behaves as before.
gdb:
2014-02-11 Yao Qi <yao@codesourcery.com>
* target.h (enum target_xfer_error): Rename to ...
(enum target_xfer_status): ... it. New. All users updated.
(enum target_xfer_status) <TARGET_XFER_OK>, <TARGET_XFER_EOF>:
New.
(TARGET_XFER_STATUS_ERROR_P): New macro.
(target_xfer_error_to_string): Remove declaration.
(target_xfer_status_to_string): Declare.
(target_xfer_partial_ftype): Adjust it.
(struct target_ops) <to_xfer_partial>: Return
target_xfer_status. Add argument xfered_len. Update
comments.
* target.c (target_xfer_error_to_string): Rename to ...
(target_xfer_status_to_string): ... it. New. All callers
updated.
(target_read_live_memory): Likewise. Call target_xfer_partial
instead of target_read.
(memory_xfer_live_readonly_partial): Return
target_xfer_status. Add argument xfered_len.
(raw_memory_xfer_partial): Likewise.
(memory_xfer_partial_1): Likewise.
(memory_xfer_partial): Likewise.
(target_xfer_partial): Likewise. Check *XFERED_LEN is set
properly. Update debug message.
(default_xfer_partial, current_xfer_partial): Likewise.
(target_write_partial): Likewise.
(target_read_partial): Likewise. All callers updated.
(read_whatever_is_readable): Likewise.
(target_write_with_progress): Likewise.
(target_read_alloc_1): Likewise.
* aix-thread.c (aix_thread_xfer_partial): Likewise.
* auxv.c (procfs_xfer_auxv): Likewise.
(ld_so_xfer_auxv, memory_xfer_auxv): Likewise.
* bfd-target.c (target_bfd_xfer_partial): Likewise.
* bsd-kvm.c (bsd_kvm_xfer_partial): Likewise.
* bsd-uthread.c (bsd_uthread_xfer_partia): Likewise.
* corefile.c (read_memory): Adjust.
* corelow.c (core_xfer_partial): Likewise.
* ctf.c (ctf_xfer_partial): Likewise.
* darwin-nat.c (darwin_read_dyld_info): Likewise. All callers
updated.
(darwin_xfer_partial): Likewise.
* exec.c (section_table_xfer_memory_partial): Likewise. All
callers updated.
(exec_xfer_partial): Likewise.
* exec.h (section_table_xfer_memory_partial): Update
declaration.
* gnu-nat.c (gnu_xfer_memory): Likewise. Assert 'res' is not
negative.
(gnu_xfer_partial): Likewise.
* ia64-hpux-nat.c (ia64_hpux_xfer_memory_no_bs): Likewise.
(ia64_hpux_xfer_memory, ia64_hpux_xfer_uregs): Likewise.
(ia64_hpux_xfer_solib_got): Likewise.
* inf-ptrace.c (inf_ptrace_xfer_partial): Likewise. Change
type of 'partial_len' to ULONGEST.
* inf-ttrace.c (inf_ttrace_xfer_partial): Likewise.
* linux-nat.c (linux_xfer_siginfo ): Likewise.
(linux_nat_xfer_partial): Likewise.
(linux_proc_xfer_partial, linux_xfer_partial): Likewise.
(linux_proc_xfer_spu, linux_nat_xfer_osdata): Likewise.
* monitor.c (monitor_xfer_memory): Likewise.
(monitor_xfer_partial): Likewise.
* procfs.c (procfs_xfer_partial): Likewise.
* record-btrace.c (record_btrace_xfer_partial): Likewise.
* record-full.c (record_full_xfer_partial): Likewise.
(record_full_core_xfer_partial): Likewise.
* remote-sim.c (gdbsim_xfer_memory): Likewise.
(gdbsim_xfer_partial): Likewise.
* remote.c (remote_write_bytes_aux): Likewise. All callers
updated.
(remote_write_bytes, remote_read_bytes): Likewise. All
callers updated.
(remote_flash_erase): Likewise. All callers updated.
(remote_write_qxfer): Likewise. All callers updated.
(remote_read_qxfer): Likewise. All callers updated.
(remote_xfer_partial): Likewise.
* rs6000-nat.c (rs6000_xfer_partial): Likewise.
(rs6000_xfer_shared_libraries): Likewise.
* sol-thread.c (sol_thread_xfer_partial): Likewise.
(sol_thread_xfer_partial): Likewise.
* sparc-nat.c (sparc_xfer_wcookie): Likewise.
(sparc_xfer_partial): Likewise.
* spu-linux-nat.c (spu_proc_xfer_spu): Likewise. All callers
updated.
(spu_xfer_partial): Likewise.
* spu-multiarch.c (spu_xfer_partial): Likewise.
* tracepoint.c (tfile_xfer_partial): Likewise.
* windows-nat.c (windows_xfer_memory): Likewise.
(windows_xfer_shared_libraries): Likewise.
(windows_xfer_partial): Likewise.
* valprint.c: Replace 'target_xfer_error' with
'target_xfer_status' in comments.
2014-01-27 12:35:33 +00:00
|
|
|
|
2014-02-11 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* target.h (enum target_xfer_error): Rename to ...
|
|
|
|
|
(enum target_xfer_status): ... it. New. All users updated.
|
|
|
|
|
(enum target_xfer_status) <TARGET_XFER_OK>, <TARGET_XFER_EOF>:
|
|
|
|
|
New.
|
|
|
|
|
(TARGET_XFER_STATUS_ERROR_P): New macro.
|
|
|
|
|
(target_xfer_error_to_string): Remove declaration.
|
|
|
|
|
(target_xfer_status_to_string): Declare.
|
|
|
|
|
(target_xfer_partial_ftype): Adjust it.
|
|
|
|
|
(struct target_ops) <to_xfer_partial>: Return
|
|
|
|
|
target_xfer_status. Add argument xfered_len. Update
|
|
|
|
|
comments.
|
|
|
|
|
* target.c (target_xfer_error_to_string): Rename to ...
|
|
|
|
|
(target_xfer_status_to_string): ... it. New. All callers
|
|
|
|
|
updated.
|
|
|
|
|
(target_read_live_memory): Likewise. Call target_xfer_partial
|
|
|
|
|
instead of target_read.
|
|
|
|
|
(memory_xfer_live_readonly_partial): Return
|
|
|
|
|
target_xfer_status. Add argument xfered_len.
|
|
|
|
|
(raw_memory_xfer_partial): Likewise.
|
|
|
|
|
(memory_xfer_partial_1): Likewise.
|
|
|
|
|
(memory_xfer_partial): Likewise.
|
|
|
|
|
(target_xfer_partial): Likewise. Check *XFERED_LEN is set
|
|
|
|
|
properly. Update debug message.
|
|
|
|
|
(default_xfer_partial, current_xfer_partial): Likewise.
|
|
|
|
|
(target_write_partial): Likewise.
|
|
|
|
|
(target_read_partial): Likewise. All callers updated.
|
|
|
|
|
(read_whatever_is_readable): Likewise.
|
|
|
|
|
(target_write_with_progress): Likewise.
|
|
|
|
|
(target_read_alloc_1): Likewise.
|
|
|
|
|
|
|
|
|
|
* aix-thread.c (aix_thread_xfer_partial): Likewise.
|
|
|
|
|
* auxv.c (procfs_xfer_auxv): Likewise.
|
|
|
|
|
(ld_so_xfer_auxv, memory_xfer_auxv): Likewise.
|
|
|
|
|
* bfd-target.c (target_bfd_xfer_partial): Likewise.
|
|
|
|
|
* bsd-kvm.c (bsd_kvm_xfer_partial): Likewise.
|
|
|
|
|
* bsd-uthread.c (bsd_uthread_xfer_partia): Likewise.
|
|
|
|
|
* corefile.c (read_memory): Adjust.
|
|
|
|
|
* corelow.c (core_xfer_partial): Likewise.
|
|
|
|
|
* ctf.c (ctf_xfer_partial): Likewise.
|
|
|
|
|
* darwin-nat.c (darwin_read_dyld_info): Likewise. All callers
|
|
|
|
|
updated.
|
|
|
|
|
(darwin_xfer_partial): Likewise.
|
|
|
|
|
* exec.c (section_table_xfer_memory_partial): Likewise. All
|
|
|
|
|
callers updated.
|
|
|
|
|
(exec_xfer_partial): Likewise.
|
|
|
|
|
* exec.h (section_table_xfer_memory_partial): Update
|
|
|
|
|
declaration.
|
|
|
|
|
* gnu-nat.c (gnu_xfer_memory): Likewise. Assert 'res' is not
|
|
|
|
|
negative.
|
|
|
|
|
(gnu_xfer_partial): Likewise.
|
|
|
|
|
* ia64-hpux-nat.c (ia64_hpux_xfer_memory_no_bs): Likewise.
|
|
|
|
|
(ia64_hpux_xfer_memory, ia64_hpux_xfer_uregs): Likewise.
|
|
|
|
|
(ia64_hpux_xfer_solib_got): Likewise.
|
|
|
|
|
* inf-ptrace.c (inf_ptrace_xfer_partial): Likewise. Change
|
|
|
|
|
type of 'partial_len' to ULONGEST.
|
|
|
|
|
* inf-ttrace.c (inf_ttrace_xfer_partial): Likewise.
|
|
|
|
|
* linux-nat.c (linux_xfer_siginfo ): Likewise.
|
|
|
|
|
(linux_nat_xfer_partial): Likewise.
|
|
|
|
|
(linux_proc_xfer_partial, linux_xfer_partial): Likewise.
|
|
|
|
|
(linux_proc_xfer_spu, linux_nat_xfer_osdata): Likewise.
|
|
|
|
|
* monitor.c (monitor_xfer_memory): Likewise.
|
|
|
|
|
(monitor_xfer_partial): Likewise.
|
|
|
|
|
* procfs.c (procfs_xfer_partial): Likewise.
|
|
|
|
|
* record-btrace.c (record_btrace_xfer_partial): Likewise.
|
|
|
|
|
* record-full.c (record_full_xfer_partial): Likewise.
|
|
|
|
|
(record_full_core_xfer_partial): Likewise.
|
|
|
|
|
* remote-sim.c (gdbsim_xfer_memory): Likewise.
|
|
|
|
|
(gdbsim_xfer_partial): Likewise.
|
|
|
|
|
* remote.c (remote_write_bytes_aux): Likewise. All callers
|
|
|
|
|
updated.
|
|
|
|
|
(remote_write_bytes, remote_read_bytes): Likewise. All
|
|
|
|
|
callers updated.
|
|
|
|
|
(remote_flash_erase): Likewise. All callers updated.
|
|
|
|
|
(remote_write_qxfer): Likewise. All callers updated.
|
|
|
|
|
(remote_read_qxfer): Likewise. All callers updated.
|
|
|
|
|
(remote_xfer_partial): Likewise.
|
|
|
|
|
* rs6000-nat.c (rs6000_xfer_partial): Likewise.
|
|
|
|
|
(rs6000_xfer_shared_libraries): Likewise.
|
|
|
|
|
* sol-thread.c (sol_thread_xfer_partial): Likewise.
|
|
|
|
|
(sol_thread_xfer_partial): Likewise.
|
|
|
|
|
* sparc-nat.c (sparc_xfer_wcookie): Likewise.
|
|
|
|
|
(sparc_xfer_partial): Likewise.
|
|
|
|
|
* spu-linux-nat.c (spu_proc_xfer_spu): Likewise. All callers
|
|
|
|
|
updated.
|
|
|
|
|
(spu_xfer_partial): Likewise.
|
|
|
|
|
* spu-multiarch.c (spu_xfer_partial): Likewise.
|
|
|
|
|
* tracepoint.c (tfile_xfer_partial): Likewise.
|
|
|
|
|
* windows-nat.c (windows_xfer_memory): Likewise.
|
|
|
|
|
(windows_xfer_shared_libraries): Likewise.
|
|
|
|
|
(windows_xfer_partial): Likewise.
|
|
|
|
|
* valprint.c: Replace 'target_xfer_error' with
|
|
|
|
|
'target_xfer_status' in comments.
|
|
|
|
|
|
2014-02-11 03:59:14 +00:00
|
|
|
|
2014-02-11 Simon Marchi <simon.marchi@ericsson.com> (tiny patch)
|
|
|
|
|
|
|
|
|
|
Checked in by Joel Brobecker <brobecker@adacore.com>.
|
|
|
|
|
* mi/mi-main.c (mi_cmd_data_write_memory_bytes): Fix comment.
|
|
|
|
|
|
2014-02-11 03:31:26 +00:00
|
|
|
|
2014-02-11 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* symfile-debug.c (debug_qf_expand_symtabs_matching): Reformat
|
|
|
|
|
function parameters.
|
|
|
|
|
|
2013-12-16 17:45:45 +00:00
|
|
|
|
2014-02-10 Will Newton <will.newton@linaro.org>
|
|
|
|
|
|
|
|
|
|
* elfread.c (elf_rel_plt_read): Look for a .got section if
|
|
|
|
|
looking up .got.plt fails.
|
|
|
|
|
(elf_gnu_ifunc_resolve_by_got): Call gdbarch_addr_bits_remove
|
|
|
|
|
on address passed to elf_gnu_ifunc_record_cache.
|
|
|
|
|
(elf_gnu_ifunc_resolve_addr): Likewise.
|
|
|
|
|
(elf_gnu_ifunc_resolver_return_stop): Likewise.
|
|
|
|
|
|
2014-02-10 15:09:23 +00:00
|
|
|
|
2014-02-10 Jose E. Marchesi <jose.marchesi@oracle.com>
|
|
|
|
|
|
|
|
|
|
* sparc-tdep.c (sparc_in_function_epilogue_p): New function.
|
|
|
|
|
(X_RETTURN): New macro.
|
|
|
|
|
* sparc-tdep.h: sparc_in_function_epilogue_p prototype.
|
|
|
|
|
|
|
|
|
|
* sparc64-tdep.c (sparc64_init_abi): Hook
|
|
|
|
|
sparc_in_function_epilogue_p.
|
|
|
|
|
|
2014-02-10 14:24:32 +00:00
|
|
|
|
2014-02-10 Gary Benson <gbenson@redhat.com>
|
|
|
|
|
|
|
|
|
|
* symfile-debug.c (debug_qf_expand_symtabs_matching):
|
|
|
|
|
Rename name_matcher to symbol_matcher.
|
|
|
|
|
|
2014-02-10 14:07:44 +00:00
|
|
|
|
2014-02-10 Gary Benson <gbenson@redhat.com>
|
|
|
|
|
|
|
|
|
|
* symfile-debug.c (debug_qf_expand_symtabs_matching):
|
|
|
|
|
Use expand_symtabs_file_matcher_ftype and
|
|
|
|
|
expand_symtabs_symbol_matcher_ftype.
|
|
|
|
|
|
2014-02-10 13:49:27 +00:00
|
|
|
|
2014-02-10 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* ada-lang.c (struct cache_entry, HASH_SIZE): Move definition up.
|
|
|
|
|
(struct ada_symbol_cache): New.
|
|
|
|
|
(ada_free_symbol_cache): Forward declare.
|
|
|
|
|
(struct ada_pspace_data): New.
|
|
|
|
|
(ada_pspace_data_handle): New static global.
|
|
|
|
|
(get_ada_pspace_data, ada_pspace_data_cleanup)
|
|
|
|
|
(ada_init_symbol_cache, ada_free_symbol_cache): New functions.
|
|
|
|
|
(cache_space, cache): Delete, now folded inside struct
|
|
|
|
|
ada_pspace_data.
|
|
|
|
|
(ada_get_symbol_cache): New function.
|
|
|
|
|
(ada_clear_symbol_cache, find_entry, cache_symbol): Adjust
|
|
|
|
|
implementation.
|
|
|
|
|
(_initialize_ada_language): Remove initialization of cache_space.
|
|
|
|
|
Move call to observer_attach_inferior_exit up, grouping it
|
|
|
|
|
with the other observer registrations inside this function.
|
|
|
|
|
Rename command to be more general. Add call to
|
|
|
|
|
register_program_space_data_with_cleanup.
|
|
|
|
|
|
2014-01-31 13:56:12 +00:00
|
|
|
|
2014-02-10 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* ada-tasks.c (ada_tasks_new_objfile_observer): Renames
|
|
|
|
|
ada_new_objfile_observer.
|
|
|
|
|
(ada_tasks_normal_stop_observer): Renames ada_normal_stop_observer.
|
|
|
|
|
(_initialize_tasks): Update uses of ada_new_objfile_observer
|
|
|
|
|
and ada_tasks_normal_stop_observer.
|
|
|
|
|
|
2014-02-07 04:44:20 +00:00
|
|
|
|
2014-02-10 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* ada-lang.c (ada_evaluate_subexp): Set the type of the value
|
|
|
|
|
returned by the 'Length attribute to integer.
|
|
|
|
|
|
2014-02-10 08:52:15 +00:00
|
|
|
|
2014-02-10 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* ada-lang.c (_initialize_ada_language): Initialize
|
|
|
|
|
cache_space obstack.
|
|
|
|
|
|
2014-02-10 05:03:30 +00:00
|
|
|
|
2014-02-10 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* ada-lang.c (HASH_SIZE): New macro.
|
|
|
|
|
(struct cache_entry): New type.
|
|
|
|
|
(cache_space, cache): New static globals.
|
|
|
|
|
(ada_clear_symbol_cache, find_entry): New functions.
|
|
|
|
|
(lookup_cached_symbol, cache_symbol): Implement.
|
|
|
|
|
(ada_new_objfile_observer, ada_free_objfile_observer): New.
|
|
|
|
|
(_initialize_ada_language): Attach ada_new_objfile_observer
|
|
|
|
|
and ada_free_objfile_observer.
|
|
|
|
|
|
2014-02-10 04:53:18 +00:00
|
|
|
|
2014-02-10 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* ada-lang.c (ada_add_block_symbols, add_defn_to_vec)
|
|
|
|
|
(lookup_cached_symbol, ada_add_local_symbols): Add "const" to
|
|
|
|
|
struct block * parameter.
|
|
|
|
|
(ada_lookup_symbol_list_worker): Constify local variable "block".
|
|
|
|
|
Remove cast which is no longer necessary.
|
|
|
|
|
|
Add Guile as an extension language.
* NEWS: Mention Guile scripting.
* Makefile.in (SUBDIR_GUILE_OBS): New variable.
(SUBDIR_GUILE_SRCS, SUBDIR_GUILE_DEPS): New variables
(SUBDIR_GUILE_LDFLAGS, SUBDIR_GUILE_CFLAGS): New variables.
(INTERNAL_CPPFLAGS): Add GUILE_CPPFLAGS.
(CLIBS): Add GUILE_LIBS.
(install-guile): New rule.
(guile.o): New rule.
(scm-arch.o, scm-auto-load.o, scm-block.o): New rules.
(scm-breakpoint.o, scm-disasm.o, scm-exception.o): New rules.
(scm-frame.o, scm-iterator.o, scm-lazy-string.o): New rules.
(scm-math.o, scm-objfile.o, scm-ports.o): New rules.
(scm-pretty-print.o, scm-safe-call.o, scm-gsmob.o): New rules.
(scm-string.o, scm-symbol.o, scm-symtab.o): New rules.
(scm-type.o, scm-utils.o, scm-value.o): New rules.
* configure.ac: New option --with-guile.
* configure: Regenerate.
* config.in: Regenerate.
* auto-load.c: Remove #include "python/python.h". Add #include
"gdb/section-scripts.h".
(source_section_scripts): Handle Guile scripts.
(_initialize_auto_load): Add name of Guile objfile script to
scripts-directory help text.
* breakpoint.c (condition_command): Tweak comment to include Scheme.
* breakpoint.h (gdbscm_breakpoint_object): Add forward decl.
(struct breakpoint): New member scm_bp_object.
* defs.h (enum command_control_type): New value guile_control.
* cli/cli-cmds.c: Remove #include "python/python.h". Add #include
"extension.h".
(show_user): Update comment.
(_initialize_cli_cmds): Update help text for "show user". Update help
text for max-user-call-depth.
* cli/cli-script.c: Remove #include "python/python.h". Add #include
"extension.h".
(multi_line_command_p): Add guile_control.
(print_command_lines): Handle guile_control.
(execute_control_command, recurse_read_control_structure): Ditto.
(process_next_line): Recognize "guile" commands.
* disasm.c (gdb_disassemble_info): Make non-static.
* disasm.h: #include "dis-asm.h".
(struct gdbarch): Add forward decl.
(gdb_disassemble_info): Declare.
* extension.c: #include "guile/guile.h".
(extension_languages): Add guile.
(get_ext_lang_defn): Handle EXT_LANG_GDB.
* extension.h (enum extension_language): New value EXT_LANG_GUILE.
* gdbtypes.c (get_unsigned_type_max): New function.
(get_signed_type_minmax): New function.
* gdbtypes.h (get_unsigned_type_max): Declare.
(get_signed_type_minmax): Declare.
* guile/README: New file.
* guile/guile-internal.h: New file.
* guile/guile.c: New file.
* guile/guile.h: New file.
* guile/scm-arch.c: New file.
* guile/scm-auto-load.c: New file.
* guile/scm-block.c: New file.
* guile/scm-breakpoint.c: New file.
* guile/scm-disasm.c: New file.
* guile/scm-exception.c: New file.
* guile/scm-frame.c: New file.
* guile/scm-gsmob.c: New file.
* guile/scm-iterator.c: New file.
* guile/scm-lazy-string.c: New file.
* guile/scm-math.c: New file.
* guile/scm-objfile.c: New file.
* guile/scm-ports.c: New file.
* guile/scm-pretty-print.c: New file.
* guile/scm-safe-call.c: New file.
* guile/scm-string.c: New file.
* guile/scm-symbol.c: New file.
* guile/scm-symtab.c: New file.
* guile/scm-type.c: New file.
* guile/scm-utils.c: New file.
* guile/scm-value.c: New file.
* guile/lib/gdb.scm: New file.
* guile/lib/gdb/boot.scm: New file.
* guile/lib/gdb/experimental.scm: New file.
* guile/lib/gdb/init.scm: New file.
* guile/lib/gdb/iterator.scm: New file.
* guile/lib/gdb/printing.scm: New file.
* guile/lib/gdb/types.scm: New file.
* data-directory/Makefile.in (GUILE_SRCDIR): New variable.
(VPATH): Add $(GUILE_SRCDIR).
(GUILE_DIR): New variable.
(GUILE_INSTALL_DIR, GUILE_FILES): New variables.
(all): Add stamp-guile dependency.
(stamp-guile): New rule.
(clean-guile, install-guile, uninstall-guile): New rules.
(install-only): Add install-guile dependency.
(uninstall): Add uninstall-guile dependency.
(clean): Add clean-guile dependency.
doc/
* Makefile.in (GDB_DOC_FILES): Add guile.texi.
* gdb.texinfo (Auto-loading): Add set/show auto-load guile-scripts.
(Extending GDB): New menu entries Guile, Multiple Extension Languages.
(Guile docs): Include guile.texi.
(objfile-gdbdotext file): Add objfile-gdb.scm.
(dotdebug_gdb_scripts section): Mention Guile scripts.
(Multiple Extension Languages): New node.
* guile.texi: New file.
testsuite/
* configure.ac (AC_OUTPUT): Add gdb.guile.
* configure: Regenerate.
* lib/gdb-guile.exp: New file.
* lib/gdb.exp (get_target_charset): New function.
* gdb.base/help.exp: Update expected output from "apropos apropos".
* gdb.guile/Makefile.in: New file.
* gdb.guile/guile.exp: New file.
* gdb.guile/scm-arch.c: New file.
* gdb.guile/scm-arch.exp: New file.
* gdb.guile/scm-block.c: New file.
* gdb.guile/scm-block.exp: New file.
* gdb.guile/scm-breakpoint.c: New file.
* gdb.guile/scm-breakpoint.exp: New file.
* gdb.guile/scm-disasm.c: New file.
* gdb.guile/scm-disasm.exp: New file.
* gdb.guile/scm-equal.c: New file.
* gdb.guile/scm-equal.exp: New file.
* gdb.guile/scm-error.exp: New file.
* gdb.guile/scm-error.scm: New file.
* gdb.guile/scm-frame-args.c: New file.
* gdb.guile/scm-frame-args.exp: New file.
* gdb.guile/scm-frame-args.scm: New file.
* gdb.guile/scm-frame-inline.c: New file.
* gdb.guile/scm-frame-inline.exp: New file.
* gdb.guile/scm-frame.c: New file.
* gdb.guile/scm-frame.exp: New file.
* gdb.guile/scm-generics.exp: New file.
* gdb.guile/scm-gsmob.exp: New file.
* gdb.guile/scm-iterator.c: New file.
* gdb.guile/scm-iterator.exp: New file.
* gdb.guile/scm-math.c: New file.
* gdb.guile/scm-math.exp: New file.
* gdb.guile/scm-objfile-script-gdb.in: New file.
* gdb.guile/scm-objfile-script.c: New file.
* gdb.guile/scm-objfile-script.exp: New file.
* gdb.guile/scm-objfile.c: New file.
* gdb.guile/scm-objfile.exp: New file.
* gdb.guile/scm-ports.exp: New file.
* gdb.guile/scm-pretty-print.c: New file.
* gdb.guile/scm-pretty-print.exp: New file.
* gdb.guile/scm-pretty-print.scm: New file.
* gdb.guile/scm-section-script.c: New file.
* gdb.guile/scm-section-script.exp: New file.
* gdb.guile/scm-section-script.scm: New file.
* gdb.guile/scm-symbol.c: New file.
* gdb.guile/scm-symbol.exp: New file.
* gdb.guile/scm-symtab-2.c: New file.
* gdb.guile/scm-symtab.c: New file.
* gdb.guile/scm-symtab.exp: New file.
* gdb.guile/scm-type.c: New file.
* gdb.guile/scm-type.exp: New file.
* gdb.guile/scm-value-cc.cc: New file.
* gdb.guile/scm-value-cc.exp: New file.
* gdb.guile/scm-value.c: New file.
* gdb.guile/scm-value.exp: New file.
* gdb.guile/source2.scm: New file.
* gdb.guile/types-module.cc: New file.
* gdb.guile/types-module.exp: New file.
2014-02-10 03:40:01 +00:00
|
|
|
|
2014-02-10 Doug Evans <xdje42@gmail.com>
|
|
|
|
|
|
|
|
|
|
Add Guile as an extension language.
|
|
|
|
|
* NEWS: Mention Guile scripting.
|
|
|
|
|
* Makefile.in (SUBDIR_GUILE_OBS): New variable.
|
|
|
|
|
(SUBDIR_GUILE_SRCS, SUBDIR_GUILE_DEPS): New variables
|
|
|
|
|
(SUBDIR_GUILE_LDFLAGS, SUBDIR_GUILE_CFLAGS): New variables.
|
|
|
|
|
(INTERNAL_CPPFLAGS): Add GUILE_CPPFLAGS.
|
|
|
|
|
(CLIBS): Add GUILE_LIBS.
|
|
|
|
|
(install-guile): New rule.
|
|
|
|
|
(guile.o): New rule.
|
|
|
|
|
(scm-arch.o, scm-auto-load.o, scm-block.o): New rules.
|
|
|
|
|
(scm-breakpoint.o, scm-disasm.o, scm-exception.o): New rules.
|
|
|
|
|
(scm-frame.o, scm-iterator.o, scm-lazy-string.o): New rules.
|
|
|
|
|
(scm-math.o, scm-objfile.o, scm-ports.o): New rules.
|
|
|
|
|
(scm-pretty-print.o, scm-safe-call.o, scm-gsmob.o): New rules.
|
|
|
|
|
(scm-string.o, scm-symbol.o, scm-symtab.o): New rules.
|
|
|
|
|
(scm-type.o, scm-utils.o, scm-value.o): New rules.
|
|
|
|
|
* configure.ac: New option --with-guile.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* config.in: Regenerate.
|
|
|
|
|
* auto-load.c: Remove #include "python/python.h". Add #include
|
|
|
|
|
"gdb/section-scripts.h".
|
|
|
|
|
(source_section_scripts): Handle Guile scripts.
|
|
|
|
|
(_initialize_auto_load): Add name of Guile objfile script to
|
|
|
|
|
scripts-directory help text.
|
|
|
|
|
* breakpoint.c (condition_command): Tweak comment to include Scheme.
|
|
|
|
|
* breakpoint.h (gdbscm_breakpoint_object): Add forward decl.
|
|
|
|
|
(struct breakpoint): New member scm_bp_object.
|
|
|
|
|
* defs.h (enum command_control_type): New value guile_control.
|
|
|
|
|
* cli/cli-cmds.c: Remove #include "python/python.h". Add #include
|
|
|
|
|
"extension.h".
|
|
|
|
|
(show_user): Update comment.
|
|
|
|
|
(_initialize_cli_cmds): Update help text for "show user". Update help
|
|
|
|
|
text for max-user-call-depth.
|
|
|
|
|
* cli/cli-script.c: Remove #include "python/python.h". Add #include
|
|
|
|
|
"extension.h".
|
|
|
|
|
(multi_line_command_p): Add guile_control.
|
|
|
|
|
(print_command_lines): Handle guile_control.
|
|
|
|
|
(execute_control_command, recurse_read_control_structure): Ditto.
|
|
|
|
|
(process_next_line): Recognize "guile" commands.
|
|
|
|
|
* disasm.c (gdb_disassemble_info): Make non-static.
|
|
|
|
|
* disasm.h: #include "dis-asm.h".
|
|
|
|
|
(struct gdbarch): Add forward decl.
|
|
|
|
|
(gdb_disassemble_info): Declare.
|
|
|
|
|
* extension.c: #include "guile/guile.h".
|
|
|
|
|
(extension_languages): Add guile.
|
|
|
|
|
(get_ext_lang_defn): Handle EXT_LANG_GDB.
|
|
|
|
|
* extension.h (enum extension_language): New value EXT_LANG_GUILE.
|
|
|
|
|
* gdbtypes.c (get_unsigned_type_max): New function.
|
|
|
|
|
(get_signed_type_minmax): New function.
|
|
|
|
|
* gdbtypes.h (get_unsigned_type_max): Declare.
|
|
|
|
|
(get_signed_type_minmax): Declare.
|
|
|
|
|
* guile/README: New file.
|
|
|
|
|
* guile/guile-internal.h: New file.
|
|
|
|
|
* guile/guile.c: New file.
|
|
|
|
|
* guile/guile.h: New file.
|
|
|
|
|
* guile/scm-arch.c: New file.
|
|
|
|
|
* guile/scm-auto-load.c: New file.
|
|
|
|
|
* guile/scm-block.c: New file.
|
|
|
|
|
* guile/scm-breakpoint.c: New file.
|
|
|
|
|
* guile/scm-disasm.c: New file.
|
|
|
|
|
* guile/scm-exception.c: New file.
|
|
|
|
|
* guile/scm-frame.c: New file.
|
|
|
|
|
* guile/scm-gsmob.c: New file.
|
|
|
|
|
* guile/scm-iterator.c: New file.
|
|
|
|
|
* guile/scm-lazy-string.c: New file.
|
|
|
|
|
* guile/scm-math.c: New file.
|
|
|
|
|
* guile/scm-objfile.c: New file.
|
|
|
|
|
* guile/scm-ports.c: New file.
|
|
|
|
|
* guile/scm-pretty-print.c: New file.
|
|
|
|
|
* guile/scm-safe-call.c: New file.
|
|
|
|
|
* guile/scm-string.c: New file.
|
|
|
|
|
* guile/scm-symbol.c: New file.
|
|
|
|
|
* guile/scm-symtab.c: New file.
|
|
|
|
|
* guile/scm-type.c: New file.
|
|
|
|
|
* guile/scm-utils.c: New file.
|
|
|
|
|
* guile/scm-value.c: New file.
|
|
|
|
|
* guile/lib/gdb.scm: New file.
|
|
|
|
|
* guile/lib/gdb/boot.scm: New file.
|
|
|
|
|
* guile/lib/gdb/experimental.scm: New file.
|
|
|
|
|
* guile/lib/gdb/init.scm: New file.
|
|
|
|
|
* guile/lib/gdb/iterator.scm: New file.
|
|
|
|
|
* guile/lib/gdb/printing.scm: New file.
|
|
|
|
|
* guile/lib/gdb/types.scm: New file.
|
|
|
|
|
* data-directory/Makefile.in (GUILE_SRCDIR): New variable.
|
|
|
|
|
(VPATH): Add $(GUILE_SRCDIR).
|
|
|
|
|
(GUILE_DIR): New variable.
|
|
|
|
|
(GUILE_INSTALL_DIR, GUILE_FILES): New variables.
|
|
|
|
|
(all): Add stamp-guile dependency.
|
|
|
|
|
(stamp-guile): New rule.
|
|
|
|
|
(clean-guile, install-guile, uninstall-guile): New rules.
|
|
|
|
|
(install-only): Add install-guile dependency.
|
|
|
|
|
(uninstall): Add uninstall-guile dependency.
|
|
|
|
|
(clean): Add clean-guile dependency.
|
|
|
|
|
|
2014-02-10 01:39:08 +00:00
|
|
|
|
2014-02-09 Doug Evans <xdje42@gmail.com>
|
|
|
|
|
|
|
|
|
|
Revert this patch (which I approved, mea culpa).
|
|
|
|
|
|
|
|
|
|
2014-02-08 Mark Kettenis <kettenis@gnu.org>
|
|
|
|
|
|
|
|
|
|
* Makefile.in (all-lib): Remove.
|
|
|
|
|
($(LIBGNU) $(GNULIB_H)): Replace with gits of remove all-lib target.
|
|
|
|
|
|
2014-02-09 17:47:40 +00:00
|
|
|
|
2014-02-09 Jan Kratochvil <jan.kratochvil@redhat.com>
|
|
|
|
|
|
|
|
|
|
Fix Python stack corruption.
|
|
|
|
|
* python/py-linetable.c (ltpy_get_pcs_for_line, ltpy_has_line): Use
|
|
|
|
|
gdb_py_longest.
|
|
|
|
|
|
2014-02-08 11:36:17 +00:00
|
|
|
|
2014-02-08 Mark Kettenis <kettenis@gnu.org>
|
|
|
|
|
|
|
|
|
|
* Makefile.in (all-lib): Remove.
|
|
|
|
|
($(LIBGNU) $(GNULIB_H)): Replace with gits of remove all-lib target.
|
|
|
|
|
|
2014-02-07 19:43:19 +00:00
|
|
|
|
2014-02-07 Doug Evans <dje@google.com>
|
|
|
|
|
|
|
|
|
|
* extension-priv.h (extension_language_script_ops): Add comment.
|
|
|
|
|
(extension_language_ops): Add comment.
|
2014-02-07 19:56:58 +00:00
|
|
|
|
(active_ext_lang_state): Fix typo in comment.
|
2014-02-07 19:43:19 +00:00
|
|
|
|
|
Make sure we don't resume the stepped thread by accident.
Say:
<stopped at a breakpoint in thread 2>
(gdb) thread 3
(gdb) step
The above triggers the prepare_to_proceed/deferred_step_ptid process,
which switches back to thread 2, to step over its breakpoint before
getting back to thread 3 and "step" it.
If while stepping over the breakpoint in thread 2, a signal arrives,
and it is set to pass/nostop, we'll set a step-resume breakpoint at
the supposed signal-handler resume address, and call keep_going. The
problem is that we were supposedly stepping thread 3, and that
keep_going delivers a signal to thread 2, and due to scheduler-locking
off, resumes everything else, _including_ thread 3, the thread we want
stepping. This means that we lose control of thread 3 until the next
event, when we stop everything. The end result for the user, is that
GDB lost control of the "step".
Here's the current infrun debug output of the above, with the testcase
in the patch below:
infrun: clear_proceed_status_thread (Thread 0x2aaaab8f5700 (LWP 11663))
infrun: clear_proceed_status_thread (Thread 0x2aaaab6f4700 (LWP 11662))
infrun: clear_proceed_status_thread (Thread 0x2aaaab4f2b20 (LWP 11659))
infrun: proceed (addr=0xffffffffffffffff, signal=144, step=1)
infrun: prepare_to_proceed (step=1), switched to [Thread 0x2aaaab6f4700 (LWP 11662)]
infrun: resume (step=1, signal=0), trap_expected=1, current thread [Thread 0x2aaaab6f4700 (LWP 11662)] at 0x40098f
infrun: wait_for_inferior ()
infrun: target_wait (-1, status) =
infrun: 11659 [Thread 0x2aaaab6f4700 (LWP 11662)],
infrun: status->kind = stopped, signal = SIGUSR1
infrun: infwait_normal_state
infrun: TARGET_WAITKIND_STOPPED
infrun: stop_pc = 0x40098f
infrun: random signal 30
Program received signal SIGUSR1, User defined signal 1.
infrun: signal arrived while stepping over breakpoint
infrun: inserting step-resume breakpoint at 0x40098f
infrun: resume (step=0, signal=30), trap_expected=0, current thread [Thread 0x2aaaab6f4700 (LWP 11662)] at 0x40098f
^^^ this is a wildcard resume.
infrun: prepare_to_wait
infrun: target_wait (-1, status) =
infrun: 11659 [Thread 0x2aaaab6f4700 (LWP 11662)],
infrun: status->kind = stopped, signal = SIGTRAP
infrun: infwait_normal_state
infrun: TARGET_WAITKIND_STOPPED
infrun: stop_pc = 0x40098f
infrun: BPSTAT_WHAT_STEP_RESUME
infrun: resume (step=1, signal=0), trap_expected=1, current thread [Thread 0x2aaaab6f4700 (LWP 11662)] at 0x40098f
^^^ step-resume hit, meaning the handler returned, so we go back to stepping thread 3.
infrun: prepare_to_wait
infrun: target_wait (-1, status) =
infrun: 11659 [Thread 0x2aaaab6f4700 (LWP 11662)],
infrun: status->kind = stopped, signal = SIGTRAP
infrun: infwait_normal_state
infrun: TARGET_WAITKIND_STOPPED
infrun: stop_pc = 0x40088b
infrun: switching back to stepped thread
infrun: Switching context from Thread 0x2aaaab6f4700 (LWP 11662) to Thread 0x2aaaab8f5700 (LWP 11663)
infrun: resume (step=1, signal=0), trap_expected=0, current thread [Thread 0x2aaaab8f5700 (LWP 11663)] at 0x400938
infrun: prepare_to_wait
infrun: target_wait (-1, status) =
infrun: 11659 [Thread 0x2aaaab8f5700 (LWP 11663)],
infrun: status->kind = stopped, signal = SIGTRAP
infrun: infwait_normal_state
infrun: TARGET_WAITKIND_STOPPED
infrun: stop_pc = 0x40093a
infrun: keep going
infrun: resume (step=1, signal=0), trap_expected=0, current thread [Thread 0x2aaaab8f5700 (LWP 11663)] at 0x40093a
infrun: prepare_to_wait
infrun: target_wait (-1, status) =
infrun: 11659 [Thread 0x2aaaab8f5700 (LWP 11663)],
infrun: status->kind = stopped, signal = SIGTRAP
infrun: infwait_normal_state
infrun: TARGET_WAITKIND_STOPPED
infrun: stop_pc = 0x40091e
infrun: stepped to a different line
infrun: stop_stepping
[Switching to Thread 0x2aaaab8f5700 (LWP 11663)]
69 (*myp) ++; /* set breakpoint child_two here */
^^^ we stopped at the wrong line. We still stepped a bit because the
test is running in a loop, and when we got back to stepping thread 3,
it happened to be in the stepping range. (The loop increments a
counter, and the test makes sure it increments exactly once. Without
the fix, the counter increments a bunch, since the user-stepped thread
runs free without GDB noticing.)
The fix is to switch to the stepping thread before continuing for the
step-resume breakpoint.
gdb/
2014-02-07 Pedro Alves <palves@redhat.com>
* infrun.c (handle_signal_stop) <signal arrives while stepping
over a breakpoint>: Switch back to the stepping thread.
gdb/testsuite/
2014-02-07 Pedro Alves <pedro@codesourcery.com>
Pedro Alves <palves@redhat.com>
* gdb.threads/step-after-sr-lock.c: New file.
* gdb.threads/step-after-sr-lock.exp: New file.
2014-02-07 19:11:25 +00:00
|
|
|
|
2014-02-07 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
2014-02-26 16:33:13 +00:00
|
|
|
|
PR breakpoints/16292
|
Make sure we don't resume the stepped thread by accident.
Say:
<stopped at a breakpoint in thread 2>
(gdb) thread 3
(gdb) step
The above triggers the prepare_to_proceed/deferred_step_ptid process,
which switches back to thread 2, to step over its breakpoint before
getting back to thread 3 and "step" it.
If while stepping over the breakpoint in thread 2, a signal arrives,
and it is set to pass/nostop, we'll set a step-resume breakpoint at
the supposed signal-handler resume address, and call keep_going. The
problem is that we were supposedly stepping thread 3, and that
keep_going delivers a signal to thread 2, and due to scheduler-locking
off, resumes everything else, _including_ thread 3, the thread we want
stepping. This means that we lose control of thread 3 until the next
event, when we stop everything. The end result for the user, is that
GDB lost control of the "step".
Here's the current infrun debug output of the above, with the testcase
in the patch below:
infrun: clear_proceed_status_thread (Thread 0x2aaaab8f5700 (LWP 11663))
infrun: clear_proceed_status_thread (Thread 0x2aaaab6f4700 (LWP 11662))
infrun: clear_proceed_status_thread (Thread 0x2aaaab4f2b20 (LWP 11659))
infrun: proceed (addr=0xffffffffffffffff, signal=144, step=1)
infrun: prepare_to_proceed (step=1), switched to [Thread 0x2aaaab6f4700 (LWP 11662)]
infrun: resume (step=1, signal=0), trap_expected=1, current thread [Thread 0x2aaaab6f4700 (LWP 11662)] at 0x40098f
infrun: wait_for_inferior ()
infrun: target_wait (-1, status) =
infrun: 11659 [Thread 0x2aaaab6f4700 (LWP 11662)],
infrun: status->kind = stopped, signal = SIGUSR1
infrun: infwait_normal_state
infrun: TARGET_WAITKIND_STOPPED
infrun: stop_pc = 0x40098f
infrun: random signal 30
Program received signal SIGUSR1, User defined signal 1.
infrun: signal arrived while stepping over breakpoint
infrun: inserting step-resume breakpoint at 0x40098f
infrun: resume (step=0, signal=30), trap_expected=0, current thread [Thread 0x2aaaab6f4700 (LWP 11662)] at 0x40098f
^^^ this is a wildcard resume.
infrun: prepare_to_wait
infrun: target_wait (-1, status) =
infrun: 11659 [Thread 0x2aaaab6f4700 (LWP 11662)],
infrun: status->kind = stopped, signal = SIGTRAP
infrun: infwait_normal_state
infrun: TARGET_WAITKIND_STOPPED
infrun: stop_pc = 0x40098f
infrun: BPSTAT_WHAT_STEP_RESUME
infrun: resume (step=1, signal=0), trap_expected=1, current thread [Thread 0x2aaaab6f4700 (LWP 11662)] at 0x40098f
^^^ step-resume hit, meaning the handler returned, so we go back to stepping thread 3.
infrun: prepare_to_wait
infrun: target_wait (-1, status) =
infrun: 11659 [Thread 0x2aaaab6f4700 (LWP 11662)],
infrun: status->kind = stopped, signal = SIGTRAP
infrun: infwait_normal_state
infrun: TARGET_WAITKIND_STOPPED
infrun: stop_pc = 0x40088b
infrun: switching back to stepped thread
infrun: Switching context from Thread 0x2aaaab6f4700 (LWP 11662) to Thread 0x2aaaab8f5700 (LWP 11663)
infrun: resume (step=1, signal=0), trap_expected=0, current thread [Thread 0x2aaaab8f5700 (LWP 11663)] at 0x400938
infrun: prepare_to_wait
infrun: target_wait (-1, status) =
infrun: 11659 [Thread 0x2aaaab8f5700 (LWP 11663)],
infrun: status->kind = stopped, signal = SIGTRAP
infrun: infwait_normal_state
infrun: TARGET_WAITKIND_STOPPED
infrun: stop_pc = 0x40093a
infrun: keep going
infrun: resume (step=1, signal=0), trap_expected=0, current thread [Thread 0x2aaaab8f5700 (LWP 11663)] at 0x40093a
infrun: prepare_to_wait
infrun: target_wait (-1, status) =
infrun: 11659 [Thread 0x2aaaab8f5700 (LWP 11663)],
infrun: status->kind = stopped, signal = SIGTRAP
infrun: infwait_normal_state
infrun: TARGET_WAITKIND_STOPPED
infrun: stop_pc = 0x40091e
infrun: stepped to a different line
infrun: stop_stepping
[Switching to Thread 0x2aaaab8f5700 (LWP 11663)]
69 (*myp) ++; /* set breakpoint child_two here */
^^^ we stopped at the wrong line. We still stepped a bit because the
test is running in a loop, and when we got back to stepping thread 3,
it happened to be in the stepping range. (The loop increments a
counter, and the test makes sure it increments exactly once. Without
the fix, the counter increments a bunch, since the user-stepped thread
runs free without GDB noticing.)
The fix is to switch to the stepping thread before continuing for the
step-resume breakpoint.
gdb/
2014-02-07 Pedro Alves <palves@redhat.com>
* infrun.c (handle_signal_stop) <signal arrives while stepping
over a breakpoint>: Switch back to the stepping thread.
gdb/testsuite/
2014-02-07 Pedro Alves <pedro@codesourcery.com>
Pedro Alves <palves@redhat.com>
* gdb.threads/step-after-sr-lock.c: New file.
* gdb.threads/step-after-sr-lock.exp: New file.
2014-02-07 19:11:25 +00:00
|
|
|
|
* infrun.c (handle_signal_stop) <signal arrives while stepping
|
|
|
|
|
over a breakpoint>: Switch back to the stepping thread.
|
|
|
|
|
|
2014-01-29 03:48:40 +00:00
|
|
|
|
2014-02-07 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* target.c (target_xfer_partial): Return zero if LEN is zero.
|
|
|
|
|
|
2014-01-27 09:32:33 +00:00
|
|
|
|
2014-02-07 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* auxv.c (procfs_xfer_auxv): Replace -1 with TARGET_XFER_E_IO.
|
|
|
|
|
(ld_so_xfer_auxv): Likewise.
|
|
|
|
|
* bfd-target.c (target_bfd_xfer_partial): Likewise.
|
|
|
|
|
* bsd-kvm.c (bsd_kvm_xfer_partial): Likewise.
|
|
|
|
|
* corelow.c (core_xfer_partial): Likewise.
|
|
|
|
|
* ctf.c (ctf_xfer_partial): Likewise.
|
|
|
|
|
* darwin-nat.c (darwin_read_dyld_info): Likewise.
|
|
|
|
|
(darwin_xfer_partial): Likewise.
|
|
|
|
|
* exec.c (exec_xfer_partial): Likewise.
|
|
|
|
|
* gnu-nat.c (gnu_xfer_partial): Likewise.
|
|
|
|
|
* ia64-hpux-nat.c (ia64_hpux_xfer_uregs): Likewise.
|
|
|
|
|
* inf-ptrace.c (inf_ptrace_xfer_partial): Likewise.
|
|
|
|
|
* inf-ttrace.c (inf_ttrace_xfer_partial): Likewise.
|
|
|
|
|
* linux-nat.c (linux_xfer_siginfo): Likewise.
|
|
|
|
|
(linux_proc_xfer_spu): Likewise.
|
|
|
|
|
* procfs.c (procfs_xfer_partial): Likewise.
|
|
|
|
|
* record-full.c (record_full_xfer_partial): Likewise.
|
|
|
|
|
(record_full_core_xfer_partial): Likewise.
|
|
|
|
|
* remote-sim.c (gdbsim_xfer_partial): Likewise.
|
|
|
|
|
* remote.c (remote_write_qxfer): Likewise.
|
|
|
|
|
(remote_write_qxfer, remote_read_qxfer): Likewise.
|
|
|
|
|
(remote_xfer_partial): Likewise.
|
|
|
|
|
* rs6000-nat.c (rs6000_xfer_partial): Likewise.
|
|
|
|
|
(rs6000_xfer_shared_libraries): Likewise.
|
|
|
|
|
* sparc-nat.c (sparc_xfer_wcookie): Likewise.
|
|
|
|
|
* spu-linux-nat.c (spu_proc_xfer_spu): Likewise.
|
|
|
|
|
(spu_xfer_partial): Likewise.
|
|
|
|
|
* target.c (memory_xfer_partial_1): Likewise.
|
|
|
|
|
* tracepoint.c (tfile_xfer_partial): Likewise.
|
|
|
|
|
* windows-nat.c (windows_xfer_shared_libraries): Likewise.
|
|
|
|
|
(windows_xfer_partial): Likewise.
|
|
|
|
|
|
2014-01-27 04:56:56 +00:00
|
|
|
|
2014-02-07 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* gdbarch.sh (core_xfer_shared_libraries): Returns ULONGEST. Add
|
|
|
|
|
comments.
|
|
|
|
|
(core_xfer_shared_libraries_aix): Likewise.
|
|
|
|
|
* gdbarch.c, gdbarch.h: Regenerated.
|
|
|
|
|
* i386-cygwin-tdep.c (windows_core_xfer_shared_libraries): Return
|
|
|
|
|
ULONGEST. Change 'len_avail' type to ULONGEST.
|
|
|
|
|
* rs6000-aix-tdep.c (rs6000_aix_ld_info_to_xml): Likewise.
|
|
|
|
|
* rs6000-aix-tdep.h (rs6000_aix_ld_info_to_xml): Update
|
|
|
|
|
declaration.
|
|
|
|
|
(rs6000_aix_core_xfer_shared_libraries_aix): Return ULONGEST.
|
|
|
|
|
|
2013-11-04 00:51:19 +00:00
|
|
|
|
2014-02-07 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* corefile.c (memory_error): Get 'exception' from ERR and pass
|
|
|
|
|
'exception' to throw_error.
|
|
|
|
|
|
Extension Language API
* configure.ac (libpython checking): Remove all but python.o from
CONFIG_OBS. Remove all but python.c from CONFIG_SRCS.
* configure: Regenerate.
* Makefile.in (SFILES): Add extension.c.
(HFILES_NO_SRCDIR): Add extension.h, extension-priv.h
(COMMON_OBS): Add extension.o.
* extension.h: New file.
* extension-priv.h: New file.
* extension.c: New file.
* python/python-internal.h: #include "extension.h".
(gdbpy_auto_load_enabled): Declare.
(gdbpy_apply_val_pretty_printer): Declare.
(gdbpy_apply_frame_filter): Declare.
(gdbpy_preserve_values): Declare.
(gdbpy_breakpoint_cond_says_stop): Declare.
(gdbpy_breakpoint_has_cond): Declare.
(void source_python_script_for_objfile): Delete.
* python/python.c: #include "extension-priv.h".
Delete inclusion of "observer.h".
(extension_language_python): Moved here and renamed from
script_language_python in py-auto-load.c.
Redefined to be of type extension_language_defn.
(python_extension_script_ops): New global.
(python_extension_ops): New global.
(struct python_env): New member previous_active.
(restore_python_env): Call restore_active_ext_lang.
(ensure_python_env): Call set_active_ext_lang.
(gdbpy_clear_quit_flag): Renamed from clear_quit_flag, made static.
New arg extlang.
(gdbpy_set_quit_flag): Renamed from set_quit_flag, made static.
New arg extlang.
(gdbpy_check_quit_flag): Renamed from check_quit_flag, made static.
New arg extlang.
(gdbpy_eval_from_control_command): Renamed from
eval_python_from_control_command, made static. New arg extlang.
(gdbpy_source_script) Renamed from source_python_script, made static.
New arg extlang.
(gdbpy_before_prompt_hook): Renamed from before_prompt_hook. Change
result to int. New arg extlang.
(gdbpy_source_objfile_script): Renamed from
source_python_script_for_objfile, made static. New arg extlang.
(gdbpy_start_type_printers): Renamed from start_type_printers, made
static. New args extlang, extlang_printers. Change result type to
"void".
(gdbpy_apply_type_printers): Renamed from apply_type_printers, made
static. New arg extlang. Rename arg printers to extlang_printers
and change type to ext_lang_type_printers *.
(gdbpy_free_type_printers): Renamed from free_type_printers, made
static. Replace argument arg with extlang, extlang_printers.
(!HAVE_PYTHON, eval_python_from_control_command): Delete.
(!HAVE_PYTHON, source_python_script): Delete.
(!HAVE_PYTHON, gdbpy_should_stop): Delete.
(!HAVE_PYTHON, gdbpy_breakpoint_has_py_cond): Delete.
(!HAVE_PYTHON, start_type_printers): Delete.
(!HAVE_PYTHON, apply_type_printers): Delete.
(!HAVE_PYTHON, free_type_printers): Delete.
(_initialize_python): Delete call to observer_attach_before_prompt.
(finalize_python): Set/restore active extension language.
(gdbpy_finish_initialization) Renamed from
finish_python_initialization, made static. New arg extlang.
(gdbpy_initialized): New function.
* python/python.h: #include "extension.h". Delete #include
"value.h", "mi/mi-cmds.h".
(extension_language_python): Declare.
(GDBPY_AUTO_FILE_NAME): Delete.
(enum py_bt_status): Moved to extension.h and renamed to
ext_lang_bt_status.
(enum frame_filter_flags): Moved to extension.h.
(enum py_frame_args): Moved to extension.h and renamed to
ext_lang_frame_args.
(finish_python_initialization): Delete.
(eval_python_from_control_command): Delete.
(source_python_script): Delete.
(apply_val_pretty_printer): Delete.
(apply_frame_filter): Delete.
(preserve_python_values): Delete.
(gdbpy_script_language_defn): Delete.
(gdbpy_should_stop, gdbpy_breakpoint_has_py_cond): Delete.
(start_type_printers, apply_type_printers, free_type_printers): Delete.
* auto-load.c: #include "extension.h".
(GDB_AUTO_FILE_NAME): Delete.
(auto_load_gdb_scripts_enabled): Make public. New arg extlang.
(script_language_gdb): Delete, moved to extension.c and renamed to
extension_language_gdb.
(source_gdb_script_for_objfile): Delete.
(auto_load_pspace_info): New member unsupported_script_warning_printed.
(loaded_script): Change type of language member to
struct extension_language_defn *.
(init_loaded_scripts_info): Initialize
unsupported_script_warning_printed.
(maybe_add_script): Make static. Change type of language arg to
struct extension_language_defn *.
(clear_section_scripts): Reset unsupported_script_warning_printed.
(auto_load_objfile_script_1): Rewrite to use extension language API.
(auto_load_objfile_script): Make public. Remove support-compiled-in
and auto-load-enabled checks, moved to auto_load_scripts_for_objfile.
(source_section_scripts): Rewrite to use extension language API.
(load_auto_scripts_for_objfile): Rewrite to use
auto_load_scripts_for_objfile.
(collect_matching_scripts_data): Change type of language member to
struct extension_language_defn *.
(auto_load_info_scripts): Change type of language arg to
struct extension_language_defn *.
(unsupported_script_warning_print): New function.
(script_not_found_warning_print): Make static.
(_initialize_auto_load): Rewrite construction of scripts-directory
help.
* auto-load.h (struct objfile): Add forward decl.
(struct script_language): Delete.
(struct auto_load_pspace_info): Add forward decl.
(struct extension_language_defn): Add forward decl.
(maybe_add_script): Delete.
(auto_load_objfile_script): Declare.
(script_not_found_warning_print): Delete.
(auto_load_info_scripts): Update prototype.
(auto_load_gdb_scripts_enabled): Declare.
* python/py-auto-load.c (gdbpy_auto_load_enabled): Renamed from
auto_load_python_scripts_enabled and made public.
(script_language_python): Delete, moved to python.c.
(gdbpy_script_language_defn): Delete.
(info_auto_load_python_scripts): Update to use
extension_language_python.
* breakpoint.c (condition_command): Replace call to
gdbpy_breakpoint_has_py_cond with call to get_breakpoint_cond_ext_lang.
(bpstat_check_breakpoint_conditions): Replace call to gdbpy_should_stop
with call to breakpoint_ext_lang_cond_says_stop.
* python/py-breakpoint.c (gdbpy_breakpoint_cond_says_stop): Renamed
from gdbpy_should_stop. Change result type to enum scr_bp_stop.
New arg slang. Return SCR_BP_STOP_UNSET if py_bp_object is NULL.
(gdbpy_breakpoint_has_cond): Renamed from gdbpy_breakpoint_has_py_cond.
New arg slang.
(local_setattro): Print name of extension language with existing
stop condition.
* valprint.c (val_print, value_print): Update to call
apply_ext_lang_val_pretty_printer.
* cp-valprint.c (cp_print_value): Update call to
apply_ext_lang_val_pretty_printer.
* python/py-prettyprint.c: Remove #ifdef HAVE_PYTHON.
(gdbpy_apply_val_pretty_printer): Renamed from
apply_val_pretty_printer. New arg extlang.
(!HAVE_PYTHON, apply_val_pretty_printer): Delete.
* cli/cli-cmds.c (source_script_from_stream): Rewrite to use
extension language API.
* cli/cli-script.c (execute_control_command): Update to call
eval_ext_lang_from_control_command.
* mi/mi-cmd-stack.c (mi_cmd_stack_list_frames): Update to use
enum ext_lang_bt_status values. Update call to
apply_ext_lang_frame_filter.
(mi_cmd_stack_list_locals): Ditto.
(mi_cmd_stack_list_args): Ditto.
(mi_cmd_stack_list_variables): Ditto.
* mi/mi-main.c: Delete #include "python/python-internal.h".
Add #include "extension.h".
(mi_cmd_list_features): Replace reference to python internal variable
gdb_python_initialized with call to ext_lang_initialized_p.
* stack.c (backtrace_command_1): Update to use enum ext_lang_bt_status.
Update to use enum ext_lang_frame_args. Update to call
apply_ext_lang_frame_filter.
* python/py-framefilter.c (extract_sym): Update to use enum
ext_lang_bt_status.
(extract_value, py_print_type, py_print_value): Ditto.
(py_print_single_arg, enumerate_args, enumerate_locals): Ditto.
(py_mi_print_variables, py_print_locals, py_print_args): Ditto.
(py_print_frame): Ditto.
(gdbpy_apply_frame_filter): Renamed from apply_frame_filter.
New arg extlang. Update to use enum ext_lang_bt_status.
* top.c (gdb_init): Delete #ifdef HAVE_PYTHON call to
finish_python_initialization. Replace with call to
finish_ext_lang_initialization.
* typeprint.c (do_free_global_table): Update to call
free_ext_lang_type_printers.
(create_global_typedef_table): Update to call
start_ext_lang_type_printers.
(find_global_typedef): Update to call apply_ext_lang_type_printers.
* typeprint.h (struct ext_lang_type_printers): Add forward decl.
(type_print_options): Change type of global_printers from "void *"
to "struct ext_lang_type_printers *".
* value.c (preserve_values): Update to call preserve_ext_lang_values.
* python/py-value.c: Remove #ifdef HAVE_PYTHON.
(gdbpy_preserve_values): Renamed from preserve_python_values.
New arg extlang.
(!HAVE_PYTHON, preserve_python_values): Delete.
* utils.c (quit_flag): Delete, moved to extension.c.
(clear_quit_flag, set_quit_flag, check_quit_flag): Delete, moved to
extension.c.
* eval.c: Delete #include "python/python.h".
* main.c: Delete #include "python/python.h".
* defs.h: Update comment.
testsuite/
* gdb.python/py-breakpoint.exp (test_bkpt_eval_funcs): Update expected
output.
* gdb.gdb/python-interrupts.exp: New file.
2014-02-06 03:27:58 +00:00
|
|
|
|
2014-02-06 Doug Evans <xdje42@gmail.com>
|
|
|
|
|
|
|
|
|
|
* configure.ac (libpython checking): Remove all but python.o from
|
|
|
|
|
CONFIG_OBS. Remove all but python.c from CONFIG_SRCS.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
|
|
|
|
* Makefile.in (SFILES): Add extension.c.
|
|
|
|
|
(HFILES_NO_SRCDIR): Add extension.h, extension-priv.h
|
|
|
|
|
(COMMON_OBS): Add extension.o.
|
|
|
|
|
* extension.h: New file.
|
|
|
|
|
* extension-priv.h: New file.
|
|
|
|
|
* extension.c: New file.
|
|
|
|
|
|
|
|
|
|
* python/python-internal.h: #include "extension.h".
|
|
|
|
|
(gdbpy_auto_load_enabled): Declare.
|
|
|
|
|
(gdbpy_apply_val_pretty_printer): Declare.
|
|
|
|
|
(gdbpy_apply_frame_filter): Declare.
|
|
|
|
|
(gdbpy_preserve_values): Declare.
|
|
|
|
|
(gdbpy_breakpoint_cond_says_stop): Declare.
|
|
|
|
|
(gdbpy_breakpoint_has_cond): Declare.
|
|
|
|
|
(void source_python_script_for_objfile): Delete.
|
|
|
|
|
* python/python.c: #include "extension-priv.h".
|
|
|
|
|
Delete inclusion of "observer.h".
|
|
|
|
|
(extension_language_python): Moved here and renamed from
|
|
|
|
|
script_language_python in py-auto-load.c.
|
|
|
|
|
Redefined to be of type extension_language_defn.
|
|
|
|
|
(python_extension_script_ops): New global.
|
|
|
|
|
(python_extension_ops): New global.
|
|
|
|
|
(struct python_env): New member previous_active.
|
|
|
|
|
(restore_python_env): Call restore_active_ext_lang.
|
|
|
|
|
(ensure_python_env): Call set_active_ext_lang.
|
|
|
|
|
(gdbpy_clear_quit_flag): Renamed from clear_quit_flag, made static.
|
|
|
|
|
New arg extlang.
|
|
|
|
|
(gdbpy_set_quit_flag): Renamed from set_quit_flag, made static.
|
|
|
|
|
New arg extlang.
|
|
|
|
|
(gdbpy_check_quit_flag): Renamed from check_quit_flag, made static.
|
|
|
|
|
New arg extlang.
|
|
|
|
|
(gdbpy_eval_from_control_command): Renamed from
|
|
|
|
|
eval_python_from_control_command, made static. New arg extlang.
|
|
|
|
|
(gdbpy_source_script) Renamed from source_python_script, made static.
|
|
|
|
|
New arg extlang.
|
|
|
|
|
(gdbpy_before_prompt_hook): Renamed from before_prompt_hook. Change
|
|
|
|
|
result to int. New arg extlang.
|
|
|
|
|
(gdbpy_source_objfile_script): Renamed from
|
|
|
|
|
source_python_script_for_objfile, made static. New arg extlang.
|
|
|
|
|
(gdbpy_start_type_printers): Renamed from start_type_printers, made
|
|
|
|
|
static. New args extlang, extlang_printers. Change result type to
|
|
|
|
|
"void".
|
|
|
|
|
(gdbpy_apply_type_printers): Renamed from apply_type_printers, made
|
|
|
|
|
static. New arg extlang. Rename arg printers to extlang_printers
|
|
|
|
|
and change type to ext_lang_type_printers *.
|
|
|
|
|
(gdbpy_free_type_printers): Renamed from free_type_printers, made
|
|
|
|
|
static. Replace argument arg with extlang, extlang_printers.
|
|
|
|
|
(!HAVE_PYTHON, eval_python_from_control_command): Delete.
|
|
|
|
|
(!HAVE_PYTHON, source_python_script): Delete.
|
|
|
|
|
(!HAVE_PYTHON, gdbpy_should_stop): Delete.
|
|
|
|
|
(!HAVE_PYTHON, gdbpy_breakpoint_has_py_cond): Delete.
|
|
|
|
|
(!HAVE_PYTHON, start_type_printers): Delete.
|
|
|
|
|
(!HAVE_PYTHON, apply_type_printers): Delete.
|
|
|
|
|
(!HAVE_PYTHON, free_type_printers): Delete.
|
|
|
|
|
(_initialize_python): Delete call to observer_attach_before_prompt.
|
|
|
|
|
(finalize_python): Set/restore active extension language.
|
|
|
|
|
(gdbpy_finish_initialization) Renamed from
|
|
|
|
|
finish_python_initialization, made static. New arg extlang.
|
|
|
|
|
(gdbpy_initialized): New function.
|
|
|
|
|
* python/python.h: #include "extension.h". Delete #include
|
|
|
|
|
"value.h", "mi/mi-cmds.h".
|
|
|
|
|
(extension_language_python): Declare.
|
|
|
|
|
(GDBPY_AUTO_FILE_NAME): Delete.
|
|
|
|
|
(enum py_bt_status): Moved to extension.h and renamed to
|
|
|
|
|
ext_lang_bt_status.
|
|
|
|
|
(enum frame_filter_flags): Moved to extension.h.
|
|
|
|
|
(enum py_frame_args): Moved to extension.h and renamed to
|
|
|
|
|
ext_lang_frame_args.
|
|
|
|
|
(finish_python_initialization): Delete.
|
|
|
|
|
(eval_python_from_control_command): Delete.
|
|
|
|
|
(source_python_script): Delete.
|
|
|
|
|
(apply_val_pretty_printer): Delete.
|
|
|
|
|
(apply_frame_filter): Delete.
|
|
|
|
|
(preserve_python_values): Delete.
|
|
|
|
|
(gdbpy_script_language_defn): Delete.
|
|
|
|
|
(gdbpy_should_stop, gdbpy_breakpoint_has_py_cond): Delete.
|
|
|
|
|
(start_type_printers, apply_type_printers, free_type_printers): Delete.
|
|
|
|
|
|
|
|
|
|
* auto-load.c: #include "extension.h".
|
|
|
|
|
(GDB_AUTO_FILE_NAME): Delete.
|
|
|
|
|
(auto_load_gdb_scripts_enabled): Make public. New arg extlang.
|
|
|
|
|
(script_language_gdb): Delete, moved to extension.c and renamed to
|
|
|
|
|
extension_language_gdb.
|
|
|
|
|
(source_gdb_script_for_objfile): Delete.
|
|
|
|
|
(auto_load_pspace_info): New member unsupported_script_warning_printed.
|
|
|
|
|
(loaded_script): Change type of language member to
|
|
|
|
|
struct extension_language_defn *.
|
|
|
|
|
(init_loaded_scripts_info): Initialize
|
|
|
|
|
unsupported_script_warning_printed.
|
|
|
|
|
(maybe_add_script): Make static. Change type of language arg to
|
|
|
|
|
struct extension_language_defn *.
|
|
|
|
|
(clear_section_scripts): Reset unsupported_script_warning_printed.
|
|
|
|
|
(auto_load_objfile_script_1): Rewrite to use extension language API.
|
|
|
|
|
(auto_load_objfile_script): Make public. Remove support-compiled-in
|
|
|
|
|
and auto-load-enabled checks, moved to auto_load_scripts_for_objfile.
|
|
|
|
|
(source_section_scripts): Rewrite to use extension language API.
|
|
|
|
|
(load_auto_scripts_for_objfile): Rewrite to use
|
|
|
|
|
auto_load_scripts_for_objfile.
|
|
|
|
|
(collect_matching_scripts_data): Change type of language member to
|
|
|
|
|
struct extension_language_defn *.
|
|
|
|
|
(auto_load_info_scripts): Change type of language arg to
|
|
|
|
|
struct extension_language_defn *.
|
|
|
|
|
(unsupported_script_warning_print): New function.
|
|
|
|
|
(script_not_found_warning_print): Make static.
|
|
|
|
|
(_initialize_auto_load): Rewrite construction of scripts-directory
|
|
|
|
|
help.
|
|
|
|
|
* auto-load.h (struct objfile): Add forward decl.
|
|
|
|
|
(struct script_language): Delete.
|
|
|
|
|
(struct auto_load_pspace_info): Add forward decl.
|
|
|
|
|
(struct extension_language_defn): Add forward decl.
|
|
|
|
|
(maybe_add_script): Delete.
|
|
|
|
|
(auto_load_objfile_script): Declare.
|
|
|
|
|
(script_not_found_warning_print): Delete.
|
|
|
|
|
(auto_load_info_scripts): Update prototype.
|
|
|
|
|
(auto_load_gdb_scripts_enabled): Declare.
|
|
|
|
|
* python/py-auto-load.c (gdbpy_auto_load_enabled): Renamed from
|
|
|
|
|
auto_load_python_scripts_enabled and made public.
|
|
|
|
|
(script_language_python): Delete, moved to python.c.
|
|
|
|
|
(gdbpy_script_language_defn): Delete.
|
|
|
|
|
(info_auto_load_python_scripts): Update to use
|
|
|
|
|
extension_language_python.
|
|
|
|
|
|
|
|
|
|
* breakpoint.c (condition_command): Replace call to
|
|
|
|
|
gdbpy_breakpoint_has_py_cond with call to get_breakpoint_cond_ext_lang.
|
|
|
|
|
(bpstat_check_breakpoint_conditions): Replace call to gdbpy_should_stop
|
|
|
|
|
with call to breakpoint_ext_lang_cond_says_stop.
|
|
|
|
|
* python/py-breakpoint.c (gdbpy_breakpoint_cond_says_stop): Renamed
|
|
|
|
|
from gdbpy_should_stop. Change result type to enum scr_bp_stop.
|
|
|
|
|
New arg slang. Return SCR_BP_STOP_UNSET if py_bp_object is NULL.
|
|
|
|
|
(gdbpy_breakpoint_has_cond): Renamed from gdbpy_breakpoint_has_py_cond.
|
|
|
|
|
New arg slang.
|
|
|
|
|
(local_setattro): Print name of extension language with existing
|
|
|
|
|
stop condition.
|
|
|
|
|
|
|
|
|
|
* valprint.c (val_print, value_print): Update to call
|
|
|
|
|
apply_ext_lang_val_pretty_printer.
|
|
|
|
|
* cp-valprint.c (cp_print_value): Update call to
|
|
|
|
|
apply_ext_lang_val_pretty_printer.
|
|
|
|
|
* python/py-prettyprint.c: Remove #ifdef HAVE_PYTHON.
|
|
|
|
|
(gdbpy_apply_val_pretty_printer): Renamed from
|
|
|
|
|
apply_val_pretty_printer. New arg extlang.
|
|
|
|
|
(!HAVE_PYTHON, apply_val_pretty_printer): Delete.
|
|
|
|
|
|
|
|
|
|
* cli/cli-cmds.c (source_script_from_stream): Rewrite to use
|
|
|
|
|
extension language API.
|
|
|
|
|
* cli/cli-script.c (execute_control_command): Update to call
|
|
|
|
|
eval_ext_lang_from_control_command.
|
|
|
|
|
|
|
|
|
|
* mi/mi-cmd-stack.c (mi_cmd_stack_list_frames): Update to use
|
|
|
|
|
enum ext_lang_bt_status values. Update call to
|
|
|
|
|
apply_ext_lang_frame_filter.
|
|
|
|
|
(mi_cmd_stack_list_locals): Ditto.
|
|
|
|
|
(mi_cmd_stack_list_args): Ditto.
|
|
|
|
|
(mi_cmd_stack_list_variables): Ditto.
|
|
|
|
|
* mi/mi-main.c: Delete #include "python/python-internal.h".
|
|
|
|
|
Add #include "extension.h".
|
|
|
|
|
(mi_cmd_list_features): Replace reference to python internal variable
|
|
|
|
|
gdb_python_initialized with call to ext_lang_initialized_p.
|
|
|
|
|
|
|
|
|
|
* stack.c (backtrace_command_1): Update to use enum ext_lang_bt_status.
|
|
|
|
|
Update to use enum ext_lang_frame_args. Update to call
|
|
|
|
|
apply_ext_lang_frame_filter.
|
|
|
|
|
* python/py-framefilter.c (extract_sym): Update to use enum
|
|
|
|
|
ext_lang_bt_status.
|
|
|
|
|
(extract_value, py_print_type, py_print_value): Ditto.
|
|
|
|
|
(py_print_single_arg, enumerate_args, enumerate_locals): Ditto.
|
|
|
|
|
(py_mi_print_variables, py_print_locals, py_print_args): Ditto.
|
|
|
|
|
(py_print_frame): Ditto.
|
|
|
|
|
(gdbpy_apply_frame_filter): Renamed from apply_frame_filter.
|
|
|
|
|
New arg extlang. Update to use enum ext_lang_bt_status.
|
|
|
|
|
|
|
|
|
|
* top.c (gdb_init): Delete #ifdef HAVE_PYTHON call to
|
|
|
|
|
finish_python_initialization. Replace with call to
|
|
|
|
|
finish_ext_lang_initialization.
|
|
|
|
|
|
|
|
|
|
* typeprint.c (do_free_global_table): Update to call
|
|
|
|
|
free_ext_lang_type_printers.
|
|
|
|
|
(create_global_typedef_table): Update to call
|
|
|
|
|
start_ext_lang_type_printers.
|
|
|
|
|
(find_global_typedef): Update to call apply_ext_lang_type_printers.
|
|
|
|
|
* typeprint.h (struct ext_lang_type_printers): Add forward decl.
|
|
|
|
|
(type_print_options): Change type of global_printers from "void *"
|
|
|
|
|
to "struct ext_lang_type_printers *".
|
|
|
|
|
|
|
|
|
|
* value.c (preserve_values): Update to call preserve_ext_lang_values.
|
|
|
|
|
* python/py-value.c: Remove #ifdef HAVE_PYTHON.
|
|
|
|
|
(gdbpy_preserve_values): Renamed from preserve_python_values.
|
|
|
|
|
New arg extlang.
|
|
|
|
|
(!HAVE_PYTHON, preserve_python_values): Delete.
|
|
|
|
|
|
|
|
|
|
* utils.c (quit_flag): Delete, moved to extension.c.
|
|
|
|
|
(clear_quit_flag, set_quit_flag, check_quit_flag): Delete, moved to
|
|
|
|
|
extension.c.
|
|
|
|
|
|
|
|
|
|
* eval.c: Delete #include "python/python.h".
|
|
|
|
|
* main.c: Delete #include "python/python.h".
|
|
|
|
|
|
|
|
|
|
* defs.h: Update comment.
|
|
|
|
|
|
2014-02-06 02:48:24 +00:00
|
|
|
|
2014-02-06 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
GDB 7.7 released.
|
|
|
|
|
|
2014-02-05 12:30:33 +00:00
|
|
|
|
2014-02-05 Mark Kettenis <kettenis@gnu.org>
|
|
|
|
|
|
|
|
|
|
* c-exp.y (YYPRINT, c_print_token): Only define if YYBISON is
|
|
|
|
|
defined.
|
|
|
|
|
|
2014-01-20 12:56:13 +00:00
|
|
|
|
2014-02-05 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* remote.c (remote_pass_signals): Remove local 'buf' and use
|
|
|
|
|
rs->buf.
|
|
|
|
|
(remote_program_signals): Likewise.
|
|
|
|
|
|
2014-01-30 02:09:11 +00:00
|
|
|
|
2014-02-05 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* ctf.c: Include "inferior.h" and "gdbthread.h".
|
|
|
|
|
(CTF_PID): A new macro.
|
|
|
|
|
(ctf_open): Call inferior_appeared and add_thread_silent.
|
|
|
|
|
(ctf_close): Call exit_inferior_silent and set inferior_ptid.
|
|
|
|
|
(ctf_thread_alive): New function.
|
|
|
|
|
(init_ctf_ops): Install ctf_thread_alive to to_thread_alive.
|
|
|
|
|
|
2014-01-30 00:37:05 +00:00
|
|
|
|
2014-02-05 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
Revert this patch:
|
|
|
|
|
|
|
|
|
|
2013-05-24 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* tracepoint.c (TFILE_PID): Remove.
|
|
|
|
|
(tfile_open): Don't add thread and inferior.
|
|
|
|
|
(tfile_close): Don't set 'inferior_ptid'. Don't call
|
|
|
|
|
exit_inferior_silent.
|
|
|
|
|
(tfile_thread_alive): Remove.
|
|
|
|
|
(init_tfile_ops): Don't set field 'to_thread_alive' of
|
|
|
|
|
tfile_ops.
|
|
|
|
|
|
2014-02-04 19:42:12 +00:00
|
|
|
|
2014-02-04 Christian Eggers <ceggers@gmx.de> (tiny change)
|
|
|
|
|
|
|
|
|
|
* remote.c (remote_start_remote): Call remote_check_symbols even
|
|
|
|
|
if only symbol-file (not file) has been given.
|
|
|
|
|
|
PowerPC64 ELFv2 ABI: skip global entry point code
This patch handles another aspect of the ELFv2 ABI, which unfortunately
requires common code changes.
In ELFv2, functions may provide both a global and a local entry point.
The global entry point (where the function symbol points to) is intended
to be used for function-pointer or cross-module (PLT) calls, and requires
r12 to be set up to the entry point address itself. The local entry
point (which is found at a fixed offset after the global entry point,
as defined by bits in the symbol table entries' st_other field), instead
expects r2 to be set up to the current TOC.
Now, when setting a breakpoint on a function by name, you really want
that breakpoint to trigger either way, no matter whether the function
is called via its local or global entry point. Since the global entry
point will always fall through into the local entry point, the way to
achieve that is to simply set the breakpoint at the local entry point.
One way to do that would be to have prologue parsing skip the code
sequence that makes up the global entry point. Unfortunately, this
does not work reliably, since -for optimized code- GDB these days
will not actuall invoke the prologue parsing code but instead just
set the breakpoint at the symbol address and rely on DWARF being
correct at any point throughout the function ...
Unfortunately, I don't really see any way to express the notion of
local entry points with the current set of gdbarch callbacks.
Thus this patch adds a new callback, skip_entrypoint, that is
somewhat analogous to skip_prologue, but is called every time
GDB needs to determine a function start address, even in those
cases where GDB decides to not call skip_prologue.
As a side effect, the skip_entrypoint implementation on ppc64
does not need to perform any instruction parsing; it can simply
rely on the local entry point flags in the symbol table entry.
With this implemented, two test cases would still fail to set
the breakpoint correctly, but that's because they use the construct:
gdb_test "break *hello"
Now, using "*hello" explicitly instructs GDB to set the breakpoint
at the numerical value of "hello" treated as function pointer, so
it will by definition only hit the global entry point.
I think this behaviour is unavoidable, but acceptable -- most people
do not use this construct, and if they do, they get what they
asked for ...
In one of those two test cases, use of this construct is really
not appropriate. I think this was added way back when as a means
to work around prologue skipping problems on some platforms. These
days that shouldn't really be necessary any more ...
For the other (step-bt), we really want to make sure backtracing
works on the very first instruction of the routine. To enable that
test also on powerpc64le-linux, we can modify the code to call the
test function via function pointer (which makes it use the global
entry point in the ELFv2 ABI).
gdb/ChangeLog:
* gdbarch.sh (skip_entrypoint): New callback.
* gdbarch.c, gdbarch.h: Regenerate.
* symtab.c (skip_prologue_sal): Call gdbarch_skip_entrypoint.
* infrun.c (fill_in_stop_func): Likewise.
* ppc-linux-tdep.c: Include "elf/ppc64.h".
(ppc_elfv2_elf_make_msymbol_special): New function.
(ppc_elfv2_skip_entrypoint): Likewise.
(ppc_linux_init_abi): Install them for ELFv2.
gdb/testsuite/ChangeLog:
* gdb.base/sigbpt.exp: Do not use "*" when setting breakpoint
on a function.
* gdb.base/step-bt.c: Call hello via function pointer to make
sure its first instruction is executed on powerpc64le-linux.
2014-02-04 17:44:14 +00:00
|
|
|
|
2014-02-04 Ulrich Weigand <uweigand@de.ibm.com>
|
|
|
|
|
|
|
|
|
|
* gdbarch.sh (skip_entrypoint): New callback.
|
|
|
|
|
* gdbarch.c, gdbarch.h: Regenerate.
|
|
|
|
|
* symtab.c (skip_prologue_sal): Call gdbarch_skip_entrypoint.
|
|
|
|
|
* infrun.c (fill_in_stop_func): Likewise.
|
|
|
|
|
* ppc-linux-tdep.c: Include "elf/ppc64.h".
|
|
|
|
|
(ppc_elfv2_elf_make_msymbol_special): New function.
|
|
|
|
|
(ppc_elfv2_skip_entrypoint): Likewise.
|
|
|
|
|
(ppc_linux_init_abi): Install them for ELFv2.
|
|
|
|
|
|
2014-02-04 17:42:35 +00:00
|
|
|
|
2014-02-04 Ulrich Weigand <uweigand@de.ibm.com>
|
|
|
|
|
|
|
|
|
|
* ppc-sysv-tdep.c (ppc64_aggregate_candidate): New routine.
|
|
|
|
|
(ppc64_elfv2_abi_homogeneous_aggregate): Likewise.
|
|
|
|
|
(ppc64_sysv_abi_push_param): Handle ELFv2 homogeneous structs.
|
|
|
|
|
(ppc64_sysv_abi_return_value): Likewise. Also, handle small
|
|
|
|
|
structures returned in GPRs.
|
|
|
|
|
|
2014-02-04 17:41:36 +00:00
|
|
|
|
2014-02-04 Ulrich Weigand <uweigand@de.ibm.com>
|
|
|
|
|
|
|
|
|
|
* ppc-sysv-tdep.c (ppc64_sysv_abi_push_dummy_call): Use correct
|
|
|
|
|
offset to the stack parameter list for the ELFv2 ABI.
|
|
|
|
|
|
2014-02-04 17:40:16 +00:00
|
|
|
|
2014-02-04 Ulrich Weigand <uweigand@de.ibm.com>
|
|
|
|
|
|
|
|
|
|
* ppc-linux-tdep.c (ppc_linux_init_abi): Only call
|
|
|
|
|
set_gdbarch_convert_from_func_ptr_addr and
|
|
|
|
|
set_gdbarch_elf_make_msymbol_special for ELFv1.
|
|
|
|
|
* ppc-sysv-tdep.c (ppc64_sysv_abi_push_param): Only handle
|
|
|
|
|
function descriptors on ELFv1.
|
|
|
|
|
(ppc64_sysv_abi_push_dummy_call): Likewise. On ELFv2,
|
|
|
|
|
set up r12 at function entry.
|
|
|
|
|
|
2014-02-04 17:38:56 +00:00
|
|
|
|
2014-02-04 Ulrich Weigand <uweigand@de.ibm.com>
|
|
|
|
|
|
|
|
|
|
* ppc-tdep.h (enum powerpc_elf_abi): New data type.
|
|
|
|
|
(struct gdbarch_tdep): New member elf_abi.
|
|
|
|
|
|
|
|
|
|
* rs6000-tdep.c: Include "elf/ppc64.h".
|
|
|
|
|
(rs6000_gdbarch_init): Detect ELF ABI version.
|
|
|
|
|
|
2014-02-04 17:34:19 +00:00
|
|
|
|
2014-02-04 Ulrich Weigand <uweigand@de.ibm.com>
|
|
|
|
|
|
|
|
|
|
* ppc-sysv-tdep.c (ppc64_sysv_abi_push_freg): Use correct order
|
|
|
|
|
within a register pair holding a DFP 128-bit value on little-endian.
|
|
|
|
|
(ppc64_sysv_abi_return_value_base): Likewise.
|
|
|
|
|
* rs6000-tdep.c (dfp_pseudo_register_read): Likewise.
|
|
|
|
|
(dfp_pseudo_register_write): Likewise.
|
|
|
|
|
|
2014-02-04 17:33:04 +00:00
|
|
|
|
2014-02-04 Ulrich Weigand <uweigand@de.ibm.com>
|
|
|
|
|
|
|
|
|
|
* ppc-sysv-tdep.c (ppc64_sysv_abi_push_freg): Use correct
|
|
|
|
|
offset on little-endian when passing _Decimal32.
|
|
|
|
|
(ppc64_sysv_abi_return_value_base): Likewise for return values.
|
|
|
|
|
|
2014-02-04 17:31:38 +00:00
|
|
|
|
2014-02-04 Ulrich Weigand <uweigand@de.ibm.com>
|
|
|
|
|
|
|
|
|
|
* rs6000-tdep.c (efpr_pseudo_register_read): Use correct offset
|
|
|
|
|
of the overlapped FP register within the VSX register on little-
|
|
|
|
|
endian platforms.
|
|
|
|
|
(efpr_pseudo_register_write): Likewise.
|
|
|
|
|
|
2014-02-04 17:26:26 +00:00
|
|
|
|
2014-02-04 Ulrich Weigand <uweigand@de.ibm.com>
|
|
|
|
|
|
|
|
|
|
* ppc-sysv-tdep.c (ppc64_sysv_abi_push_val): Use correct
|
|
|
|
|
offset on little-endian when passing small structures.
|
|
|
|
|
|
Refactor ppc64 function call and return value handling
This patch refactors the ppc64 function call and return value handling code
in ppc-sysv-tdep.c. The main problem to be addressed by this refactoring
is the code duplication caused by certain aggregate types:
According to the ABI, some types are to be decomposed into component types
for parameter and return value handling. For example, complex types are
to be passed as if the real and imaginary component were separate arguments.
Similarly, certain OpenCL vector types are passed as if they were multiple
separate arguments of the vector element type. With the new ELFv2 ABI,
there is another case: "homogeneous aggregates" (e.g. a struct containing
4 floats) are passed in multiple floating point registers as well.
Unfortunately, the current code is not structured to easily model these
ABI properties. For example, code to pass complex values re-implements
code to pass the underlying (floating-point) type. This has already
led to some unfortunate code duplication, and with the addition of
ELFv2 ABI support, I would have had to add yet more such duplication.
To avoid that, I've decided to refactor the code in order to re-use
subroutines that handle the "base" types when handling those aggregate
types. This was not intended to cause any difference on current
(ELFv1) ABI code, but in fact it fixes a bug:
FAIL: gdb.base/varargs.exp: print find_max_float_real(4, fc1, fc2, fc3, fc4)
This was caused by the old code in ppc64_sysv_abi_push_float incorrectly
handling floating-point arguments to vararg routines, which just happens
to work out correctly automatically in the refactored code ...
gdb/ChangeLog:
* ppc-sysv-tdep.c (get_decimal_float_return_value): Update comment.
(struct ppc64_sysv_argpos): New data structure.
(ppc64_sysv_abi_push_float): Remove.
(ppc64_sysv_abi_push_val): New function.
(ppc64_sysv_abi_push_integer): Likewise.
(ppc64_sysv_abi_push_freg): Likewise.
(ppc64_sysv_abi_push_vreg): Likewise.
(ppc64_sysv_abi_push_param): Likewise.
(ppc64_sysv_abi_push_dummy_call): Refactor to use those new routines.
(ppc64_sysv_abi_return_value_base): New function.
(ppc64_sysv_abi_return_value): Refactor to use it.
2014-02-04 17:24:42 +00:00
|
|
|
|
2014-02-04 Ulrich Weigand <uweigand@de.ibm.com>
|
|
|
|
|
|
|
|
|
|
* ppc-sysv-tdep.c (get_decimal_float_return_value): Update comment.
|
|
|
|
|
(struct ppc64_sysv_argpos): New data structure.
|
|
|
|
|
(ppc64_sysv_abi_push_float): Remove.
|
|
|
|
|
(ppc64_sysv_abi_push_val): New function.
|
|
|
|
|
(ppc64_sysv_abi_push_integer): Likewise.
|
|
|
|
|
(ppc64_sysv_abi_push_freg): Likewise.
|
|
|
|
|
(ppc64_sysv_abi_push_vreg): Likewise.
|
|
|
|
|
(ppc64_sysv_abi_push_param): Likewise.
|
|
|
|
|
(ppc64_sysv_abi_push_dummy_call): Refactor to use those new routines.
|
|
|
|
|
(ppc64_sysv_abi_return_value_base): New function.
|
|
|
|
|
(ppc64_sysv_abi_return_value): Refactor to use it.
|
|
|
|
|
|
2014-02-04 17:19:51 +00:00
|
|
|
|
2014-02-04 Ulrich Weigand <uweigand@de.ibm.com>
|
|
|
|
|
|
|
|
|
|
* NEWS: Document new target powerpc64le-*-linux*.
|
|
|
|
|
|
2014-02-04 12:18:15 +00:00
|
|
|
|
2014-02-04 Mark Kettenis <kettenis@gnu.org>
|
|
|
|
|
|
|
|
|
|
* sparc64obsd-tdep.c (sparc64obsd_gregset): New variable.
|
|
|
|
|
(sparc64obsd_supply_gregset): Handle registers sets used in ELF
|
|
|
|
|
core dumps.
|
|
|
|
|
(sparc64obsd_init_abi): Adjust minimum size of the general purpose
|
|
|
|
|
register set used in ELF core dumps. Add floating-point register set.
|
|
|
|
|
|
2014-02-04 04:52:59 +00:00
|
|
|
|
2014-02-03 Kevin Buettner <kevinb@redhat.com>
|
|
|
|
|
|
|
|
|
|
* mn10300-tdep.c (mn10300_dwarf2_reg_to_regnum): Rewrite
|
|
|
|
|
dwarf2_to_gdb[] table using symbolic constants. Adjust
|
|
|
|
|
penultimate entry from number representing the PC register
|
|
|
|
|
to symbolic constant representing the MDR register. Add
|
|
|
|
|
constant for the PC register to the end of the table.
|
|
|
|
|
|
2014-02-03 13:38:59 +00:00
|
|
|
|
2014-02-03 Mark Kettenis <kettenis@gnu.org>
|
|
|
|
|
|
|
|
|
|
* bsd-kvm.c: Include <sys/param.h>
|
|
|
|
|
|
2014-02-03 13:29:28 +00:00
|
|
|
|
2014-02-03 Mark Kettenis <kettenis@gnu.org>
|
|
|
|
|
|
|
|
|
|
* sparc64nbsd-nat.c (sparc64nbsd_supply_fpregset): Fix prototype.
|
|
|
|
|
|
2014-01-31 11:30:02 +00:00
|
|
|
|
2014-01-31 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* ada-lang.h (clear_ada_sym_cache): Delete.
|
|
|
|
|
|
2014-01-30 18:12:35 +00:00
|
|
|
|
2014-01-30 Ulrich Weigand <uweigand@de.ibm.com>
|
|
|
|
|
|
|
|
|
|
* auxv.c (fprint_target_auxv): Handle AT_HWCAP2.
|
|
|
|
|
|
2014-01-29 15:15:05 +00:00
|
|
|
|
2014-01-29 Jose E. Marchesi <jose.marchesi@oracle.com>
|
|
|
|
|
|
|
|
|
|
* sparc64-linux-tdep.c (sparc64_linux_step_trap): Get PC from
|
|
|
|
|
the sigreturn register save area only if the syscall is
|
|
|
|
|
sigreturn.
|
|
|
|
|
|
2014-01-29 10:25:18 +00:00
|
|
|
|
2014-01-29 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* valops.c (value_slice): Minor reformatting.
|
|
|
|
|
|
2014-01-28 16:49:13 +00:00
|
|
|
|
2014-01-28 Ulrich Weigand <uweigand@de.ibm.com>
|
|
|
|
|
|
|
|
|
|
* ppc64-tdep.c (ppc64_standard_linkage7): Fix typo.
|
|
|
|
|
|
New Ada maintenance command to ignore descriptive types (DWARF).
Currently, Ada debugging requires the use of certain GNAT-specific
encodings, which are generated by the compiler. These encodings
were created a long time ago to work around the fairly limited
capabilities of the stabs debugging format. With DWARF, the vast
majority of the encodings could be abandoned in favor of a pure
DWARF approach.
In order to make it easier to evaluate the quality of the DWARF
debugging information generated by the compiler, and how the debugger
handles it, we are introducing a small Ada-specific maintenance
setting which changes the debugger's behavior to ignore descriptive
types. Descriptive types are artificial types generated by the
compiler purely to give the debugger hints as to how to properly
decode certain properties of a type. For instance, for array
types, it generates a parallel type whose name is the name of
the array suffixed with ___XA, whose contents tells us what
the array's index type is, and possibly its bounds. See GCC's
gcc/ada/exp_dbug.ads for the full description of all encodings.
This is only a first step, as this setting does not deactivate
all encodings; More settings dedicated to each type of encoding
will likely be implemented in the future, as we make progress.
gdb/ChangeLog:
* ada-lang.c (maint_set_ada_cmdlist, maint_show_ada_cmdlist):
New static globals.
(maint_set_ada_cmd, maint_show_ada_cmd): New functions.
(ada_ignore_descriptive_types_p): New static global.
(find_parallel_type_by_descriptive_type): Return immediately
if ada_ignore_descriptive_types_p is set.
(_initialize_ada_language): Register new commands "maintenance
set ada", "maintenance show ada", "maintenance set ada
ignore-descriptive-types" and "maintenance show ada
ignore-descriptive-types".
* NEWS: Add entry for new "maint ada set/show
ignore-descriptive-types" commands.
gdb/doc/ChangeLog:
* gdb.texinfo (Ada Glitches): Document the new "maint ada set/show
ignore-descriptive-types". commands.
2014-01-16 11:08:16 +00:00
|
|
|
|
2014-01-28 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* ada-lang.c (maint_set_ada_cmdlist, maint_show_ada_cmdlist):
|
|
|
|
|
New static globals.
|
|
|
|
|
(maint_set_ada_cmd, maint_show_ada_cmd): New functions.
|
|
|
|
|
(ada_ignore_descriptive_types_p): New static global.
|
|
|
|
|
(find_parallel_type_by_descriptive_type): Return immediately
|
|
|
|
|
if ada_ignore_descriptive_types_p is set.
|
|
|
|
|
(_initialize_ada_language): Register new commands "maintenance
|
|
|
|
|
set ada", "maintenance show ada", "maintenance set ada
|
|
|
|
|
ignore-descriptive-types" and "maintenance show ada
|
|
|
|
|
ignore-descriptive-types".
|
|
|
|
|
* NEWS: Add entry for new "maint ada set/show
|
|
|
|
|
ignore-descriptive-types" commands.
|
|
|
|
|
|
2013-12-03 09:20:47 +00:00
|
|
|
|
2014-01-27 Markus Metzger <markus.t.metzger@intel.com>
|
|
|
|
|
|
|
|
|
|
* record-btrace.c (record_btrace_close): Call btrace_teardown
|
|
|
|
|
for all threads.
|
|
|
|
|
|
2014-01-22 07:42:27 +00:00
|
|
|
|
2014-01-27 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* ada-lang.c: Remove "#ifdef UI_OUT" condition for including
|
|
|
|
|
"ui-out.h".
|
|
|
|
|
|
2014-01-15 16:00:05 +00:00
|
|
|
|
2014-01-27 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* ada-typeprint (type_is_full_subrange_of_target_type):
|
|
|
|
|
New function.
|
|
|
|
|
(print_range): Add parameter bounds_prefered_p. If not set,
|
|
|
|
|
try printing range types using the name of their base type.
|
|
|
|
|
(print_range_type): Add parameter bounds_prefered_p.
|
|
|
|
|
Use it in call to print_range.
|
|
|
|
|
(print_array_type, ada_print_type): Update calls to print_range
|
|
|
|
|
and print_range_type.
|
|
|
|
|
|
2014-01-15 15:14:15 +00:00
|
|
|
|
2014-01-27 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* ada-typeprint.c (print_array_type, print_choices, print_range)
|
|
|
|
|
(print_range_bound, print_dynamic_range_bound, print_range_type):
|
|
|
|
|
Remove declaration.
|
|
|
|
|
|
2014-01-15 14:27:09 +00:00
|
|
|
|
2014-01-27 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* ada-typeprint.c (print_range): Add missing empty line
|
|
|
|
|
after local declaration.
|
|
|
|
|
|
[Ada] Array bound incorrectly printed for array indexed by enum subrange
Consider the following declarations:
type Range_Type is (One, Two, Three);
type Array_Type is array (Range_Type range One .. Two) of Integer;
A : Array_Type := (1, 2);
Trying to print A can yield:
(gdb) print a
$1 = (one => 1, 2)
The bound of the first element should not have been printed, since
"one" is the first enumerate of type Range_Type. Similarly, with
the following declarations:
type Array2_Type is array (Range_Type range Two .. Three) of Integer;
A2 : Array2_Type := (2, 3);
GDB is failing to print the bound of the first element of "A2":
(gdb) print a2
$2 = (2, 3)
This is because the index type for both types Array_Type and Array2_Type
are subranges (by DWARF definition for arrays), of an anonymous subrange
type. When deciding whether to print the bound of the first element,
we handle subranges, but only up to one level. This patch enhanced
the code to handle any number of subrange levels.
gdb/ChangeLog:
* ada-valprint.c (print_optional_low_bound): Get index_type's
target type for as long as it is a TYPE_CODE_RANGE.
No testcase with this patch, but this will be tested via the testcase
of another patch, which uses the DWARF assembler to generate debugging
info for an array indexed by an enum.
2014-01-09 13:30:39 +00:00
|
|
|
|
2014-01-27 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* ada-valprint.c (print_optional_low_bound): Get index_type's
|
|
|
|
|
target type for as long as it is a TYPE_CODE_RANGE.
|
|
|
|
|
|
Remove assert in procfs.c::procfs_make_note_section (x86-solaris)
On x86-solaris, the gcore command sometimes triggers the following
internal error:
(gdb) gcore
/[...]/procfs.c:5523: internal-error: procfs_make_note_section: Assertion `thread_args.note_data != note_data' failed.
The problem is extremely elusive, for reasons that will become clearer
as I explain what is going on.
The program used to produce this issue was really simple:
| void break_me (void) { }
|
| int
| main (void)
| {
| break_me ();
| return 0;
| }
The procfs_make_note_section builds a buffer incrementally with
the contents of the core's notes section. The interesting bits are:
char *note_data = NULL;
[...]
note_data = (char *) elfcore_write_prpsinfo (obfd,
note_data,
note_size,
fname,
psargs);
This is the first call to bfd's elfcore which initializes note_data.
After that, we have a few more calls, which keep updating notes_data
and note_size, but our interest lies in the following part of
the function:
thread_args.note_data = note_data;
[...]
proc_iterate_over_threads (pi, procfs_corefile_thread_callback,
&thread_args);
/* There should be always at least one thread. */
gdb_assert (thread_args.note_data != note_data);
The comment implies that the assert is to verify that our loop
iterated over at least one thread. The check is relying on the
fact that the notes_data returned by the elfcore module changes
at each iteration, via (in procfs_corefile_thread_callback):
args->note_data = procfs_do_thread_registers (args->obfd, ptid,
args->note_data,
args->note_size,
args->stop_signal);
(which calls elfcore_write_lwpstatus).
But, while it happens most of the time, thanks to a call to realloc
in elfcore_write_note (the function that actually appends the data
at the end of the notes buffer),...
buf = (char *) realloc (buf, *bufsiz + newspace);
... this is by no means guarantied. In fact, under the right
circumstances, the buffer was grown twice without changing
addresses. Unfortunately, the circumstances are very sensitive,
thus making this bug very elusive.
This patch fixes the problem by simply removing the assert.
This means we're losing the assertion that there is at least one
thread, but I think that's OK. If we still want to keep the
assertion, we have the option of either checking the buffer
size, or else adding a boolean flag in the context structure
that we'd set to true as soon as we have a thread.
gdb/ChangeLog:
* procfs.c (procfs_make_note_section): Remove assertion and
associated comment.
2014-01-20 15:18:58 +00:00
|
|
|
|
2014-01-27 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* procfs.c (procfs_make_note_section): Remove assertion and
|
|
|
|
|
associated comment.
|
|
|
|
|
|
2014-01-10 06:11:59 +00:00
|
|
|
|
2014-01-24 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* remote.c (remote_read_bytes): Change type of len to ULONGEST.
|
|
|
|
|
* corelow.c (get_core_siginfo): Likewise.
|
|
|
|
|
|
Change len's type to ULONGEST: remote_write_bytes_aux
Hi,
This patch changes the type of 'len' from ssize_t to ULONGEST.
At the beginning Siddhesh Poyarekar proposed this patch
[PATCH] Memory reads and writes should have size_t length
https://sourceware.org/ml/gdb-patches/2012-05/msg01073.html
to change type of 'len' to size_t. However, after Jan's review, we
decide to change it to ssize_t, because callers of these functions
may pass signed type to them.
AFAICS, the target layer is a boundary. In one side, we pass size_t
or ssize_t to target related APIs, and in the other side, the
implementation side, we used LONGEST (ULONGEST in latest code) because
of to_xfer_partial.
Since remote_write_bytes_aux and remote_write_bytes belong to the
implementation of remote target, we should use ULONGEST for len, IMO.
Regression tested on x86_64-linux. Is it OK?
gdb:
2014-01-24 Yao Qi <yao@codesourcery.com>
* remote.c (remote_write_bytes_aux): Change type of 'len' to
ULONGEST. Don't check 'len' is negative.
(remote_write_bytes): Change type of 'len' to ULONGEST.
2014-01-10 05:59:26 +00:00
|
|
|
|
2014-01-24 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* remote.c (remote_write_bytes_aux): Change type of 'len' to
|
|
|
|
|
ULONGEST. Don't check 'len' is negative.
|
|
|
|
|
(remote_write_bytes): Change type of 'len' to ULONGEST.
|
|
|
|
|
|
2014-01-22 15:52:15 +00:00
|
|
|
|
2014-01-23 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR python/16485:
|
|
|
|
|
* python/lib/gdb/FrameDecorator.py: (FrameVars.fetch_frame_args):
|
|
|
|
|
Handle exception from frame.block.
|
|
|
|
|
(FrameVars.fetch_frame_locals): Likewise.
|
|
|
|
|
|
2014-01-22 15:44:41 +00:00
|
|
|
|
2014-01-23 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR python/16487:
|
|
|
|
|
* python/py-framefilter.c (py_print_frame): Don't call Py_DECREF
|
|
|
|
|
on a NULL pointer. Move "goto error" to correct place.
|
|
|
|
|
|
2014-01-22 15:10:01 +00:00
|
|
|
|
2014-01-23 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR python/16491:
|
|
|
|
|
* python/py-framefilter.c (apply_frame_filter): Call
|
|
|
|
|
ensure_python_env after computing gdbarch.
|
|
|
|
|
|
2013-12-16 06:39:12 +00:00
|
|
|
|
2014-01-23 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* target.c (raw_memory_xfer_partial): Change argument type
|
|
|
|
|
from void * to gdb_byte *.
|
|
|
|
|
(memory_xfer_partial_1, memory_xfer_partial): Likewise.
|
|
|
|
|
|
2014-01-22 22:17:39 +00:00
|
|
|
|
2014-01-22 Doug Evans <dje@google.com>
|
|
|
|
|
|
|
|
|
|
New gdbserver option --debug-format=timestamp.
|
|
|
|
|
* NEWS: Mention it.
|
|
|
|
|
|
2014-01-22 17:54:43 +00:00
|
|
|
|
2014-01-22 Andreas Arnez <arnez@vnet.linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
* syscalls/s390x-linux.xml: New file.
|
|
|
|
|
* syscalls/s390-linux.xml: New file.
|
|
|
|
|
* s390-linux-tdep.c (XML_SYSCALL_FILENAME_S390): New macro.
|
|
|
|
|
(XML_SYSCALL_FILENAME_S390X): Likewise.
|
|
|
|
|
(op_svc): New enum value for SVC opcode.
|
|
|
|
|
(s390_sigtramp_frame_sniffer): Replace literal by 'op_svc'.
|
|
|
|
|
(s390_linux_get_syscall_number): New function.
|
|
|
|
|
(s390_gdbarch_init): Register '*get_syscall_number' and the
|
|
|
|
|
syscall xml file name.
|
|
|
|
|
* data-directory/Makefile.in (SYSCALLS_FILES): Add
|
|
|
|
|
"s390-linux.xml" and "s390x-linux.xml".
|
|
|
|
|
* NEWS: Announce new feature.
|
|
|
|
|
|
2014-01-22 13:02:29 +00:00
|
|
|
|
2014-01-22 Baruch Siach <baruch@tkos.co.il>
|
|
|
|
|
|
|
|
|
|
* xtensa-tdep.h (xtensa_elf_greg_t): Change type to uint32_t.
|
|
|
|
|
|
2014-01-22 12:01:53 +00:00
|
|
|
|
2014-01-22 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* xtensa-config.c: Include defs.h.
|
|
|
|
|
|
2014-01-21 10:16:57 +00:00
|
|
|
|
2014-01-22 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* common/common-utils.h: Add "ARI:" comment beside __func__
|
|
|
|
|
reference.
|
|
|
|
|
|
2014-01-21 10:20:50 +00:00
|
|
|
|
2014-01-22 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* common/common-utils.h (FUNCTION_NAME): Expand the macro's
|
|
|
|
|
documentation a bit.
|
|
|
|
|
|
2014-01-21 19:01:04 +00:00
|
|
|
|
2014-01-21 Roland McGrath <mcgrathr@google.com>
|
|
|
|
|
|
|
|
|
|
* configure.ac: Call AM_PROG_INSTALL_STRIP.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* aclocal.m4: Regenerate.
|
|
|
|
|
* Makefile.in (install_sh, INSTALL_STRIP_PROGRAM, STRIP):
|
|
|
|
|
New substituted variables.
|
|
|
|
|
(install-strip): New target.
|
|
|
|
|
(INSTALL_SCRIPT): New substituted variable.
|
|
|
|
|
(FLAGS_TO_PASS): Add it.
|
|
|
|
|
(install-only): Use $(INSTALL_SCRIPT) rather than
|
|
|
|
|
$(INSTALL_PROGRAM) for gcore.
|
|
|
|
|
|
2013-12-27 05:06:27 +00:00
|
|
|
|
2014-01-20 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* cli/cli-decode.h (struct cmd_list_element): Move all bitfields
|
|
|
|
|
together.
|
|
|
|
|
|
convert flags to bitfields
This changes various flags struct cmd_list_element into bitfields. In
general I think bitfields are cleaner than flag words, at least in a
case like this where there is no need to pass the flags around
independently of the enclosing struct.
2014-01-20 Tom Tromey <tromey@redhat.com>
* cli/cli-decode.c (add_cmd, deprecate_cmd, add_alias_cmd)
(add_setshow_cmd_full, delete_cmd, lookup_cmd_1)
(deprecated_cmd_warning, complete_on_cmdlist): Update.
* cli/cli-decode.h (CMD_DEPRECATED, DEPRECATED_WARN_USER)
(MALLOCED_REPLACEMENT, DOC_ALLOCATED): Remove.
(struct cmd_list_element) <flags>: Remove.
<cmd_deprecated, deprecated_warn_user, malloced_replacement,
doc_allocated>: New fields.
<hook_in, allow_unknown, abbrev_flag, type, var_type>: Now
bitfields.
* maint.c (maintenance_do_deprecate): Update.
* top.c (execute_command): Update.
2013-12-27 05:04:40 +00:00
|
|
|
|
2014-01-20 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* cli/cli-decode.c (add_cmd, deprecate_cmd, add_alias_cmd)
|
|
|
|
|
(add_setshow_cmd_full, delete_cmd, lookup_cmd_1)
|
|
|
|
|
(deprecated_cmd_warning, complete_on_cmdlist): Update.
|
|
|
|
|
* cli/cli-decode.h (CMD_DEPRECATED, DEPRECATED_WARN_USER)
|
|
|
|
|
(MALLOCED_REPLACEMENT, DOC_ALLOCATED): Remove.
|
|
|
|
|
(struct cmd_list_element) <flags>: Remove.
|
|
|
|
|
<cmd_deprecated, deprecated_warn_user, malloced_replacement,
|
|
|
|
|
doc_allocated>: New fields.
|
|
|
|
|
<hook_in, allow_unknown, abbrev_flag, type, var_type>: Now
|
|
|
|
|
bitfields.
|
|
|
|
|
* maint.c (maintenance_do_deprecate): Update.
|
|
|
|
|
* top.c (execute_command): Update.
|
|
|
|
|
|
2014-01-20 07:53:12 +00:00
|
|
|
|
2014-01-20 Baruch Siach <baruch@tkos.co.il>
|
|
|
|
|
|
|
|
|
|
* xtensa-linux-nat.c: Include asm/ptrace.h.
|
|
|
|
|
|
2014-01-18 17:27:28 +00:00
|
|
|
|
2014-01-17 Iain Buclaw <ibuclaw@gdcproject.org>
|
|
|
|
|
|
|
|
|
|
* Makefile.in (SFILES): Add d-support.c.
|
|
|
|
|
(COMMON_OBS): Add d-support.o.
|
|
|
|
|
* d-lang.h (d_parse_symbol): Add comment, now defined in
|
|
|
|
|
d-support.c.
|
|
|
|
|
* d-lang.c (parse_call_convention)
|
|
|
|
|
(parse_attributes, parse_function_types)
|
|
|
|
|
(parse_function_args, parse_type, parse_identifier)
|
|
|
|
|
(call_convention_p, d_parse_symbol): Move functions to ...
|
|
|
|
|
* d-support.c: ... New file.
|
|
|
|
|
|
2014-01-18 17:22:00 +00:00
|
|
|
|
2014-01-17 Iain Buclaw <ibuclaw@gdcproject.org>
|
|
|
|
|
|
|
|
|
|
* d-lang.h (d_parse_symbol): Add declaration.
|
|
|
|
|
* d-lang.c (extract_identifiers)
|
|
|
|
|
(extract_type_info): Remove functions.
|
|
|
|
|
(parse_call_convention, parse_attributes)
|
|
|
|
|
(parse_function_types, parse_function_args)
|
|
|
|
|
(parse_type, parse_identifier, call_convention_p)
|
|
|
|
|
(d_parse_symbol): New functions.
|
|
|
|
|
(d_demangle): Use d_parse_symbol to demangle D symbols.
|
|
|
|
|
|
2014-01-18 17:18:23 +00:00
|
|
|
|
2014-01-17 Iain Buclaw <ibuclaw@gdcproject.org>
|
|
|
|
|
|
|
|
|
|
* d-lang.h (struct builtin_d_type): New data type.
|
|
|
|
|
(builtin_d_type): Add declaration.
|
|
|
|
|
* d-lang.c (d_language_arch_info, build_d_types)
|
|
|
|
|
(builtin_d_type): New functions.
|
|
|
|
|
(enum d_primitive_types): New data type.
|
|
|
|
|
(d_language_defn): Change c_language_arch_info to
|
|
|
|
|
d_language_arch_info.
|
|
|
|
|
(d_type_data): New static variable.
|
|
|
|
|
(_initialize_d_language): Initialize d_type_data.
|
|
|
|
|
|
2014-01-18 17:09:43 +00:00
|
|
|
|
2014-01-17 Iain Buclaw <ibuclaw@gdcproject.org>
|
|
|
|
|
|
|
|
|
|
* d-lang.h (d_main_name): Add declaration.
|
|
|
|
|
* d-lang.c (d_main_name): New function.
|
|
|
|
|
* symtab.c (find_main_name): Add call to d_main_name.
|
|
|
|
|
|
2014-01-18 18:04:08 +00:00
|
|
|
|
2014-01-17 Iain Buclaw <ibuclaw@gdcproject.org>
|
|
|
|
|
|
|
|
|
|
* d-lang.c (d_language_defn): Change macro_expansion_c to
|
|
|
|
|
macro_expansion_no.
|
|
|
|
|
|
2014-01-18 18:02:41 +00:00
|
|
|
|
2014-01-17 Iain Buclaw <ibuclaw@gdcproject.org>
|
|
|
|
|
|
|
|
|
|
* MAINTAINERS: Add myself as a write-after-approval maintainer.
|
|
|
|
|
|
2014-01-17 21:39:57 +00:00
|
|
|
|
2014-01-17 Sergio Durigan Junior <sergiodj@redhat.com>
|
|
|
|
|
|
|
|
|
|
* breakpoint.c (insert_bp_location): Add "volatile" keyword to "struct
|
|
|
|
|
gdb_exception" declaration.
|
|
|
|
|
* remote.c (getpkt_or_notif_sane): Likewise.
|
|
|
|
|
|
2014-01-17 18:23:29 +00:00
|
|
|
|
2014-01-17 Doug Evans <dje@google.com>
|
|
|
|
|
|
|
|
|
|
* common/gdb_vecs.c (delim_string_to_char_ptr_vec_append): New
|
|
|
|
|
function, contents of dirnames_to_char_ptr_vec_append moved here.
|
|
|
|
|
(delim_string_to_char_ptr_vec): New function.
|
|
|
|
|
(dirnames_to_char_ptr_vec_append): Rewrite.
|
|
|
|
|
* common/gdb_vecs.h (delim_string_to_char_ptr_vec): Declare.
|
|
|
|
|
|
2014-01-17 18:00:07 +00:00
|
|
|
|
2014-01-17 Doug Evans <dje@google.com>
|
|
|
|
|
|
|
|
|
|
* common/common-utils.h (FUNCTION_NAME): Renamed from ASSERT_FUNCTION,
|
|
|
|
|
and moved here ...
|
|
|
|
|
* common/gdb_assert.h (ASSERT_FUNCTION): ... from here.
|
|
|
|
|
#include "common-utils.h".
|
|
|
|
|
(gdb_assert, gdb_assert_fail, gdb_assert_not_reached): Update.
|
|
|
|
|
* common/vec.h (VEC_ASSERT_PASS): Update.
|
|
|
|
|
* darwin-nat.h: Replace #include of gdb_assert.h with common-utils.h.
|
|
|
|
|
(MACH_CHECK_ERROR): Update.
|
|
|
|
|
|
2014-01-17 09:54:56 +00:00
|
|
|
|
2014-01-17 Simon Marchi <simon.marchi@ericsson.com>
|
|
|
|
|
|
|
|
|
|
* gdbarch.sh (gdbarch_address_class_name_to_type_flags): Add
|
|
|
|
|
comments.
|
|
|
|
|
* gdbarch.h: Regenerate.
|
|
|
|
|
|
2013-12-28 05:22:07 +00:00
|
|
|
|
2014-01-16 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* value.c (struct value) <regnum>: Move earlier.
|
|
|
|
|
|
2013-12-18 15:27:54 +00:00
|
|
|
|
2014-01-16 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* remote.c (extended_remote_create_inferior): Rename from
|
|
|
|
|
extended_remote_create_inferior_1. Add "ops" argument. Remove
|
|
|
|
|
old implementation.
|
|
|
|
|
|
Fix gdb.trace/mi-traceframe-changed.exp on s390.
The test fails on s390 with:
-trace-find frame-number 0^M
&"PC not available\n"^M
^done,found="1",tracepoint="1",traceframe="0",frame={level="-1",addr="<unavailable>",func="??",args=[]}^M
(gdb) ^M
FAIL: gdb.trace/mi-traceframe-changed.exp: tfile: -trace-find frame-number 0
tfile knows to infer the PC from the tracepoint's address if the PC
wasn't collected (tfile_fetch_registers) but, that only works on
targets whose PC register is a raw register, and on s390, the PC
register is a pseudo register.
But even if GDB doesn't know how to infer the value of PC, saying the
current frame is level -1 is a bug:
^done,found="1",tracepoint="1",traceframe="0",frame={level="-1",addr="<unavailable>",func="??",args=[]}^M
^^^^^^^^^
'-1' is the level of the sentinel frame, which should never be visible.
This is caused by the s390's heuristic unwinder accepting the frame
(the fallback heuristic unwinders _always_ accept the frame), but then
the unwind->this_id method throws that "PC not available\n" error.
IOW, the s390's heuristic unwinder was never adjusted to handle
unavailable register values gracefully, which can happen with e.g., a
trimmed core file too.
This is just the minimal necessary for
<unavailable> frames, which at least gets us:
(gdb) tfind
Found trace frame 0, tracepoint 1
#0 <unavailable> in ?? ()
That is, frame #0 instead of -1.
We could get better info out of "info frame" (this patch makes us show
"outermost"), but this change would still be necessary.
gdb/
2014-01-16 Pedro Alves <palves@redhat.com>
* s390-linux-tdep.c (s390_frame_unwind_cache): Swallow
NOT_AVAILABLE_ERROR errors while parsing the prologue or reading
the backchain.
2014-01-16 17:43:26 +00:00
|
|
|
|
2014-01-16 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* s390-linux-tdep.c (s390_frame_unwind_cache): Swallow
|
|
|
|
|
NOT_AVAILABLE_ERROR errors while parsing the prologue or reading
|
|
|
|
|
the backchain.
|
|
|
|
|
|
2014-01-16 17:29:10 +00:00
|
|
|
|
2014-01-16 Doug Evans <dje@google.com>
|
|
|
|
|
|
|
|
|
|
* dwarf2read.c (open_and_init_dwp_file): Fix typo in comment.
|
|
|
|
|
|
2013-05-06 14:04:46 +00:00
|
|
|
|
2014-01-16 Markus Metzger <markus.t.metzger@intel.com>
|
|
|
|
|
|
|
|
|
|
* btrace.h (btrace_thread_flag): New.
|
|
|
|
|
(struct btrace_thread_info) <flags>: New.
|
|
|
|
|
* record-btrace.c (record_btrace_resume_thread)
|
|
|
|
|
(record_btrace_find_thread_to_move, btrace_step_no_history)
|
|
|
|
|
(btrace_step_stopped, record_btrace_start_replaying)
|
|
|
|
|
(record_btrace_step_thread, record_btrace_decr_pc_after_break)
|
|
|
|
|
(record_btrace_find_resume_thread): New.
|
|
|
|
|
(record_btrace_resume, record_btrace_wait): Extend.
|
|
|
|
|
(record_btrace_can_execute_reverse): New.
|
|
|
|
|
(record_btrace_open): Fail in non-stop mode.
|
|
|
|
|
(record_btrace_set_replay): Split into this, ...
|
|
|
|
|
(record_btrace_stop_replaying): ... this, ...
|
|
|
|
|
(record_btrace_clear_histories): ... and this.
|
|
|
|
|
(init_record_btrace_ops): Init to_can_execute_reverse.
|
|
|
|
|
* NEWS: Announce it.
|
|
|
|
|
|
2013-12-18 10:09:34 +00:00
|
|
|
|
2014-01-16 Markus Metzger <markus.t.metzger@intel.com>
|
|
|
|
|
|
|
|
|
|
* target.h (struct target_ops) <to_decr_pc_after_break>: New.
|
|
|
|
|
(forward_target_decr_pc_after_break)
|
|
|
|
|
(target_decr_pc_after_break): New.
|
|
|
|
|
* target.c (forward_target_decr_pc_after_break)
|
|
|
|
|
(target_decr_pc_after_break): New.
|
|
|
|
|
* aix-thread.c (aix_thread_wait): Call target_decr_pc_after_break
|
|
|
|
|
instead of gdbarch_decr_pc_after_break.
|
|
|
|
|
* darwin-nat.c (cancel_breakpoint): Call target_decr_pc_after_break
|
|
|
|
|
instead of gdbarch_decr_pc_after_break.
|
|
|
|
|
* infrun.c (adjust_pc_after_break): Call target_decr_pc_after_break
|
|
|
|
|
instead of gdbarch_decr_pc_after_break.
|
|
|
|
|
* linux-nat.c (cancel_breakpoint): Call target_decr_pc_after_break
|
|
|
|
|
instead of gdbarch_decr_pc_after_break.
|
|
|
|
|
* linux-thread-db.c (check_event): Call target_decr_pc_after_break
|
|
|
|
|
instead of gdbarch_decr_pc_after_break.
|
|
|
|
|
* record-full.c (record_full_wait_1): Call target_decr_pc_after_break
|
|
|
|
|
instead of gdbarch_decr_pc_after_break.
|
|
|
|
|
|
2013-09-10 10:27:14 +00:00
|
|
|
|
2014-01-16 Markus Metzger <markus.t.metzger@intel.com>
|
|
|
|
|
|
|
|
|
|
* btrace.c: Include regcache.h.
|
|
|
|
|
(btrace_add_pc): New.
|
|
|
|
|
(btrace_enable): Call btrace_add_pc.
|
|
|
|
|
(btrace_is_empty): New.
|
|
|
|
|
* btrace.h (btrace_is_empty): New.
|
|
|
|
|
* record-btrace.c (require_btrace, record_btrace_info): Call
|
|
|
|
|
btrace_is_empty.
|
|
|
|
|
|
2013-06-03 13:39:35 +00:00
|
|
|
|
2014-01-16 Markus Metzger <markus.t.metzger@intel.com>
|
|
|
|
|
|
|
|
|
|
* common/linux-btrace.c (perf_event_read_bts, linux_read_btrace):
|
|
|
|
|
Support delta reads.
|
|
|
|
|
(linux_disable_btrace): Change return type.
|
|
|
|
|
* common/linux-btrace.h (linux_read_btrace): Change parameters
|
|
|
|
|
and return type to allow error reporting. Update users.
|
|
|
|
|
(linux_disable_btrace): Change return type. Update users.
|
|
|
|
|
* common/btrace-common.h (btrace_read_type) <BTRACE_READ_DELTA>:
|
|
|
|
|
New.
|
|
|
|
|
(btrace_error): New.
|
|
|
|
|
(btrace_block) <begin>: Comment on BEGIN == 0.
|
|
|
|
|
* btrace.c (btrace_compute_ftrace): Start from the end of
|
|
|
|
|
the current trace.
|
|
|
|
|
(btrace_stitch_trace, btrace_clear_history): New.
|
|
|
|
|
(btrace_fetch): Read delta trace, return if replaying.
|
|
|
|
|
(btrace_clear): Move clear history code to btrace_clear_history.
|
|
|
|
|
(parse_xml_btrace): Throw an error if parsing failed.
|
|
|
|
|
* target.h (struct target_ops) <to_read_btrace>: Change parameters
|
|
|
|
|
and return type to allow error reporting.
|
|
|
|
|
(target_read_btrace): Change parameters and return type to allow
|
|
|
|
|
error reporting.
|
|
|
|
|
* target.c (target_read_btrace): Update.
|
|
|
|
|
* remote.c (remote_read_btrace): Support delta reads. Pass
|
|
|
|
|
errors on.
|
|
|
|
|
* NEWS: Announce it.
|
|
|
|
|
|
2013-03-27 08:49:47 +00:00
|
|
|
|
2014-01-16 Markus Metzger <markus.t.metzger@intel.com>
|
|
|
|
|
|
|
|
|
|
* record.h (record_btrace_frame_unwind)
|
|
|
|
|
(record_btrace_tailcall_frame_unwind): New declarations.
|
|
|
|
|
* dwarf2-frame: Include record.h
|
|
|
|
|
(dwarf2_frame_cfa): Throw an error for btrace frames.
|
|
|
|
|
* record-btrace.c: Include hashtab.h.
|
|
|
|
|
(btrace_get_bfun_name): New.
|
|
|
|
|
(btrace_call_history): Call btrace_get_bfun_name.
|
|
|
|
|
(struct btrace_frame_cache): New.
|
|
|
|
|
(bfcache): New.
|
|
|
|
|
(bfcache_hash, bfcache_eq, bfcache_new): New.
|
|
|
|
|
(btrace_get_frame_function): New.
|
|
|
|
|
(record_btrace_frame_unwind_stop_reason): Allow unwinding.
|
|
|
|
|
(record_btrace_frame_this_id): Compute own id.
|
|
|
|
|
(record_btrace_frame_prev_register): Provide PC, throw_error
|
|
|
|
|
for all other registers.
|
|
|
|
|
(record_btrace_frame_sniffer): Detect btrace frames.
|
|
|
|
|
(record_btrace_tailcall_frame_sniffer): New.
|
|
|
|
|
(record_btrace_frame_dealloc_cache): New.
|
|
|
|
|
(record_btrace_frame_unwind): Add new functions.
|
|
|
|
|
(record_btrace_tailcall_frame_unwind): New.
|
|
|
|
|
(_initialize_record_btrace): Allocate cache.
|
|
|
|
|
* btrace.c (btrace_clear): Call reinit_frame_cache.
|
|
|
|
|
* NEWS: Announce it.
|
|
|
|
|
|
2013-03-25 15:01:33 +00:00
|
|
|
|
2014-01-16 Markus Metzger <markus.t.metzger@intel.com>
|
|
|
|
|
|
|
|
|
|
* record-btrace.c (record_btrace_set_replay)
|
|
|
|
|
(record_btrace_goto_begin, record_btrace_goto_end)
|
|
|
|
|
(record_btrace_goto): New.
|
|
|
|
|
(init_record_btrace_ops): Initialize them.
|
|
|
|
|
* NEWS: Announce it.
|
|
|
|
|
|
2013-05-03 08:51:13 +00:00
|
|
|
|
2014-01-16 Markus Metzger <markus.t.metzger@intel.com>
|
|
|
|
|
|
|
|
|
|
* record-btrace.c (record_btrace_find_new_threads)
|
|
|
|
|
(record_btrace_thread_alive): New.
|
|
|
|
|
(init_record_btrace_ops): Initialize to_find_new_threads and
|
|
|
|
|
to_thread_alive.
|
|
|
|
|
|
2013-03-25 14:44:43 +00:00
|
|
|
|
2014-01-16 Markus Metzger <markus.t.metzger@intel.com>
|
|
|
|
|
|
|
|
|
|
* record-btrace.c (record_btrace_resume): New.
|
|
|
|
|
(record_btrace_wait): New.
|
|
|
|
|
(init_record_btrace_ops): Initialize to_wait and to_resume.
|
|
|
|
|
|
2013-04-24 11:24:11 +00:00
|
|
|
|
2014-01-16 Markus Metzger <markus.t.metzger@intel.com>
|
|
|
|
|
|
|
|
|
|
* record-btrace.c (record_btrace_xfer_partial)
|
|
|
|
|
(record_btrace_insert_breakpoint, record_btrace_remove_breakpoint)
|
|
|
|
|
(record_btrace_allow_memory_access): New.
|
|
|
|
|
(init_record_btrace_ops): Initialize new methods.
|
|
|
|
|
* target.c (raw_memory_xfer_partial): Bail out if target reports
|
|
|
|
|
that this memory is not available.
|
|
|
|
|
|
target, breakpoint: allow insert/remove breakpoint to be forwarded
2014-01-16 Markus Metzger <markus.t.metzger@intel.com>
* target.h (target_ops) <to_insert_breakpoint>
<to_remove_breakpoint>: Add target_ops parameter.
(forward_target_insert_breakpoint): New.
(forward_target_remove_breakpoint): New.
(memory_remove_breakpoint, memory_insert_breakpoint):
Add target_ops parameter.
* target.c (target_insert_breakpoint): Split into this and ...
(forward_target_insert_breakpoint): ... this.
(target_remove_breakpoint): Split into this and ...
(forward_target_remove_breakpoint): ... this.
(debug_to_insert_breakpoint): Add target_ops parameter.
Call forward_target_insert_breakpoint.
(debug_to_remove_breakpoint): Add target_ops parameter.
Call forward_target_remove_breakpoint.
(update_current_target): Do not inherit or default to_insert_breakpoint
and to_remove_breakpoint.
* corelow.c (ignore): Add target_ops parameter.
* exec.c (ignore): Add target_ops parameter.
* mem-break.c (memory_insert_breakpoint, memory_remove_breakpoint):
Add target_ops parameter.
* monitor.c (monitor_insert_breakpoint, monitor_remove_breakpoint):
Add target_ops parameter.
* nto-procfs.c (procfs_insert_breakpoint, procfs_remove_breakpoint):
Add target_ops parameter.
* record-full.c (record_full_beneath_to_insert_breakpoint)
(record_full_beneath_to_remove_breakpoint, tmp_to_insert_breakpoint)
(tmp_to_remove_breakpoint, record_full_insert_breakpoint)
(record_full_remove_breakpoint, record_full_core_insert_breakpoint)
(record_full_core_remove_breakpoint): Add target_ops parameter.
Update users.
(record_full_beneath_to_insert_breakpoint_ops)
(record_full_beneath_to_remove_breakpoint_ops)
(tmp_to_insert_breakpoint_ops, tmp_to_remove_breakpoint_ops): New.
(record_full_open): Initialize tmp_to_insert_breakpoint_ops,
tmp_to_remove_breakpoint_ops,
record_full_beneath_to_insert_breakpoint_ops, and
record_full_beneath_to_remove_breakpoint_ops.
* remote-m32r-sdi.c (m32r_insert_breakpoint)
(m32r_remove_breakpoint): Add target_ops parameter.
* remote-mips.c (mips_insert_breakpoint, mips_remove_breakpoint):
Add target_ops parameter.
* remote.c (remote_insert_breakpoint, remote_remove_breakpoint):
Add target_ops parameter.
2013-12-17 09:49:03 +00:00
|
|
|
|
2014-01-16 Markus Metzger <markus.t.metzger@intel.com>
|
|
|
|
|
|
|
|
|
|
* target.h (target_ops) <to_insert_breakpoint>
|
|
|
|
|
<to_remove_breakpoint>: Add target_ops parameter.
|
|
|
|
|
(forward_target_insert_breakpoint): New.
|
|
|
|
|
(forward_target_remove_breakpoint): New.
|
|
|
|
|
(memory_remove_breakpoint, memory_insert_breakpoint):
|
|
|
|
|
Add target_ops parameter.
|
|
|
|
|
* target.c (target_insert_breakpoint): Split into this and ...
|
|
|
|
|
(forward_target_insert_breakpoint): ... this.
|
|
|
|
|
(target_remove_breakpoint): Split into this and ...
|
|
|
|
|
(forward_target_remove_breakpoint): ... this.
|
|
|
|
|
(debug_to_insert_breakpoint): Add target_ops parameter.
|
|
|
|
|
Call forward_target_insert_breakpoint.
|
|
|
|
|
(debug_to_remove_breakpoint): Add target_ops parameter.
|
|
|
|
|
Call forward_target_remove_breakpoint.
|
|
|
|
|
(update_current_target): Do not inherit or default to_insert_breakpoint
|
|
|
|
|
and to_remove_breakpoint.
|
|
|
|
|
* corelow.c (ignore): Add target_ops parameter.
|
|
|
|
|
* exec.c (ignore): Add target_ops parameter.
|
|
|
|
|
* mem-break.c (memory_insert_breakpoint, memory_remove_breakpoint):
|
|
|
|
|
Add target_ops parameter.
|
|
|
|
|
* monitor.c (monitor_insert_breakpoint, monitor_remove_breakpoint):
|
|
|
|
|
Add target_ops parameter.
|
|
|
|
|
* nto-procfs.c (procfs_insert_breakpoint, procfs_remove_breakpoint):
|
|
|
|
|
Add target_ops parameter.
|
|
|
|
|
* record-full.c (record_full_beneath_to_insert_breakpoint)
|
|
|
|
|
(record_full_beneath_to_remove_breakpoint, tmp_to_insert_breakpoint)
|
|
|
|
|
(tmp_to_remove_breakpoint, record_full_insert_breakpoint)
|
|
|
|
|
(record_full_remove_breakpoint, record_full_core_insert_breakpoint)
|
|
|
|
|
(record_full_core_remove_breakpoint): Add target_ops parameter.
|
|
|
|
|
Update users.
|
|
|
|
|
(record_full_beneath_to_insert_breakpoint_ops)
|
|
|
|
|
(record_full_beneath_to_remove_breakpoint_ops)
|
|
|
|
|
(tmp_to_insert_breakpoint_ops, tmp_to_remove_breakpoint_ops): New.
|
|
|
|
|
(record_full_open): Initialize tmp_to_insert_breakpoint_ops,
|
|
|
|
|
tmp_to_remove_breakpoint_ops,
|
|
|
|
|
record_full_beneath_to_insert_breakpoint_ops, and
|
|
|
|
|
record_full_beneath_to_remove_breakpoint_ops.
|
|
|
|
|
* remote-m32r-sdi.c (m32r_insert_breakpoint)
|
|
|
|
|
(m32r_remove_breakpoint): Add target_ops parameter.
|
|
|
|
|
* remote-mips.c (mips_insert_breakpoint, mips_remove_breakpoint):
|
|
|
|
|
Add target_ops parameter.
|
|
|
|
|
* remote.c (remote_insert_breakpoint, remote_remove_breakpoint):
|
|
|
|
|
Add target_ops parameter.
|
|
|
|
|
|
2013-03-18 15:47:01 +00:00
|
|
|
|
2014-01-16 Jan Kratochvil <jan.kratochvil@redhat.com>
|
|
|
|
|
Markus Metzger <markus.t.metzger@intel.com>
|
|
|
|
|
|
|
|
|
|
* record-btrace.c: Include frame-unwind.h.
|
|
|
|
|
(record_btrace_frame_unwind_stop_reason)
|
|
|
|
|
(record_btrace_frame_this_id, record_btrace_frame_prev_register)
|
|
|
|
|
(record_btrace_frame_sniffer, record_btrace_frame_unwind):
|
|
|
|
|
New.
|
|
|
|
|
(init_record_btrace_ops): Install it.
|
|
|
|
|
|
2013-03-18 15:43:05 +00:00
|
|
|
|
2014-01-16 Jan Kratochvil <jan.kratochvil@redhat.com>
|
|
|
|
|
|
|
|
|
|
* frame.c (get_frame_unwind_stop_reason): Unconditionally call
|
|
|
|
|
get_prev_frame_1.
|
|
|
|
|
|
2013-03-18 15:43:05 +00:00
|
|
|
|
2014-01-16 Jan Kratochvil <jan.kratochvil@redhat.com>
|
|
|
|
|
|
|
|
|
|
* dwarf2-frame.c (dwarf2_frame_cfa): Move UNWIND_UNAVAILABLE check
|
|
|
|
|
earlier.
|
|
|
|
|
|
2013-03-18 15:43:05 +00:00
|
|
|
|
2014-01-16 Jan Kratochvil <jan.kratochvil@redhat.com>
|
|
|
|
|
|
|
|
|
|
* frame-unwind.c: Include target.h.
|
|
|
|
|
(frame_unwind_try_unwinder): New function with code from ...
|
|
|
|
|
(frame_unwind_find_by_frame): ... here. New variable
|
|
|
|
|
unwinder_from_target, call also target_get_unwinder)
|
|
|
|
|
(target_get_tailcall_unwinder, and frame_unwind_try_unwinder for it.
|
|
|
|
|
* target.c (target_get_unwinder, target_get_tailcall_unwinder): New.
|
|
|
|
|
* target.h (struct target_ops): New fields to_get_unwinder and
|
|
|
|
|
to_get_tailcall_unwinder.
|
|
|
|
|
(target_get_unwinder, target_get_tailcall_unwinder): New declarations.
|
|
|
|
|
|
2013-03-28 09:38:24 +00:00
|
|
|
|
2014-01-16 Markus Metzger <markus.t.metzger@intel.com>
|
|
|
|
|
|
|
|
|
|
* record-btrace.c (record_btrace_fetch_registers)
|
|
|
|
|
(record_btrace_store_registers)
|
|
|
|
|
(record_btrace_to_prepare_to_store): New.
|
|
|
|
|
(init_record_btrace_ops): Add the above.
|
|
|
|
|
|
2014-01-13 13:24:50 +00:00
|
|
|
|
2014-01-16 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* windows-nat.c (windows_prepare_to_store): Add 'self' argument.
|
|
|
|
|
* target.h (struct target_ops) <to_prepare_to_store>: Add
|
|
|
|
|
argument.
|
|
|
|
|
(target_prepare_to_store): Add argument.
|
|
|
|
|
* target.c (debug_to_prepare_to_store): Add argument.
|
|
|
|
|
(update_current_target): Update.
|
|
|
|
|
* remote.c (remote_prepare_to_store): Add 'self' argument.
|
|
|
|
|
* remote-sim.c (gdbsim_prepare_to_store): Add 'self' argument.
|
|
|
|
|
* remote-mips.c (mips_prepare_to_store): Add 'self' argument.
|
|
|
|
|
* remote-m32r-sdi.c (m32r_prepare_to_store): Add 'self' argument.
|
|
|
|
|
* record-full.c (record_full_core_prepare_to_store): Add 'self'
|
|
|
|
|
argument.
|
|
|
|
|
* ravenscar-thread.c (ravenscar_prepare_to_store): Add argument.
|
|
|
|
|
* nto-procfs.c (procfs_prepare_to_store): Add 'self' argument.
|
|
|
|
|
* monitor.c (monitor_prepare_to_store): Add 'self' argument.
|
|
|
|
|
* inf-child.c (inf_child_prepare_to_store): Add 'self' argument.
|
|
|
|
|
* go32-nat.c (go32_prepare_to_store): Add 'self' argument.
|
|
|
|
|
|
2013-04-26 06:37:06 +00:00
|
|
|
|
2014-01-16 Markus Metzger <markus.t.metzger@intel.com>
|
|
|
|
|
|
|
|
|
|
* btrace.h (replay) <replay>: New.
|
|
|
|
|
(btrace_is_replaying): New.
|
|
|
|
|
* btrace.c (btrace_clear): Free replay iterator.
|
|
|
|
|
(btrace_is_replaying): New.
|
|
|
|
|
* record-btrace.c (record_btrace_is_replaying): New.
|
|
|
|
|
(record_btrace_info): Print insn number if replaying.
|
|
|
|
|
(record_btrace_insn_history): Start at replay position.
|
|
|
|
|
(record_btrace_call_history): Start at replay position.
|
|
|
|
|
(init_record_btrace_ops): Init to_record_is_replaying.
|
|
|
|
|
|
2013-04-17 07:39:43 +00:00
|
|
|
|
2014-01-16 Markus Metzger <markus.t.metzger@intel.com>
|
|
|
|
|
|
|
|
|
|
* record-btrace.c (record_btrace_insn_history_range): Include
|
|
|
|
|
end.
|
|
|
|
|
(record_btrace_insn_history_from): Adjust range.
|
|
|
|
|
(record_btrace_call_history_range): Include
|
|
|
|
|
end.
|
|
|
|
|
(record_btrace_call_history_from): Adjust range.
|
|
|
|
|
* NEWS: Announce changes.
|
|
|
|
|
|
2013-04-18 08:58:05 +00:00
|
|
|
|
2014-01-16 Markus Metzger <markus.t.metzger@intel.com>
|
|
|
|
|
|
|
|
|
|
* record.h (enum record_print_flag)
|
|
|
|
|
<record_print_indent_calls>: New.
|
|
|
|
|
* record.c (get_call_history_modifiers): Recognize /c modifier.
|
|
|
|
|
(_initialize_record): Document /c modifier.
|
|
|
|
|
* record-btrace.c (btrace_call_history): Add btinfo parameter.
|
|
|
|
|
Reorder fields. Optionally indent the function name. Update
|
|
|
|
|
all users.
|
|
|
|
|
* NEWS: Announce changes.
|
|
|
|
|
|
2013-04-10 11:43:41 +00:00
|
|
|
|
2014-01-16 Markus Metzger <markus.t.metzger@intel.com>
|
|
|
|
|
|
|
|
|
|
* common/linux-btrace.c (linux_enable_btrace): Enlarge buffer.
|
|
|
|
|
|
2013-05-13 12:57:42 +00:00
|
|
|
|
2014-01-16 Markus Metzger <markus.t.metzger@intel.com>
|
|
|
|
|
|
|
|
|
|
* btrace.c (ftrace_new_function): Start counting at one.
|
|
|
|
|
* record-btrace.c (record_btrace_info): Adjust number of calls
|
|
|
|
|
and insns.
|
|
|
|
|
* NEWS: Announce it.
|
|
|
|
|
|
2013-03-26 10:32:20 +00:00
|
|
|
|
2014-01-16 Markus Metzger <markus.t.metzger@intel.com>
|
|
|
|
|
|
|
|
|
|
* record-btrace.c (btrace_call_history_insn_range): Print
|
|
|
|
|
insn range as [begin, end].
|
|
|
|
|
|
btrace: change branch trace data structure
The branch trace is represented as 3 vectors:
- a block vector
- a instruction vector
- a function vector
Each vector (except for the first) is computed from the one above.
Change this into a graph where a node represents a sequence of instructions
belonging to the same function and where we have three types of edges to connect
the function segments:
- control flow
- same function (instance)
- call stack
This allows us to navigate in the branch trace. We will need this for "record
goto" and reverse execution.
This patch introduces the data structure and computes the control flow edges.
It also introduces iterator structs to simplify iterating over the branch trace
in control-flow order.
It also fixes PR gdb/15240 since now recursive calls are handled correctly.
Fix the test that got the number of expected fib instances and also the
function numbers wrong.
The current instruction had been part of the branch trace. This will look odd
once we start support for reverse execution. Remove it. We still keep it in
the trace itself to allow extending the branch trace more easily in the future.
2014-01-16 Markus Metzger <markus.t.metzger@intel.com>
* btrace.h (struct btrace_func_link): New.
(enum btrace_function_flag): New.
(struct btrace_inst): Rename to ...
(struct btrace_insn): ...this. Update all users.
(struct btrace_func) <ibegin, iend>: Remove.
(struct btrace_func_link): New.
(struct btrace_func): Rename to ...
(struct btrace_function): ...this. Update all users.
(struct btrace_function) <segment, flow, up, insn, insn_offset)
(number, level, flags>: New.
(struct btrace_insn_iterator): Rename to ...
(struct btrace_insn_history): ...this.
Update all users.
(struct btrace_insn_iterator, btrace_call_iterator): New.
(struct btrace_target_info) <btrace, itrace, ftrace>: Remove.
(struct btrace_target_info) <begin, end, level>
<insn_history, call_history>: New.
(btrace_insn_get, btrace_insn_number, btrace_insn_begin)
(btrace_insn_end, btrace_insn_prev, btrace_insn_next)
(btrace_insn_cmp, btrace_find_insn_by_number, btrace_call_get)
(btrace_call_number, btrace_call_begin, btrace_call_end)
(btrace_call_prev, btrace_call_next, btrace_call_cmp)
(btrace_find_function_by_number, btrace_set_insn_history)
(btrace_set_call_history): New.
* btrace.c (btrace_init_insn_iterator)
(btrace_init_func_iterator, compute_itrace): Remove.
(ftrace_print_function_name, ftrace_print_filename)
(ftrace_skip_file): Change
parameter to const.
(ftrace_init_func): Remove.
(ftrace_debug): Use new btrace_function fields.
(ftrace_function_switched): Also consider gaining and
losing symbol information).
(ftrace_print_insn_addr, ftrace_new_call, ftrace_new_return)
(ftrace_new_switch, ftrace_find_caller, ftrace_new_function)
(ftrace_update_caller, ftrace_fixup_caller, ftrace_new_tailcall):
New.
(ftrace_new_function): Move. Remove debug print.
(ftrace_update_lines, ftrace_update_insns): New.
(ftrace_update_function): Check for call, ret, and jump.
(compute_ftrace): Renamed to ...
(btrace_compute_ftrace): ...this. Rewritten to compute call
stack.
(btrace_fetch, btrace_clear): Updated.
(btrace_insn_get, btrace_insn_number, btrace_insn_begin)
(btrace_insn_end, btrace_insn_prev, btrace_insn_next)
(btrace_insn_cmp, btrace_find_insn_by_number, btrace_call_get)
(btrace_call_number, btrace_call_begin, btrace_call_end)
(btrace_call_prev, btrace_call_next, btrace_call_cmp)
(btrace_find_function_by_number, btrace_set_insn_history)
(btrace_set_call_history): New.
* record-btrace.c (require_btrace): Use new btrace thread
info fields.
(record_btrace_info, btrace_insn_history)
(record_btrace_insn_history, record_btrace_insn_history_range):
Use new btrace thread info fields and new iterator.
(btrace_func_history_src_line): Rename to ...
(btrace_call_history_src_line): ...this. Use new btrace
thread info fields.
(btrace_func_history): Rename to ...
(btrace_call_history): ...this. Use new btrace thread info
fields and new iterator.
(record_btrace_call_history, record_btrace_call_history_range):
Use new btrace thread info fields and new iterator.
testsuite/
* gdb.btrace/function_call_history.exp: Fix expected function
trace.
* gdb.btrace/instruction_history.exp: Initialize traced.
Remove traced_functions.
2013-03-22 13:32:47 +00:00
|
|
|
|
2014-01-16 Markus Metzger <markus.t.metzger@intel.com>
|
|
|
|
|
|
|
|
|
|
* btrace.h (struct btrace_func_link): New.
|
|
|
|
|
(enum btrace_function_flag): New.
|
|
|
|
|
(struct btrace_inst): Rename to ...
|
|
|
|
|
(struct btrace_insn): ...this. Update all users.
|
|
|
|
|
(struct btrace_func) <ibegin, iend>: Remove.
|
|
|
|
|
(struct btrace_func_link): New.
|
|
|
|
|
(struct btrace_func): Rename to ...
|
|
|
|
|
(struct btrace_function): ...this. Update all users.
|
|
|
|
|
(struct btrace_function) <segment, flow, up, insn, insn_offset)
|
|
|
|
|
(number, level, flags>: New.
|
|
|
|
|
(struct btrace_insn_iterator): Rename to ...
|
|
|
|
|
(struct btrace_insn_history): ...this.
|
|
|
|
|
Update all users.
|
|
|
|
|
(struct btrace_insn_iterator, btrace_call_iterator): New.
|
|
|
|
|
(struct btrace_target_info) <btrace, itrace, ftrace>: Remove.
|
|
|
|
|
(struct btrace_target_info) <begin, end, level>
|
|
|
|
|
<insn_history, call_history>: New.
|
|
|
|
|
(btrace_insn_get, btrace_insn_number, btrace_insn_begin)
|
|
|
|
|
(btrace_insn_end, btrace_insn_prev, btrace_insn_next)
|
|
|
|
|
(btrace_insn_cmp, btrace_find_insn_by_number, btrace_call_get)
|
|
|
|
|
(btrace_call_number, btrace_call_begin, btrace_call_end)
|
|
|
|
|
(btrace_call_prev, btrace_call_next, btrace_call_cmp)
|
|
|
|
|
(btrace_find_function_by_number, btrace_set_insn_history)
|
|
|
|
|
(btrace_set_call_history): New.
|
|
|
|
|
* btrace.c (btrace_init_insn_iterator)
|
|
|
|
|
(btrace_init_func_iterator, compute_itrace): Remove.
|
|
|
|
|
(ftrace_print_function_name, ftrace_print_filename)
|
|
|
|
|
(ftrace_skip_file): Change
|
|
|
|
|
parameter to const.
|
|
|
|
|
(ftrace_init_func): Remove.
|
|
|
|
|
(ftrace_debug): Use new btrace_function fields.
|
|
|
|
|
(ftrace_function_switched): Also consider gaining and
|
|
|
|
|
losing symbol information).
|
|
|
|
|
(ftrace_print_insn_addr, ftrace_new_call, ftrace_new_return)
|
|
|
|
|
(ftrace_new_switch, ftrace_find_caller, ftrace_new_function)
|
|
|
|
|
(ftrace_update_caller, ftrace_fixup_caller, ftrace_new_tailcall):
|
|
|
|
|
New.
|
|
|
|
|
(ftrace_new_function): Move. Remove debug print.
|
|
|
|
|
(ftrace_update_lines, ftrace_update_insns): New.
|
|
|
|
|
(ftrace_update_function): Check for call, ret, and jump.
|
|
|
|
|
(compute_ftrace): Renamed to ...
|
|
|
|
|
(btrace_compute_ftrace): ...this. Rewritten to compute call
|
|
|
|
|
stack.
|
|
|
|
|
(btrace_fetch, btrace_clear): Updated.
|
|
|
|
|
(btrace_insn_get, btrace_insn_number, btrace_insn_begin)
|
|
|
|
|
(btrace_insn_end, btrace_insn_prev, btrace_insn_next)
|
|
|
|
|
(btrace_insn_cmp, btrace_find_insn_by_number, btrace_call_get)
|
|
|
|
|
(btrace_call_number, btrace_call_begin, btrace_call_end)
|
|
|
|
|
(btrace_call_prev, btrace_call_next, btrace_call_cmp)
|
|
|
|
|
(btrace_find_function_by_number, btrace_set_insn_history)
|
|
|
|
|
(btrace_set_call_history): New.
|
|
|
|
|
* record-btrace.c (require_btrace): Use new btrace thread
|
|
|
|
|
info fields.
|
|
|
|
|
(record_btrace_info, btrace_insn_history)
|
|
|
|
|
(record_btrace_insn_history, record_btrace_insn_history_range):
|
|
|
|
|
Use new btrace thread info fields and new iterator.
|
|
|
|
|
(btrace_func_history_src_line): Rename to ...
|
|
|
|
|
(btrace_call_history_src_line): ...this. Use new btrace
|
|
|
|
|
thread info fields.
|
|
|
|
|
(btrace_func_history): Rename to ...
|
|
|
|
|
(btrace_call_history): ...this. Use new btrace thread info
|
|
|
|
|
fields and new iterator.
|
|
|
|
|
(record_btrace_call_history, record_btrace_call_history_range):
|
|
|
|
|
Use new btrace thread info fields and new iterator.
|
|
|
|
|
|
2013-12-18 13:13:54 +00:00
|
|
|
|
2014-01-16 Markus Metzger <markus.t.metzger@intel.com>
|
|
|
|
|
|
|
|
|
|
* frame.h (frame_id_build_unavailable_stack_special): New.
|
|
|
|
|
* frame.c (frame_id_build_unavailable_stack_special): New.
|
|
|
|
|
|
gdbarch: add instruction predicate methods
Add new methods to gdbarch for analyzing the instruction at a given address.
Implement those methods for i386 and amd64 architectures.
This is needed by "record btrace" to detect function calls in the
execution trace.
2014-01-16 Markus Metzger <markus.t.metzger@intel.com>
* amd64-tdep.c (amd64_classify_insn_at, amd64_insn_is_call)
(amd64_insn_is_ret, amd64_insn_is_jump, amd64_jmp_p): New.
(amd64_init_abi): Add insn_is_call, insn_is_ret, and insn_is_jump
to gdbarch.
* i386-tdep.c (i386_insn_is_call, i386_insn_is_ret)
(i386_insn_is_jump, i386_jmp_p): New.
(i386_gdbarch_init): Add insn_is_call, insn_is_ret, and
insn_is_jump to gdbarch.
* gdbarch.sh (insn_is_call, insn_is_ret, insn_is_jump): New.
* gdbarch.h: Regenerated.
* gdbarch.c: Regenerated.
* arch-utils.h (default_insn_is_call, default_insn_is_ret)
(default_insn_is_jump): New.
* arch-utils.c (default_insn_is_call, default_insn_is_ret)
(default_insn_is_jump): New.
2013-03-22 14:56:56 +00:00
|
|
|
|
2014-01-16 Markus Metzger <markus.t.metzger@intel.com>
|
|
|
|
|
|
|
|
|
|
* amd64-tdep.c (amd64_classify_insn_at, amd64_insn_is_call)
|
|
|
|
|
(amd64_insn_is_ret, amd64_insn_is_jump, amd64_jmp_p): New.
|
|
|
|
|
(amd64_init_abi): Add insn_is_call, insn_is_ret, and insn_is_jump
|
|
|
|
|
to gdbarch.
|
|
|
|
|
* i386-tdep.c (i386_insn_is_call, i386_insn_is_ret)
|
|
|
|
|
(i386_insn_is_jump, i386_jmp_p): New.
|
|
|
|
|
(i386_gdbarch_init): Add insn_is_call, insn_is_ret, and
|
|
|
|
|
insn_is_jump to gdbarch.
|
|
|
|
|
* gdbarch.sh (insn_is_call, insn_is_ret, insn_is_jump): New.
|
|
|
|
|
* gdbarch.h: Regenerated.
|
|
|
|
|
* gdbarch.c: Regenerated.
|
|
|
|
|
* arch-utils.h (default_insn_is_call, default_insn_is_ret)
|
|
|
|
|
(default_insn_is_jump): New.
|
|
|
|
|
* arch-utils.c (default_insn_is_call, default_insn_is_ret)
|
|
|
|
|
(default_insn_is_jump): New.
|
|
|
|
|
|
2013-09-30 13:00:16 +00:00
|
|
|
|
2014-01-16 Markus Metzger <markus.t.metzger@intel.com>
|
|
|
|
|
|
|
|
|
|
* common/btrace-common.h (btrace_read_type) <btrace_read_all>:
|
|
|
|
|
Change to ...
|
|
|
|
|
(btrace_read_type) <BTRACE_READ_ALL>: ... this. Update users.
|
|
|
|
|
(btrace_read_type) <btrace_read_new>: Change to ...
|
|
|
|
|
(btrace_read_type) <BTRACE_READ_NEW>: ... this. Update users.
|
|
|
|
|
|
2013-06-03 12:32:15 +00:00
|
|
|
|
2014-01-16 Markus Metzger <markus.t.metzger@intel.com>
|
|
|
|
|
|
|
|
|
|
* common/linux-btrace.c (linux_read_btrace): Free trace from
|
|
|
|
|
previous iteration.
|
|
|
|
|
|
2014-01-15 21:14:06 +00:00
|
|
|
|
2014-01-15 Doug Evans <dje@google.com>
|
|
|
|
|
|
|
|
|
|
* dwarf2read.c (open_and_init_dwp_file): Use pulongest to print
|
|
|
|
|
uint32_t.
|
|
|
|
|
|
2013-12-31 03:34:16 +00:00
|
|
|
|
2014-01-15 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* dbxread.c (process_one_symbol): Use set_objfile_main_name.
|
|
|
|
|
* dwarf2read.c (read_partial_die): Use set_objfile_main_name.
|
|
|
|
|
* objfiles.c (get_objfile_bfd_data): Initialize language_of_main.
|
|
|
|
|
(set_objfile_main_name): New function.
|
|
|
|
|
* objfiles.h (struct objfile_per_bfd_storage) <name_of_main,
|
|
|
|
|
language_of_main>: New fields.
|
|
|
|
|
(set_objfile_main_name): Declare.
|
|
|
|
|
* symtab.c (find_main_name): Loop over objfiles to find the main
|
|
|
|
|
name and language.
|
|
|
|
|
(set_main_name): Now static.
|
|
|
|
|
(get_main_info): Add comment.
|
|
|
|
|
* symtab.h (set_main_name): Don't declare.
|
|
|
|
|
|
2013-12-31 03:18:24 +00:00
|
|
|
|
2014-01-15 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* symtab.c (main_progspace_key): New global.
|
|
|
|
|
(struct main_info): New.
|
|
|
|
|
(name_of_main, language_of_main): Remove.
|
|
|
|
|
(get_main_info, main_info_cleanup): New function.
|
|
|
|
|
(set_main_name, main_name, main_language): Use get_main_info.
|
|
|
|
|
(_initialize_symtab): Initialize main_progspace_key.
|
|
|
|
|
|
2013-12-31 03:05:34 +00:00
|
|
|
|
2014-01-15 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* dbxread.c (process_one_symbol): Update.
|
|
|
|
|
* dwarf2read.c (read_partial_die): Update.
|
|
|
|
|
* symfile.c (set_initial_language): Call main_language.
|
|
|
|
|
* symtab.c (language_of_main): Now static.
|
|
|
|
|
(set_main_name): Add 'lang' parameter.
|
|
|
|
|
(find_main_name): Update.
|
|
|
|
|
(main_language): New function.
|
|
|
|
|
(symtab_observer_executable_changed): Update.
|
|
|
|
|
* symtab.h (set_main_name): Update.
|
|
|
|
|
(language_of_main): Remove.
|
|
|
|
|
(main_language): Declare.
|
|
|
|
|
|
2013-12-31 13:57:18 +00:00
|
|
|
|
2014-01-15 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* symfile.c (init_entry_point_info): Use new "initialized" field.
|
|
|
|
|
Update.
|
|
|
|
|
* objfiles.h (struct entry_point) <initialized>: New field.
|
|
|
|
|
(struct objfile_per_bfd_storage) <ei>: New field, moved from...
|
|
|
|
|
(struct objfile) <ei>: ...here. Remove.
|
|
|
|
|
* objfiles.c (entry_point_address_query): Update.
|
|
|
|
|
|
2013-12-31 13:52:33 +00:00
|
|
|
|
2014-01-15 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* objfiles.c (entry_point_address_query): Relocate entry point
|
|
|
|
|
address.
|
|
|
|
|
(objfile_relocate1): Do not relocate entry point address.
|
|
|
|
|
* objfiles.h (struct entry_info) <entry_point>: Update comment.
|
|
|
|
|
<the_bfd_section_index>: New field.
|
|
|
|
|
* symfile.c (init_entry_point_info): Find the entry point's
|
|
|
|
|
section.
|
|
|
|
|
|
2013-12-31 09:47:37 +00:00
|
|
|
|
2014-01-15 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* solib-frv.c (enable_break): Use entry_point_address_query.
|
|
|
|
|
|
2014-01-03 19:15:36 +00:00
|
|
|
|
2014-01-15 Omair Javaid <omair.javaid@linaro.org>
|
|
|
|
|
|
|
|
|
|
* NEWS: Add note on improved process record-replay on
|
|
|
|
|
arm*-linux* targets.
|
|
|
|
|
|
2014-01-09 10:33:55 +00:00
|
|
|
|
2014-01-15 Omair Javaid <omair.javaid@linaro.org>
|
|
|
|
|
|
|
|
|
|
* arm-tdep.c (enum arm_record_result): New enum.
|
|
|
|
|
(arm_record_unsupported_insn): New function.
|
|
|
|
|
(arm_record_coproc_data_proc): Removed.
|
|
|
|
|
(thumb2_record_ld_st_multiple): New function.
|
|
|
|
|
(thumb2_record_ld_st_dual_ex_tbb): New function.
|
|
|
|
|
(thumb2_record_data_proc_sreg_mimm): New function.
|
|
|
|
|
(thumb2_record_ps_dest_generic): New function.
|
|
|
|
|
(thumb2_record_branch_misc_cntrl): New function.
|
|
|
|
|
(thumb2_record_str_single_data): New function.
|
|
|
|
|
(thumb2_record_ld_mem_hints): New function.
|
|
|
|
|
(thumb2_record_ld_word): New function.
|
|
|
|
|
(thumb2_record_lmul_lmla_div): New function.
|
|
|
|
|
(thumb2_record_decode_insn_handler): New function.
|
|
|
|
|
(decode_insn): Add thumb32 instruction handlers.
|
|
|
|
|
|
2014-01-09 10:49:27 +00:00
|
|
|
|
2014-01-15 Omair Javaid <omair.javaid@linaro.org>
|
|
|
|
|
|
|
|
|
|
* arm-linux-tdep.c: Include "record-full.h" and "linux-record.h".
|
|
|
|
|
(struct arm_linux_record_tdep): Declare.
|
|
|
|
|
(arm_canonicalize_syscall): New function.
|
|
|
|
|
(arm_all_but_pc_registers_record): New function.
|
|
|
|
|
(arm_linux_syscall_record): New function.
|
|
|
|
|
(arm_linux_init_abi): Add syscall recording constructs.
|
|
|
|
|
* arm-tdep.c (thumb_record_ldm_stm_swi): Update thumb syscall
|
|
|
|
|
decoding. (arm_record_coproc_data_proc): Update arm syscall
|
|
|
|
|
decoding.
|
|
|
|
|
* arm-tdep.h (struct gdbarch_tdep) <arm_swi_record>: Remove.
|
|
|
|
|
<arm_syscall_record>: New field.
|
|
|
|
|
* configure.tgt (arm*-*-linux*): Add linux-record.o to
|
|
|
|
|
gdb_target_obs.
|
|
|
|
|
|
2014-01-03 19:15:32 +00:00
|
|
|
|
2014-01-15 Omair Javaid <omair.javaid@linaro.org>
|
|
|
|
|
|
|
|
|
|
* arm-tdep.c (thumb_record_misc): Update to use sp as base
|
|
|
|
|
register for push instruction recording.
|
|
|
|
|
|
2014-01-03 19:15:31 +00:00
|
|
|
|
2014-01-15 Omair Javaid <omair.javaid@linaro.org>
|
|
|
|
|
|
|
|
|
|
* arm-tdep.c (thumb_record_misc): Update to correct logical
|
|
|
|
|
error while recording ldm, ldmia and pop instructions.
|
|
|
|
|
|
2014-01-09 10:35:45 +00:00
|
|
|
|
2014-01-15 Omair Javaid <omair.javaid@linaro.org>
|
|
|
|
|
|
|
|
|
|
* arm-tdep.c (struct arm_mem_r) <addr>: Change type to uint32_t.
|
|
|
|
|
|
Fix go32-nat.c build fallout from to_detach constification.
The recent constification of to_detach missed updating the forward
declaration of go32_detach, breaking the build:
../../src/gdb/go32-nat.c:387:1: error: conflicting types for 'go32_detach'
../../src/gdb/go32-nat.c:240:13: note: previous declaration of 'go32_detach' was here
go32_detach is actually defined before it's ever used, making the
forward declaration is unnecessary. So we can just remove it instead
of updating it. While at it, remove all others in the same situation.
Tested by building a djgpp gdb.
gdb/
2014-01-15 Pedro Alves <palves@redhat.com>
* go32-nat.c (go32_open, go32_close, go32_attach, go32_detach)
(go32_resume, go32_fetch_registers, store_register)
(go32_store_registers, go32_prepare_to_store)
(go32_xfer_memory, go32_files_info, go32_kill_inferior)
(go32_create_inferior, go32_can_run, go32_terminal_init)
(go32_terminal_inferior, go32_terminal_ours): Delete forward
declarations.
2014-01-15 16:18:04 +00:00
|
|
|
|
2014-01-15 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* go32-nat.c (go32_open, go32_close, go32_attach, go32_detach)
|
|
|
|
|
(go32_resume, go32_fetch_registers, store_register)
|
|
|
|
|
(go32_store_registers, go32_prepare_to_store)
|
|
|
|
|
(go32_xfer_memory, go32_files_info, go32_kill_inferior)
|
|
|
|
|
(go32_create_inferior, go32_can_run, go32_terminal_init)
|
|
|
|
|
(go32_terminal_inferior, go32_terminal_ours): Delete forward
|
|
|
|
|
declarations.
|
|
|
|
|
|
2013-12-19 21:33:07 +00:00
|
|
|
|
2014-01-15 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.h (async_callback_ftype): New typedef.
|
|
|
|
|
(struct target_ops) <to_async>: Use it.
|
|
|
|
|
|
2014-01-15 12:40:22 +00:00
|
|
|
|
2014-01-15 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* python/py-value.c (get_field_type): Remove unnecessary curly
|
|
|
|
|
braces for single-statement if block.
|
|
|
|
|
|
2014-01-15 12:28:08 +00:00
|
|
|
|
2014-01-15 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* python/py-type.c (convert_field): Add missing empty line
|
|
|
|
|
after declarations.
|
|
|
|
|
|
2014-01-15 02:36:33 +00:00
|
|
|
|
2014-01-14 Doug Evans <dje@google.com>
|
|
|
|
|
|
|
|
|
|
* symfile.h (expand_symtabs_matching): Renamed from
|
|
|
|
|
expand_partial_symbol_names. Update prototype.
|
|
|
|
|
(map_symbol_filenames): Renamed from map_partial_symbol_filenames.
|
|
|
|
|
* symfile.c (expand_symtabs_matching): Renamed from
|
|
|
|
|
expand_partial_symbol_names. New args file_matcher, kind.
|
|
|
|
|
Rename arg fun to symbol_matcher.
|
|
|
|
|
(map_symbol_filenames): Renamed from map_partial_symbol_filenames.
|
|
|
|
|
* ada-lang.c (ada_complete_symbol_matcher): Renamed from
|
|
|
|
|
ada_expand_partial_symbol_name.
|
|
|
|
|
(ada_make_symbol_completion_list): Update to call
|
|
|
|
|
expand_symtabs_matching.
|
|
|
|
|
(ada_add_global_exceptions): Call expand_symtabs_matching.
|
|
|
|
|
* mi/mi-cmd-file.c (mi_cmd_file_list_exec_source_files): Update to
|
|
|
|
|
call map_symbol_filenames.
|
|
|
|
|
* symtab.c (sources_info): Update to call map_symbol_filenames.
|
|
|
|
|
(search_symbols): Call expand_symtabs_matching.
|
|
|
|
|
(symbol_completion_matcher): Renamed from expand_partial_symbol_name.
|
|
|
|
|
(default_make_symbol_completion_list_break_on): Update to call
|
|
|
|
|
expand_symtabs_matching.
|
|
|
|
|
(make_source_files_completion_list): Update to call
|
|
|
|
|
map_symbol_filenames.
|
|
|
|
|
|
2014-01-15 02:30:31 +00:00
|
|
|
|
2014-01-14 Doug Evans <dje@google.com>
|
|
|
|
|
|
|
|
|
|
* symfile.h (expand_symtabs_file_matcher_ftype): New typedef.
|
|
|
|
|
(expand_symtabs_symbol_matcher_ftype): New typedef.
|
|
|
|
|
(quick_symbol_functions.expand_symtabs_matching): Update to use.
|
|
|
|
|
expand_symtabs_file_matcher_ftype, expand_symtabs_symbol_matcher_ftype.
|
|
|
|
|
* symfile.c (expand_partial_symbol_names): Update to use
|
|
|
|
|
expand_symtabs_symbol_matcher_ftype.
|
|
|
|
|
* dwarf2read.c (dw2_expand_symtabs_matching): Update to use
|
|
|
|
|
expand_symtabs_file_matcher_ftype, expand_symtabs_symbol_matcher_ftype.
|
|
|
|
|
Arg name_matcher renamed to symbol_matcher.
|
|
|
|
|
* psymtab.c (recursively_search_psymtabs): Update to use
|
|
|
|
|
expand_symtabs_symbol_matcher_ftype. Arg name_matcher renamed to
|
|
|
|
|
sym_matcher.
|
|
|
|
|
(expand_symtabs_matching_via_partial): Update to use
|
|
|
|
|
expand_symtabs_file_matcher_ftype, expand_symtabs_symbol_matcher_ftype.
|
|
|
|
|
Arg name_matcher renamed to symbol_matcher.
|
|
|
|
|
|
2014-01-15 02:19:51 +00:00
|
|
|
|
2014-01-14 Doug Evans <dje@google.com>
|
|
|
|
|
|
|
|
|
|
* psymtab.c (expand_partial_symbol_names): Delete, moved to symfile.c.
|
|
|
|
|
(map_partial_symbol_filenames): Ditto.
|
|
|
|
|
* psymtab.h (expand_partial_symbol_names): Delete, moved to symfile.h.
|
|
|
|
|
(map_partial_symbol_filenames): Ditto.
|
|
|
|
|
* symfile.c (expand_partial_symbol_names): Moved here from psymtab.c.
|
|
|
|
|
(map_partial_symbol_filenames): Ditto.
|
|
|
|
|
* symfile.h (expand_partial_symbol_names): Moved here from psymtab.h.
|
|
|
|
|
(map_partial_symbol_filenames): Ditto.
|
|
|
|
|
* symtab.c: Delete #include "psymtab.h".
|
|
|
|
|
|
Fix "is a record target open" checks.
RECORD_IS_USED and record_full_open look at current_target.to_stratum
to determine whether a record target is in use. This is wrong because
arch_stratum is greater than record_stratum, so if an arch_stratum
target is pushed, RECORD_IS_USED and record_full_open will miss it.
To fix this, we can use the existing find_record_target instead, which
looks up for a record stratum target across the target stack. Since
that means exporting find_record_target in record.h, RECORD_IS_USED
ends up redundant, so the patch eliminates it.
That exercise then reveals other issues:
- adjust_pc_after_break is gating record_full_... calls based on
RECORD_IS_USED. But, record_full_ calls shouldn't be made when
recording with the record-btrace target. So this adds a new
record_full_is_used predicate to be used in that spot.
- record_full_open says "Process record target already running", even
if the recording target is record-btrace ("process record" is the
original complete name of the record-full target). record_btrace_open
only says "The process is already being recorded." and does not
suggest "record stop", like record-full does. The patch factors out
and merges that error to a new record_preopen function that all record
targets call in their open routine.
Tested on x86_64 Fedora 17.
gdb/
2014-01-14 Pedro Alves <palves@redhat.com>
Tom Tromey <tromey@redhat.com>
* infrun.c (use_displaced_stepping): Use find_record_target
instead of RECORD_IS_USED.
(adjust_pc_after_break): Use record_full_is_used instead of
RECORD_IS_USED.
* record-btrace.c (record_btrace_open): Call record_preopen
instead of checking RECORD_IS_USED.
* record-full.c (record_full_shortname)
(record_full_core_shortname): New globals.
(record_full_is_used): New function.
(find_full_open): Call record_preopen instead of checking
RECORD_IS_USED.
(init_record_full_ops): Set the target's shortname to
record_full_shortname.
(init_record_full_core_ops): Set the target's shortname to
record_full_core_shortname.
* record-full.h (record_full_is_used): Declare.
* record.c (find_record_target): Make extern.
(record_preopen): New function.
* record.h (RECORD_IS_USED): Delete macro.
(find_record_target, record_preopen): Declare functions.
2014-01-14 16:12:19 +00:00
|
|
|
|
2014-01-14 Pedro Alves <palves@redhat.com>
|
|
|
|
|
Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* infrun.c (use_displaced_stepping): Use find_record_target
|
|
|
|
|
instead of RECORD_IS_USED.
|
|
|
|
|
(adjust_pc_after_break): Use record_full_is_used instead of
|
|
|
|
|
RECORD_IS_USED.
|
|
|
|
|
* record-btrace.c (record_btrace_open): Call record_preopen
|
|
|
|
|
instead of checking RECORD_IS_USED.
|
|
|
|
|
* record-full.c (record_full_shortname)
|
|
|
|
|
(record_full_core_shortname): New globals.
|
|
|
|
|
(record_full_is_used): New function.
|
|
|
|
|
(find_full_open): Call record_preopen instead of checking
|
|
|
|
|
RECORD_IS_USED.
|
|
|
|
|
(init_record_full_ops): Set the target's shortname to
|
|
|
|
|
record_full_shortname.
|
|
|
|
|
(init_record_full_core_ops): Set the target's shortname to
|
|
|
|
|
record_full_core_shortname.
|
|
|
|
|
* record-full.h (record_full_is_used): Declare.
|
|
|
|
|
* record.c (find_record_target): Make extern.
|
|
|
|
|
(record_preopen): New function.
|
|
|
|
|
* record.h (RECORD_IS_USED): Delete macro.
|
|
|
|
|
(find_record_target, record_preopen): Declare functions.
|
|
|
|
|
|
2014-01-02 07:36:55 +00:00
|
|
|
|
2014-01-14 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* gdbarch.sh (core_xfer_shared_libraries): Change its argument
|
|
|
|
|
'len''s type to ULONGEST.
|
|
|
|
|
(core_xfer_shared_libraries_aix): Likewise.
|
|
|
|
|
* gdbarch.c, gdbarch.h: Regenerated.
|
|
|
|
|
* i386-cygwin-tdep.c (windows_core_xfer_shared_libraries):
|
|
|
|
|
Change type of 'len' to ULONGEST.
|
|
|
|
|
* rs6000-aix-tdep.c (rs6000_aix_ld_info_to_xml): Likewise.
|
|
|
|
|
(rs6000_aix_core_xfer_shared_libraries_aix): Likewise.
|
|
|
|
|
|
2014-01-03 11:19:51 +00:00
|
|
|
|
2014-01-14 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* common/linux-osdata.c (linux_xfer_osdata_processes): Change
|
|
|
|
|
type of 'len' to ULONGEST.
|
|
|
|
|
(linux_xfer_osdata_processgroups): Likewise.
|
|
|
|
|
(linux_xfer_osdata_threads): Likewise.
|
|
|
|
|
(linux_xfer_osdata_fds): Likewise.
|
|
|
|
|
(linux_xfer_osdata_isockets): Likewise.
|
|
|
|
|
(linux_xfer_osdata_shm): Likewise.
|
|
|
|
|
(linux_xfer_osdata_sem): Likewise.
|
|
|
|
|
(linux_xfer_osdata_msg): Likewise.
|
|
|
|
|
(linux_common_xfer_osdata): Likewise.
|
|
|
|
|
(struct osdata_type) <getter>: Likewise.
|
|
|
|
|
* common/linux-osdata.h (linux_common_xfer_osdata): Update
|
|
|
|
|
the declaration.
|
|
|
|
|
|
2014-01-03 13:11:46 +00:00
|
|
|
|
2014-01-14 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* target.h (target_xfer_partial_ftype): Update.
|
|
|
|
|
(struct target_ops) <to_xfer_partial>: Change 'len' type to
|
|
|
|
|
ULONGEST.
|
|
|
|
|
* aix-thread.c (aix_thread_xfer_partial): Change type of
|
|
|
|
|
argument 'len' to ULONGEST.
|
|
|
|
|
* auxv.c (procfs_xfer_auxv): Likewise.
|
|
|
|
|
(ld_so_xfer_auxv): Likewise.
|
|
|
|
|
(memory_xfer_auxv): Likewise.
|
|
|
|
|
* bfd-target.c (target_bfd_xfer_partial): Likewise.
|
|
|
|
|
* bsd-kvm.c (bsd_kvm_xfer_partial): Likewise.
|
|
|
|
|
* bsd-uthread.c (bsd_uthread_xfer_partial): Likewise.
|
|
|
|
|
* corelow.c (core_xfer_partial): Likewise.
|
|
|
|
|
* ctf.c (ctf_xfer_partial): Likewise.
|
|
|
|
|
* darwin-nat.c (darwin_read_write_inferior): Likewise. Use
|
|
|
|
|
'%u'.
|
|
|
|
|
(darwin_read_dyld_info): Likewise.
|
|
|
|
|
(darwin_xfer_partial): Likewise.
|
|
|
|
|
* exec.c (section_table_xfer_memory_partial): Likewise.
|
|
|
|
|
(exec_xfer_partial): Likewise.
|
|
|
|
|
* exec.h (section_table_xfer_memory_partial): Update
|
|
|
|
|
declaration.
|
|
|
|
|
* gnu-nat.c (gnu_xfer_memory): Likewise. Call pulongest
|
|
|
|
|
instead of plongest.
|
|
|
|
|
(gnu_xfer_partial): Likewise.
|
|
|
|
|
* ia64-hpux-nat.c (ia64_hpux_xfer_memory): Likewise.
|
|
|
|
|
(ia64_hpux_xfer_solib_got): Likewise.
|
|
|
|
|
(ia64_hpux_xfer_partial): Likewise.
|
|
|
|
|
* ia64-linux-nat.c (ia64_linux_xfer_partial):
|
|
|
|
|
* inf-ptrace.c (inf_ptrace_xfer_partial):
|
|
|
|
|
* inf-ttrace.c (inf_ttrace_xfer_partial):
|
|
|
|
|
* linux-nat.c (linux_xfer_siginfo): Likewise.
|
|
|
|
|
(linux_nat_xfer_partial): Likewise.
|
|
|
|
|
(spu_enumerate_spu_ids, linux_proc_xfer_spu): Likewise.
|
|
|
|
|
(linux_nat_xfer_osdata, linux_xfer_partial): Likewise.
|
|
|
|
|
* monitor.c (monitor_xfer_memory): Likewise.
|
|
|
|
|
(monitor_xfer_partial): Likewise.
|
|
|
|
|
* procfs.c (procfs_xfer_partial): Likewise.
|
|
|
|
|
* record-full.c (record_full_xfer_partial): Likewise.
|
|
|
|
|
(record_full_core_xfer_partial): Likewise.
|
|
|
|
|
* remote-sim.c (gdbsim_xfer_memory): Likewise. Call pulongest
|
|
|
|
|
instead of plongest.
|
|
|
|
|
(gdbsim_xfer_partial): Likewise.
|
|
|
|
|
* remote.c (remote_xfer_partial): Likewise.
|
|
|
|
|
* rs6000-aix-tdep.c (rs6000_aix_ld_info_to_xml): Likewise.
|
|
|
|
|
* rs6000-aix-tdep.h (rs6000_aix_ld_info_to_xml): Update
|
|
|
|
|
declaration.
|
|
|
|
|
* rs6000-nat.c (rs6000_xfer_partial): Likewise.
|
|
|
|
|
(rs6000_xfer_shared_libraries): Likewise.
|
|
|
|
|
* sol-thread.c (sol_thread_xfer_partial): Likewise.
|
|
|
|
|
* sparc-nat.c (sparc_xfer_wcookie): Likewise.
|
|
|
|
|
(sparc_xfer_partial): Likewise.
|
|
|
|
|
* spu-linux-nat.c (spu_proc_xfer_spu): Likewise.
|
|
|
|
|
(spu_xfer_partial): Likewise.
|
|
|
|
|
* spu-multiarch.c (spu_xfer_partial): Likewise.
|
|
|
|
|
* target.c (target_read_live_memory): Likewise.
|
|
|
|
|
(memory_xfer_live_readonly_partial): Likewise.
|
|
|
|
|
(memory_xfer_partial, memory_xfer_partial_1): Likewise.
|
|
|
|
|
(target_xfer_partial, default_xfer_partial): Likewise.
|
|
|
|
|
(current_xfer_partial): Likewise.
|
|
|
|
|
* tracepoint.c (tfile_xfer_partial): Likewise.
|
|
|
|
|
* windows-nat.c (windows_xfer_memory): Likewise. Call
|
|
|
|
|
pulongest instead of plongest.
|
|
|
|
|
(windows_xfer_partial): Likewise.
|
|
|
|
|
(windows_xfer_shared_libraries): Likewise.
|
|
|
|
|
|
2014-01-03 02:33:44 +00:00
|
|
|
|
2014-01-14 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* rs6000-nat.c (rs6000_xfer_shared_libraries): Use
|
|
|
|
|
target_xfer_partial_ftype.
|
|
|
|
|
|
2013-12-27 20:20:59 +00:00
|
|
|
|
2014-01-13 Siva Chandra Reddy <sivachandra@google.com>
|
|
|
|
|
|
|
|
|
|
PR python/15464
|
|
|
|
|
PR python/16113
|
|
|
|
|
* valops.c (value_struct_elt_bitpos): New function
|
|
|
|
|
* py-type.c (convert_field): Set 'name' attribute of a gdb.Field
|
|
|
|
|
object to 'None' if the field name is an empty string ("").
|
|
|
|
|
* python/py-value.c (valpy_getitem): Use 'bitpos' and 'type'
|
|
|
|
|
attribute to look for a field when 'name' is 'None'.
|
|
|
|
|
(get_field_type): New function
|
|
|
|
|
|
2014-01-14 01:15:42 +00:00
|
|
|
|
2014-01-13 Doug Evans <dje@google.com>
|
|
|
|
|
|
|
|
|
|
PR symtab/16426
|
|
|
|
|
* dwarf2read.c (dwarf2_get_dwz_file): Call gdb_bfd_record_inclusion.
|
|
|
|
|
(try_open_dwop_file): Ditto.
|
|
|
|
|
* gdb_bfd.c: #include "vec.h".
|
|
|
|
|
(bfdp): New typedef.
|
|
|
|
|
(struct gdb_bfd_data): New member included_bfds.
|
|
|
|
|
(gdb_bfd_unref): Unref all included bfds.
|
|
|
|
|
(gdb_bfd_record_inclusion): New function.
|
|
|
|
|
* gdb_bfd.h (gdb_bfd_record_inclusion): Declare.
|
|
|
|
|
|
2013-12-30 02:35:02 +00:00
|
|
|
|
2014-01-13 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* gdbcore.h (deprecated_core_resize_section_table): Remove.
|
|
|
|
|
|
2013-12-28 22:11:36 +00:00
|
|
|
|
2014-01-13 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* defs.h (use_windows): Remove.
|
|
|
|
|
* gdb.c (main): Update.
|
|
|
|
|
* main.c (captured_main, gdb_main): Update.
|
|
|
|
|
* main.h (struct captured_main_args) <use_windows>: Remove.
|
|
|
|
|
* top.c (use_windows): Remove.
|
|
|
|
|
|
2013-12-28 21:43:25 +00:00
|
|
|
|
2014-01-13 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* defs.h (deprecated_flush_hook): Remove.
|
|
|
|
|
|
2014-01-13 20:19:18 +00:00
|
|
|
|
2014-01-13 Jan Kratochvil <jan.kratochvil@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR threads/16216
|
|
|
|
|
* linux-thread-db.c (try_thread_db_load): Add parameter
|
|
|
|
|
check_auto_load_safe. Move here the file_is_auto_load_safe call.
|
|
|
|
|
(try_thread_db_load_from_pdir_1): Move it there from here.
|
|
|
|
|
(try_thread_db_load_from_sdir): Update caller.
|
|
|
|
|
(try_thread_db_load_from_dir): Move it there from here.
|
|
|
|
|
|
2014-01-10 03:55:50 +00:00
|
|
|
|
2014-01-13 Patrick Palka <patrick@parcs.ath.cx>
|
|
|
|
|
|
|
|
|
|
* regformats/regdat.sh: Always rewrite the register file.
|
|
|
|
|
|
2014-01-13 19:36:38 +00:00
|
|
|
|
2014-01-13 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* Makefile.in (CHECK_HEADERS): New variable.
|
|
|
|
|
(check-headers:): New rule.
|
|
|
|
|
|
2013-12-28 21:56:18 +00:00
|
|
|
|
2014-01-13 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* cli/cli-setshow.c (do_set_command): Update.
|
|
|
|
|
* defs.h (deprecated_set_hook): Remove.
|
|
|
|
|
* top.c (deprecated_set_hook): Remove.
|
|
|
|
|
|
2014-01-13 14:56:29 +00:00
|
|
|
|
2014-01-13 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* tracepoint.c (tfile_fetch_registers): Don't infer the PC from
|
|
|
|
|
the tracepoint if the PC is a pseudo-register.
|
|
|
|
|
|
replace XCALLOC with XCNEWVEC or XCNEW
This removes XCALLOC and replaces it either with XCNEWVEC, or, if the
number of elements being requested was 1, with XCNEW.
2014-01-13 Tom Tromey <tromey@redhat.com>
* defs.h (XCALLOC): Remove.
* bcache.c (bcache_xmalloc): Use XCNEW, not XCALLOC.
(print_bcache_statistics): Use XCNEWVEC, not XCALLOC.
* dwarf2loc.c (allocate_piece_closure): Likewise.
* elfread.c (elf_symfile_segments): Likewise.
(elf_symfile_segments): Likewise.
* gdbtypes.c (copy_type_recursive): Likewise.
* i386-tdep.c (i386_gdbarch_init): Use XCNEW, not XCALLOC.
* jit.c (jit_frame_sniffer): Use XCNEWVEC, not XCALLOC.
* minsyms.c (prim_record_minimal_symbol_full): Use XCNEW, not
XCALLOC.
* mt-tdep.c (mt_gdbarch_init): Likewise.
* opencl-lang.c (allocate_lval_closure): Use XCNEWVEC, not
XCALLOC.
* psymtab.c (psymbol_compare): Use XCNEW, not XCALLOC.
* regcache.c (regcache_xmalloc_1): Use XCNEWVEC, not XCALLOC.
* registry.c (registry_alloc_data): Likewise.
* rs6000-tdep.c (rs6000_gdbarch_init): Use XCNEW, not XCALLOC.
* s390-linux-tdep.c (s390_gdbarch_init): Likewise.
* serial.c (serial_fdopen_ops): Likewise.
* solib-aix.c (solib_aix_get_section_offsets): Use XCNEWVEC, not
XCALLOC.
* spu-tdep.c (spu_gdbarch_init): Use XCNEW, not XCALLOC.
* symfile.c (default_symfile_segments): Use XCNEW and XCNEWVEC,
not XCALLOC.
2013-12-28 22:32:27 +00:00
|
|
|
|
2014-01-13 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* defs.h (XCALLOC): Remove.
|
|
|
|
|
* bcache.c (bcache_xmalloc): Use XCNEW, not XCALLOC.
|
|
|
|
|
(print_bcache_statistics): Use XCNEWVEC, not XCALLOC.
|
|
|
|
|
* dwarf2loc.c (allocate_piece_closure): Likewise.
|
|
|
|
|
* elfread.c (elf_symfile_segments): Likewise.
|
|
|
|
|
(elf_symfile_segments): Likewise.
|
|
|
|
|
* gdbtypes.c (copy_type_recursive): Likewise.
|
|
|
|
|
* i386-tdep.c (i386_gdbarch_init): Use XCNEW, not XCALLOC.
|
|
|
|
|
* jit.c (jit_frame_sniffer): Use XCNEWVEC, not XCALLOC.
|
|
|
|
|
* minsyms.c (prim_record_minimal_symbol_full): Use XCNEW, not
|
|
|
|
|
XCALLOC.
|
|
|
|
|
* mt-tdep.c (mt_gdbarch_init): Likewise.
|
|
|
|
|
* opencl-lang.c (allocate_lval_closure): Use XCNEWVEC, not
|
|
|
|
|
XCALLOC.
|
|
|
|
|
* psymtab.c (psymbol_compare): Use XCNEW, not XCALLOC.
|
|
|
|
|
* regcache.c (regcache_xmalloc_1): Use XCNEWVEC, not XCALLOC.
|
|
|
|
|
* registry.c (registry_alloc_data): Likewise.
|
|
|
|
|
* rs6000-tdep.c (rs6000_gdbarch_init): Use XCNEW, not XCALLOC.
|
|
|
|
|
* s390-linux-tdep.c (s390_gdbarch_init): Likewise.
|
|
|
|
|
* serial.c (serial_fdopen_ops): Likewise.
|
|
|
|
|
* solib-aix.c (solib_aix_get_section_offsets): Use XCNEWVEC, not
|
|
|
|
|
XCALLOC.
|
|
|
|
|
* spu-tdep.c (spu_gdbarch_init): Use XCNEW, not XCALLOC.
|
|
|
|
|
* symfile.c (default_symfile_segments): Use XCNEW and XCNEWVEC,
|
|
|
|
|
not XCALLOC.
|
|
|
|
|
|
2013-12-28 22:31:23 +00:00
|
|
|
|
2014-01-13 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* defs.h (XMALLOC): Remove.
|
|
|
|
|
* avr-tdep.c (avr_gdbarch_init): Use XNEW, not XMALLOC.
|
|
|
|
|
* bfin-tdep.c (bfin_gdbarch_init): Likewise.
|
|
|
|
|
* cli-out.c (struct ui_out *): Likewise.
|
|
|
|
|
* cli/cli-dump.c (add_dump_command): Likewise.
|
|
|
|
|
(add_dump_command): Likewise.
|
|
|
|
|
* complaints.c (get_complaints): Likewise.
|
|
|
|
|
(find_complaint): Likewise.
|
|
|
|
|
* dwarf2-frame.c (execute_cfa_program): Likewise.
|
|
|
|
|
* dwarf2read.c (abbrev_table_read_table): Likewise.
|
|
|
|
|
* gdbarch.sh: Likewise.
|
|
|
|
|
* gdbarch.c: Rebuild.
|
|
|
|
|
* inf-ttrace.c (inf_ttrace_add_page): Likewise.
|
|
|
|
|
* interps.c (interp_new): Likewise.
|
|
|
|
|
* lm32-tdep.c (lm32_gdbarch_init): Likewise.
|
|
|
|
|
* m32r-tdep.c (m32r_gdbarch_init): Likewise.
|
|
|
|
|
* mi/mi-console.c (mi_console_file_new): Likewise.
|
|
|
|
|
* mi/mi-interp.c (mi_interpreter_init): Likewise.
|
|
|
|
|
* mi/mi-out.c (mi_out_new): Likewise.
|
|
|
|
|
* mi/mi-parse.c (mi_parse): Likewise.
|
|
|
|
|
* microblaze-tdep.c (microblaze_gdbarch_init): Likewise.
|
|
|
|
|
* moxie-tdep.c (moxie_gdbarch_init): Likewise.
|
|
|
|
|
* observer.c (xalloc_observer_list_node): Likewise.
|
|
|
|
|
* regcache.c (regcache_xmalloc_1): Likewise.
|
|
|
|
|
* reggroups.c (reggroup_new): Likewise.
|
|
|
|
|
(_initialize_reggroup): Likewise.
|
|
|
|
|
* registry.c (register_data_with_cleanup): Likewise.
|
|
|
|
|
* remote.c (remote_notif_stop_alloc_reply): Likewise.
|
|
|
|
|
* ser-base.c (serial_ttystate): Likewise.
|
|
|
|
|
* ser-mingw.c (make_pipe_state): Likewise.
|
|
|
|
|
* ser-pipe.c (pipe_open): Likewise.
|
|
|
|
|
* serial.c (serial_open): Likewise.
|
|
|
|
|
* sh64-tdep.c (sh64_gdbarch_init): Likewise.
|
|
|
|
|
* tui/tui-data.c (tui_alloc_generic_win_info): Likewise.
|
|
|
|
|
(tui_alloc_win_info): Likewise.
|
|
|
|
|
(tui_add_content_elements): Likewise.
|
|
|
|
|
* tui/tui-file.c (tui_file_new): Likewise.
|
|
|
|
|
* tui/tui-out.c (tui_out_new): Likewise.
|
|
|
|
|
* ui-file.c (mem_file_new): Likewise.
|
|
|
|
|
* ui-out.c (push_level): Likewise.
|
|
|
|
|
(make_cleanup_ui_out_end): Likewise.
|
|
|
|
|
(append_header_to_list): Likewise.
|
|
|
|
|
(ui_out_new): Likewise.
|
|
|
|
|
* user-regs.c (user_reg_add_builtin): Likewise.
|
|
|
|
|
|
2013-12-28 22:31:01 +00:00
|
|
|
|
2014-01-13 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* defs.h (XZALLOC): Remove.
|
|
|
|
|
* ada-lang.c (get_ada_inferior_data): Use XCNEW, not XZALLOC.
|
|
|
|
|
* ada-tasks.c (get_ada_tasks_pspace_data): Likewise.
|
|
|
|
|
(get_ada_tasks_inferior_data): Likewise.
|
|
|
|
|
* auto-load.c (get_auto_load_pspace_data): Likewise.
|
|
|
|
|
* auxv.c (get_auxv_inferior_data): Likewise.
|
|
|
|
|
* bfd-target.c (target_bfd_reopen): Likewise.
|
|
|
|
|
* breakpoint.c (get_catch_syscall_inferior_data): Likewise.
|
|
|
|
|
(deprecated_insert_raw_breakpoint): Likewise.
|
|
|
|
|
* bsd-uthread.c (bsd_uthread_pid_to_str): Likewise.
|
|
|
|
|
* corelow.c (core_open): Likewise.
|
|
|
|
|
* darwin-nat.c (darwin_check_new_threads): Likewise.
|
|
|
|
|
(darwin_attach_pid): Likewise.
|
|
|
|
|
* dummy-frame.c (dummy_frame_push): Likewise.
|
|
|
|
|
* dwarf2-frame.c (dwarf2_frame_cache): Likewise.
|
|
|
|
|
* dwarf2loc.c (allocate_piece_closure): Likewise.
|
|
|
|
|
* elfread.c (elf_symfile_segments): Likewise.
|
|
|
|
|
* eval.c (ptrmath_type_p): Likewise.
|
|
|
|
|
* exceptions.c (EXCEPTIONS_SIGJMP_BUF): Likewise.
|
|
|
|
|
* gdbtypes.c (alloc_type_arch): Likewise.
|
|
|
|
|
(alloc_type_instance): Likewise.
|
|
|
|
|
* hppa-tdep.c (hppa_gdbarch_init): Likewise.
|
|
|
|
|
* inf-child.c (inf_child_can_use_agent): Likewise.
|
|
|
|
|
* inflow.c (get_inflow_inferior_data): Likewise.
|
|
|
|
|
* infrun.c (save_infcall_suspend_state): Likewise.
|
|
|
|
|
* jit.c (jit_reader_load): Likewise.
|
|
|
|
|
(get_jit_objfile_data): Likewise.
|
|
|
|
|
(get_jit_program_space_data): Likewise.
|
|
|
|
|
(jit_object_open_impl): Likewise.
|
|
|
|
|
(jit_symtab_open_impl): Likewise.
|
|
|
|
|
(jit_block_open_impl): Likewise.
|
|
|
|
|
(jit_frame_sniffer): Likewise.
|
|
|
|
|
* linux-fork.c (add_fork): Likewise.
|
|
|
|
|
* maint.c (make_command_stats_cleanup): Likewise.
|
|
|
|
|
* objfiles.c (get_objfile_pspace_data): Likewise.
|
|
|
|
|
* opencl-lang.c (struct lval_closure): Likewise.
|
|
|
|
|
* osdata.c (osdata_start_osdata): Likewise.
|
|
|
|
|
* progspace.c (new_address_space): Likewise.
|
|
|
|
|
(add_program_space): Likewise.
|
|
|
|
|
* remote-sim.c (get_sim_inferior_data): Likewise.
|
|
|
|
|
* sh-tdep.c (sh_gdbarch_init): Likewise.
|
|
|
|
|
* skip.c (Ignore): Likewise.
|
|
|
|
|
(skip_delete_command): Likewise.
|
|
|
|
|
* solib-aix.c (get_solib_aix_inferior_data): Likewise.
|
|
|
|
|
(library_list_start_library): Likewise.
|
|
|
|
|
(solib_aix_current_sos): Likewise.
|
|
|
|
|
* solib-darwin.c (get_darwin_info): Likewise.
|
|
|
|
|
(darwin_current_sos): Likewise.
|
|
|
|
|
* solib-dsbt.c (get_dsbt_info): Likewise.
|
|
|
|
|
* solib-ia64-hpux.c (new_so_list): Likewise.
|
|
|
|
|
(ia64_hpux_get_solib_linkage_addr): Likewise.
|
|
|
|
|
* solib-spu.c (append_ocl_sos): Likewise.
|
|
|
|
|
(spu_current_sos): Likewise.
|
|
|
|
|
* solib-svr4.c (get_svr4_info): Likewise.
|
|
|
|
|
(svr4_keep_data_in_core): Likewise.
|
|
|
|
|
(library_list_start_library): Likewise.
|
|
|
|
|
(svr4_default_sos): Likewise.
|
|
|
|
|
(svr4_read_so_list): Likewise.
|
|
|
|
|
* solib-target.c (library_list_start_library): Likewise.
|
|
|
|
|
(solib_target_current_sos): Likewise.
|
|
|
|
|
* sparc-tdep.c (sparc32_gdbarch_init): Likewise.
|
|
|
|
|
* symfile-debug.c (install_symfile_debug_logging): Likewise.
|
|
|
|
|
* symfile.c (default_symfile_segments): Likewise.
|
|
|
|
|
* target-descriptions.c (tdesc_data_init): Likewise.
|
|
|
|
|
(tdesc_create_reg): Likewise.
|
|
|
|
|
(struct tdesc_type *): Likewise.
|
|
|
|
|
(tdesc_create_vector): Likewise.
|
|
|
|
|
(tdesc_set_struct_size): Likewise.
|
|
|
|
|
(struct tdesc_type *): Likewise.
|
|
|
|
|
(tdesc_free_feature): Likewise.
|
|
|
|
|
(tdesc_create_feature): Likewise.
|
|
|
|
|
* windows-nat.c (windows_add_thread): Likewise.
|
|
|
|
|
(windows_make_so): Likewise.
|
|
|
|
|
* xml-support.c (gdb_xml_body_text): Likewise.
|
|
|
|
|
(gdb_xml_create_parser_and_cleanup): Likewise.
|
|
|
|
|
(xml_process_xincludes): Likewise.
|
|
|
|
|
* xml-syscall.c (allocate_syscalls_info): Likewise.
|
|
|
|
|
(syscall_create_syscall_desc): Likewise.
|
|
|
|
|
|
2014-01-12 03:32:26 +00:00
|
|
|
|
2014-01-12 Sergio Durigan Junior <sergiodj@redhat.com>
|
|
|
|
|
|
|
|
|
|
* i386-tdep.c (i386_stap_parse_special_token_triplet): New
|
|
|
|
|
function, with code from i386_stap_parse_special_token.
|
|
|
|
|
(i386_stap_parse_special_token_three_arg_disp): Likewise.
|
|
|
|
|
(i386_stap_parse_special_token): Move code to the two functions
|
|
|
|
|
above; simplify it.
|
|
|
|
|
|
Handle the case of a remote target supporting target side commands, but not on software breakpoints.
Although we can tell upfront whether a remote target supports target
side commands, we can only tell whether the target supports that in
combination with a given breakpoint kind (software, hardware,
watchpoints, etc.) when we go and try to insert such a breakpoint kind
the first time. It's not desirable to make remote_insert_breakpoint
simply return -1 in this case, because if the breakpoint was set in a
shared library, insert_bp_location will assume that the breakpoint
insertion failed because the library wasn't mapped in.
insert_bp_location already handles errors/exceptions thrown from the
target_insert_xxx methods, exactly so the backend can tell the user
the detailed reason the insertion of hw breakpoints failed. But, in
the case of software breakpoints, it discards the detailed error
message.
So the patch makes insert_bp_location use the error's message for SW
breakpoints too, and, introduces a NOT_SUPPORTED_ERROR error code so
that insert_bp_location doesn't confuse the error for failure due to a
shared library disappearing.
The result is:
(gdb) c
Warning:
Cannot insert breakpoint 2: Target doesn't support breakpoints that have target side commands.
2014-01-09 Pedro Alves <palves@redhat.com>
Hui Zhu <hui@codesourcery.com>
PR gdb/16101
* breakpoint.c (insert_bp_location): Rename hw_bp_err_string to
bp_err_string. Don't mark the location shlib_disabled if the
error thrown wasn't a generic or memory error. Catch errors
thrown while inserting breakpoints in overlayed code. Output
error message of software breakpoints.
* remote.c (remote_insert_breakpoint): If this breakpoint has
target-side commands but this stub doesn't support Z0 packets,
throw NOT_SUPPORTED_ERROR error.
* exceptions.h (enum errors) <NOT_SUPPORTED_ERROR>: New error.
* target.h (target_insert_breakpoint): Extend comment.
(target_insert_hw_breakpoint): Add comment.
2014-01-09 18:33:45 +00:00
|
|
|
|
2014-01-09 Pedro Alves <palves@redhat.com>
|
|
|
|
|
Hui Zhu <hui@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR gdb/16101
|
|
|
|
|
* breakpoint.c (insert_bp_location): Rename hw_bp_err_string to
|
|
|
|
|
bp_err_string. Don't mark the location shlib_disabled if the
|
|
|
|
|
error thrown wasn't a generic or memory error. Catch errors
|
|
|
|
|
thrown while inserting breakpoints in overlayed code. Output
|
|
|
|
|
error message of software breakpoints.
|
|
|
|
|
* remote.c (remote_insert_breakpoint): If this breakpoint has
|
|
|
|
|
target-side commands but this stub doesn't support Z0 packets,
|
|
|
|
|
throw NOT_SUPPORTED_ERROR error.
|
|
|
|
|
* exceptions.h (enum errors) <NOT_SUPPORTED_ERROR>: New error.
|
|
|
|
|
* target.h (target_insert_breakpoint): Extend comment.
|
|
|
|
|
(target_insert_hw_breakpoint): Add comment.
|
|
|
|
|
|
[remote/gdbserver] Don't lose signals when reconnecting.
Currently, when GDB connects in all-stop mode, GDBserver always
responds to the status packet with a GDB_SIGNAL_TRAP, even if the
program is actually stopped for some other signal.
(gdb) tar rem ...
...
(gdb) c
Program received signal SIGUSR1, User defined signal 1.
(gdb) disconnect
(gdb) tar rem ...
(gdb) c
(Or a GDB crash instead of an explicit disconnect.)
This results in the program losing that signal on that last continue,
because gdb will tell the target to resume with no signal (to suppress
the GDB_SIGNAL_TRAP, due to 'handle SISGTRAP nopass'), and that will
actually suppress the real signal the program had stopped for
(SIGUSR1). To fix that, I think we should make GDBserver report the
real signal the thread had stopped for in response to the status
packet:
@item ?
@cindex @samp{?} packet
Indicate the reason the target halted. The reply is the same as for
step and continue.
But, that raises the question -- which thread are we reporting the
status for? Due to how the RSP in all-stop works, we can only report
one status. The status packet's response is a stop reply packet, so
it includes the thread identifier, so it's not a problem packet-wise.
However, GDBserver is currently always reporting the status for first
thread in the thread list, even though that may well not be the thread
that got the signal that caused the program to stop. So the next
logical step would be to report the status for the
last_ptid/last_status thread (the last event reported to gdb), if it's
still around; and if not, fallback to some other thread.
There's an issue on the GDB side with that, though...
GDB currently always adds the thread reported in response to the
status query as the first thread in its list. That means that if we
start with e.g.,
(gdb) info threads
3 Thread 1003 ...
* 2 Thread 1002 ...
1 Thread 1001 ...
And reconnect:
(gdb) disconnect
(gdb) tar rem ...
We end up with:
(gdb) info threads
3 Thread 1003 ...
2 Thread 1001 ...
* 1 Thread 1002 ...
Not a real big issue, but it's reasonably fixable, by having GDB
fetch/sync the thread list before fetching the status/'?', and then
using the status to select the right thread as current on the GDB
side. Holes in the thread numbers are squashed before/after
reconnection (e.g., 2,3,5 becomes 1,2,3), but the order is preserved,
which I think is both good, and good enough.
However (yes, there's more...), the previous GDB that was connected
might have had gdbserver running in non-stop mode, or could have left
gdbserver doing disconnected tracing (which also forces non-stop), and
if the new gdb/connection is in all-stop mode, we can end up with more
than one thread with a signal to report back to gdb. As we can only
report one thread/status (in the all-stop RSP variant; the non-stop
variant doesn't have this issue), we get to do what we do at every
other place we have this situation -- leave events we can't report
right now as pending, so that the next resume picks them up.
Note all this ammounts to a QoI change, within the existing framework.
There's really no RSP change here.
The only user visible change (other than that the signal is program is
stopped at isn't lost / is passed to the program), is in "info
program", that now can show the signal the program stopped for. Of
course, the next resume will respect the pass/nopass setting for the
signal in question. It'd be reasonable to have the initial connection
tell the user the program was stopped with a signal, similar to when
we load a core to debug, but I'm leaving that out for a future change.
I think we'll need to either change how handle_inferior_event & co
handle stop_soon, or maybe bypass them completely (like
fork-child.c:startup_inferior) for that.
Tested on x86_64 Fedora 17.
gdb/gdbserver/
2014-01-08 Pedro Alves <palves@redhat.com>
* gdbthread.h (struct thread_info) <status_pending_p>: New field.
* server.c (visit_actioned_threads, handle_pending_status): New
function.
(handle_v_cont): Factor out parts to ...
(resume): ... this new function. If in all-stop, and a thread
being resumed has a pending status, report it without actually
resuming.
(myresume): Adjust to use the new 'resume' function.
(clear_pending_status_callback, set_pending_status_callback)
(find_status_pending_thread_callback): New functions.
(handle_status): Handle the case of multiple threads having
interesting statuses to report. Report threads' real last signal
instead of always reporting GDB_SIGNAL_TRAP. Look for a thread
with an interesting thread to report the status for, instead of
always reporting the status of the first thread.
gdb/
2014-01-08 Pedro Alves <palves@redhat.com>
* remote.c (remote_add_thread): Add threads silently if starting
up.
(remote_notice_new_inferior): If in all-stop, and starting up,
don't call notice_new_inferior.
(get_current_thread): New function, factored out from ...
(add_current_inferior_and_thread): ... this. Adjust.
(remote_start_remote) <all-stop>: Fetch the thread list. If we
found any thread, then select the remote's current thread as GDB's
current thread too.
gdb/testsuite/
2014-01-08 Pedro Alves <palves@redhat.com>
* gdb.threads/reconnect-signal.c: New file.
* gdb.threads/reconnect-signal.exp: New file.
2014-01-08 18:55:51 +00:00
|
|
|
|
2014-01-08 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* remote.c (remote_add_thread): Add threads silently if starting
|
|
|
|
|
up.
|
|
|
|
|
(remote_notice_new_inferior): If in all-stop, and starting up,
|
|
|
|
|
don't call notice_new_inferior.
|
|
|
|
|
(get_current_thread): New function, factored out from ...
|
|
|
|
|
(add_current_inferior_and_thread): ... this. Adjust.
|
|
|
|
|
(remote_start_remote) <all-stop>: Fetch the thread list. If we
|
|
|
|
|
found any thread, then select the remote's current thread as GDB's
|
|
|
|
|
current thread too.
|
|
|
|
|
|
2014-01-08 09:41:03 +00:00
|
|
|
|
2014-01-08 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* NEWS: Create a new section for the next release branch.
|
|
|
|
|
Rename the section of the current branch, now that it has
|
|
|
|
|
been cut.
|
|
|
|
|
|
2014-01-08 09:25:28 +00:00
|
|
|
|
2014-01-08 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
GDB 7.7 branch created (79301218fa0f074c5656db0ec8972a5ddcf91fb5):
|
|
|
|
|
* version.in: Bump version to 7.7.50.DATE-cvs.
|
|
|
|
|
|
2014-01-07 10:12:21 +00:00
|
|
|
|
2014-01-08 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* spu-linux-nat.c (spu_symbol_file_add_from_memory): Change
|
|
|
|
|
type of 'id' to gdb_byte. Cast 'id' to 'const char *'.
|
|
|
|
|
(spu_xfer_partial): Cast 'buf' to 'const char *'.
|
|
|
|
|
|
2014-01-07 09:48:07 +00:00
|
|
|
|
2014-01-08 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* spu-linux-nat.c (spu_symbol_file_add_from_memory): Pass
|
|
|
|
|
return value of bfd_get_filename to symbol_file_add_from_bfd.
|
|
|
|
|
|
2014-01-07 23:31:50 +00:00
|
|
|
|
2014-01-08 Pierre Muller <muller@sourceware.org>
|
|
|
|
|
|
|
|
|
|
Fix PR16201.
|
|
|
|
|
* coff-pe-read.c (struct read_pe_section_data): Add index field.
|
|
|
|
|
(add_pe_exported_sym): Use SECTION_DATA->INDEX for call
|
|
|
|
|
to prim_record_mininal_symbol_and_info.
|
|
|
|
|
(add_pe_forwarded_sym): Use known section number of forwarded symbol
|
|
|
|
|
in call to prim_record_minimal_symbol_and_info.
|
|
|
|
|
(read_pe_exported_syms): Set index field of section_data.
|
|
|
|
|
|
2013-12-18 19:03:07 +00:00
|
|
|
|
2014-01-07 Andrew Pinski <apinski@cavium.com>
|
|
|
|
|
|
|
|
|
|
* features/aarch64-core.xml (cpsr): Change to be 64bit.
|
|
|
|
|
* features/aarch64.c: Regenerate.
|
|
|
|
|
|
2014-01-07 20:28:53 +00:00
|
|
|
|
2014-01-07 Andreas Schwab <schwab@linux-m68k.org>
|
|
|
|
|
|
|
|
|
|
* target.c (return_null): Define.
|
|
|
|
|
(update_current_target): Use it instead of return_zero for
|
|
|
|
|
functions that return a pointer.
|
|
|
|
|
|
2014-01-07 19:03:06 +00:00
|
|
|
|
2014-01-07 Edjunior Barbosa Machado <emachado@linux.vnet.ibm.com>
|
|
|
|
|
|
|
|
|
|
* source.c (add_path): Fix check for duplicated paths in the previously
|
|
|
|
|
included paths.
|
|
|
|
|
|
2014-01-07 03:25:10 +00:00
|
|
|
|
2014-01-07 Honggyu Kim <hong.gyu.kim@lge.com>
|
|
|
|
|
|
|
|
|
|
* ada-lang.c: Remove duplicated include statements.
|
|
|
|
|
* alphabsd-nat.c: Ditto.
|
|
|
|
|
* amd64-darwin-tdep.c: Ditto.
|
|
|
|
|
* amd64fbsd-nat.c: Ditto.
|
|
|
|
|
* auto-load.c: Ditto.
|
|
|
|
|
* ax-gdb.c: Ditto.
|
|
|
|
|
* breakpoint.c: Ditto.
|
|
|
|
|
* dbxread.c: Ditto.
|
|
|
|
|
* fork-child.c: Ditto.
|
|
|
|
|
* gdb_usleep.c: Ditto.
|
|
|
|
|
* i386-darwin-tdep.c: Ditto.
|
|
|
|
|
* i386fbsd-nat.c: Ditto.
|
|
|
|
|
* infcmd.c: Ditto.
|
|
|
|
|
* inferior.c: Ditto.
|
|
|
|
|
* jv-lang.c: Ditto.
|
|
|
|
|
* linux-nat.c: Ditto.
|
|
|
|
|
* linux-tdep.c: Ditto.
|
|
|
|
|
* m68kbsd-nat.c: Ditto.
|
|
|
|
|
* m68klinux-nat.c: Ditto.
|
|
|
|
|
* microblaze-tdep.c: Ditto.
|
|
|
|
|
* mips-linux-tdep.c: Ditto.
|
|
|
|
|
* mn10300-tdep.c: Ditto.
|
|
|
|
|
* nto-tdep.c: Ditto.
|
|
|
|
|
* opencl-lang.c: Ditto.
|
|
|
|
|
* osdata.c: Ditto.
|
|
|
|
|
* printcmd.c: Ditto.
|
|
|
|
|
* regcache.c: Ditto.
|
|
|
|
|
* remote-m32r-sdi.c: Ditto.
|
|
|
|
|
* remote.c: Ditto.
|
|
|
|
|
* symfile.c: Ditto.
|
|
|
|
|
* symtab.c: Ditto.
|
|
|
|
|
* tilegx-linux-nat.c: Ditto.
|
|
|
|
|
* tilegx-tdep.c: Ditto.
|
|
|
|
|
* tracepoint.c: Ditto.
|
|
|
|
|
* valops.c: Ditto.
|
|
|
|
|
* vaxbsd-nat.c: Ditto.
|
|
|
|
|
* windows-nat.c: Ditto.
|
|
|
|
|
* xtensa-tdep.c: Ditto.
|
|
|
|
|
|
2014-01-07 09:28:48 +00:00
|
|
|
|
2014-01-07 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* spu-linux-nat.c (_initialize_spu_nat): Declare.
|
|
|
|
|
|
2014-01-08 09:16:32 +00:00
|
|
|
|
2014-01-07 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* aix-thread.c (pdc_read_regs): Cast parameter to uintptr_t.
|
|
|
|
|
(pdc_write_regs): Likewise.
|
|
|
|
|
(fetch_regs_kernel_thread): Likewise.
|
|
|
|
|
(store_regs_kernel_thread): Likewise.
|
|
|
|
|
|
|
|
|
|
2014-01-07 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* ada-varobj.c (ada_varobj_adjust_for_child_access): Convert
|
|
|
|
|
tagged type objects to their actual type.
|
|
|
|
|
|
Ada: Fix missing call to pretty-printer for fields of records.
Consider the following types:
type Time_T is record
Secs : Integer;
end record;
Before : Time_T := (Secs => 1384395743);
In this example, we assume that type Time_T is the number of seconds
since Epoch, and so added a Python pretty-printer, to print this
type in a more human-friendly way. For instance:
(gdb) print before
$1 = Thu Nov 14 02:22:23 2013 (1384395743)
However, we've noticed that things stop working when this type is
embedded inside another record, and we try to print that record.
For instance, with the following declarations:
type Composite is record
Id : Integer;
T : Time_T;
end record;
Afternoon : Composite := (Id => 1, T => (Secs => 1384395865));
(gdb) print afternoon
$2 = (id => 1, t => (secs => 1384395865))
We expected instead:
(gdb) print afternoon
$2 = (id => 1, t => Thu Nov 14 02:24:25 2013 (1384395865))
This patch fixes the problem by making sure that we try to print
each field via a call to val_print, rather than calling ada_val_print
directly. We need to go through val_print, as the val_print
handles all language-independent features such as calling the
pretty-printer, knowing that ada_val_print will get called eventually
if actual Ada-specific printing is required (which should be the
most common scenario).
And because val_print takes the language as parameter, we enhanced
the print_field_values and print_variant_part to also take a language.
As a bonus, this allows us to remove a couple of references to
current_language.
gdb/ChangeLog:
* ada-valprint.c (print_field_values): Add "language" parameter.
Update calls to print_field_values and print_variant_part.
Pass new parameter "language" in call to val_print instead
of "current_language". Replace call to ada_val_print by call
to val_print.
(print_variant_part): Add "language" parameter.
(ada_val_print_struct_union): Update call to print_field_values.
gdb/testsuite/ChangeLog:
* gdb.ada/pp-rec-component.exp, gdb.ada/pp-rec-component.py,
gdb.ada/pp-rec-component/foo.adb, gdb.ada/pp-rec-component/pck.adb,
gdb.ada/pp-rec-component/pck.ads: New files.
2013-12-19 17:26:55 +00:00
|
|
|
|
2014-01-07 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* ada-valprint.c (print_field_values): Add "language" parameter.
|
|
|
|
|
Update calls to print_field_values and print_variant_part.
|
|
|
|
|
Pass new parameter "language" in call to val_print instead
|
|
|
|
|
of "current_language". Replace call to ada_val_print by call
|
|
|
|
|
to val_print.
|
|
|
|
|
(print_variant_part): Add "language" parameter.
|
|
|
|
|
(ada_val_print_struct_union): Update call to print_field_values.
|
|
|
|
|
|
2013-12-19 16:19:45 +00:00
|
|
|
|
2014-01-07 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* ada-valprint.c (ui_memcpy): Delete.
|
|
|
|
|
(ada_print_floating): Update documentation. Add empty line
|
|
|
|
|
between between function documentation and implementation.
|
|
|
|
|
Delete variable "buffer". Use ui_file_xstrdup in place of
|
|
|
|
|
ui_file_put. Minor adjustments following this change.
|
|
|
|
|
|
2013-12-19 16:06:46 +00:00
|
|
|
|
2014-01-07 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* ada-valprint.c (ada_val_print_string): New function,
|
|
|
|
|
extracted from ada_val_print_array.
|
|
|
|
|
(ada_val_print_array): Replace extracted code by call
|
|
|
|
|
to ada_val_print_string followed by a return. Move
|
|
|
|
|
"else" branch to the function's top block.
|
|
|
|
|
|
2013-12-19 15:43:57 +00:00
|
|
|
|
2014-01-07 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* ada-valprint.c (ada_val_print_array): Move implementation
|
|
|
|
|
down. Rename parameter "offset" and "val" into "offset_aligned"
|
|
|
|
|
and "original_value" respectively. Add parameter "offset".
|
|
|
|
|
|
2013-12-19 15:26:27 +00:00
|
|
|
|
2014-01-07 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* ada-valprint.c (ada_val_print_ref): Rewrite by mostly
|
|
|
|
|
re-organizing the code. Change the "???" message printed
|
|
|
|
|
when target type is a TYPE_CODE_UNDEF into
|
|
|
|
|
"<ref to undefined type>".
|
|
|
|
|
|
2013-12-19 15:11:49 +00:00
|
|
|
|
2014-01-07 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* ada-valprint.c (print_record): Delete, implementation inlined...
|
|
|
|
|
(ada_val_print_struct_union): ... here. Remove call to
|
|
|
|
|
ada_check_typedef in inlined implementation.
|
|
|
|
|
|
2013-12-19 12:30:43 +00:00
|
|
|
|
2014-01-07 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* ada-valprint.c (ada_val_print_gnat_array): New function,
|
|
|
|
|
extracted from ada_val_print_1;
|
|
|
|
|
(ada_val_print_ptr, ada_val_print_num, ada_val_print_enum)
|
|
|
|
|
(ada_val_print_flt, ada_val_print_struct_union)
|
|
|
|
|
(ada_val_print_ref): Likewise.
|
|
|
|
|
(ada_val_print_1): Delete variables i and elttype.
|
|
|
|
|
Replace extracted-out code by call to corresponding
|
|
|
|
|
new functions.
|
|
|
|
|
|
2013-12-19 11:48:39 +00:00
|
|
|
|
2014-01-07 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* ada-valprint.c (ada_val_print_1): Remove call to gdb_flush.
|
|
|
|
|
|
2013-12-19 11:27:00 +00:00
|
|
|
|
2014-01-07 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* ada-valprint.c (ada_val_print_1): Replace calls to
|
|
|
|
|
ada_val_print_1 by calls to val_print.
|
|
|
|
|
|
2013-12-19 10:33:20 +00:00
|
|
|
|
2014-01-07 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* ada-valprint.c (ada_val_print_1): Add parameter "language".
|
|
|
|
|
Update calls to self accordingly. Replace calls to c_val_print
|
|
|
|
|
by calls to val_print.
|
|
|
|
|
|
2013-12-19 10:05:16 +00:00
|
|
|
|
2014-01-07 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* ada-valprint.c (print_record): Delete declaration.
|
|
|
|
|
(adjust_type_signedness, ada_val_print_1): Likewise.
|
|
|
|
|
(ada_val_print): Move function implementation down.
|
|
|
|
|
(print_variant_part, print_field_values, print_record):
|
|
|
|
|
Move function implementation up.
|
|
|
|
|
|
2013-12-23 03:18:51 +00:00
|
|
|
|
2014-01-07 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* python/py-type.c (typy_get_name): New function.
|
|
|
|
|
(type_object_getset): Add entry for attribute "name".
|
|
|
|
|
* NEWS: Add entry mentioning this new attribute.
|
|
|
|
|
|
2014-01-05 11:32:51 +00:00
|
|
|
|
2014-01-07 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* gnu-nat.c (set_exceptions_cmd): Remove an empty body 'if'
|
|
|
|
|
statement.
|
|
|
|
|
|
2014-01-05 11:36:51 +00:00
|
|
|
|
2014-01-07 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* gnu-nat.c (info_port_rights): Add qualifier const to
|
|
|
|
|
argument args.
|
|
|
|
|
|
2014-01-05 11:37:53 +00:00
|
|
|
|
2014-01-07 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* gnu-nat.c (trace_me): Use 'void' for empty argument list.
|
|
|
|
|
|
2014-01-05 11:36:03 +00:00
|
|
|
|
2014-01-07 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* gnu-nat.c (make_inf) Update declaration.
|
|
|
|
|
(make_inf): Make it static.
|
|
|
|
|
(inf_set_traced): Likewise.
|
|
|
|
|
(inf_port_to_thread, inf_task_died_status): Likewise.
|
|
|
|
|
|
2014-01-05 07:38:44 +00:00
|
|
|
|
2014-01-07 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* gnu-nat.c (inf_tid_to_proc): Remove declaration.
|
|
|
|
|
|
2014-01-05 07:05:44 +00:00
|
|
|
|
2014-01-07 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* gnu-nat.c (_initialize_gnu_nat): Declare.
|
|
|
|
|
|
2014-01-02 03:02:56 +00:00
|
|
|
|
2014-01-07 Yao Qi <yao@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* gdbarch.sh (byte_order, byte_order_for_code): Change type to
|
|
|
|
|
'enum bfd_endian'.
|
|
|
|
|
(struct gdbarch_info) <byte_order>: Change type to
|
|
|
|
|
'enum bfd_endian'.
|
|
|
|
|
<byte_order_for_code>: Likewise.
|
|
|
|
|
* gdbarch.c, gdbarch.h: Regenerated.
|
|
|
|
|
|
2014-01-06 21:57:59 +00:00
|
|
|
|
2014-01-06 Sasha Smundak <asmundak@google.com>
|
|
|
|
|
|
|
|
|
|
* jit.c: (jit_reader_load_command): Fix JIT reader path creation.
|
|
|
|
|
|
2013-12-29 09:39:28 +00:00
|
|
|
|
2014-01-06 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* doublest.c (convert_doublest_to_floatformat): Use const, not
|
|
|
|
|
CONST.
|
|
|
|
|
* somread.c (som_symtab_read): Likewise.
|
|
|
|
|
|
2014-01-06 16:24:41 +00:00
|
|
|
|
2014-01-07 Hui Zhu <hui@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* gdb_bfd.c (gdb_bfd_stash_filename): Removed.
|
|
|
|
|
(gdb_bfd_open): Removed gdb_bfd_stash_filename.
|
|
|
|
|
(gdb_bfd_fopen): Ditto.
|
|
|
|
|
(gdb_bfd_openr): Ditto.
|
|
|
|
|
(gdb_bfd_openw): Ditto.
|
|
|
|
|
(gdb_bfd_openr_iovec): Ditto.
|
|
|
|
|
(gdb_bfd_fdopenr): Ditto.
|
|
|
|
|
* gdb_bfd.h (gdb_bfd_stash_filename): Removed.
|
|
|
|
|
* solib-aix.c (solib_aix_bfd_open): Alloc object_bfd->filename
|
|
|
|
|
with xstrdup.
|
|
|
|
|
* solib-darwin.c (darwin_bfd_open): Alloc res->filename
|
|
|
|
|
with xstrdup.
|
|
|
|
|
* symfile-mem.c (symbol_file_add_from_memory): Removed
|
|
|
|
|
gdb_bfd_stash_filename.
|
|
|
|
|
|
2014-01-03 22:34:45 +00:00
|
|
|
|
2014-01-03 Doug Evans <dje@google.com>
|
|
|
|
|
|
|
|
|
|
* nat/linux-waitpid.c (linux_debug): Remove extraneous \n from
|
|
|
|
|
output.
|
|
|
|
|
|
2014-01-01 03:57:03 +00:00
|
|
|
|
2014-01-01 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
Update year range in copyright notice of all files.
|
|
|
|
|
|
2014-01-01 03:39:44 +00:00
|
|
|
|
2014-01-01 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* top.c (print_gdb_version): Set copyright year to 2014.
|
|
|
|
|
|
2014-01-01 03:34:22 +00:00
|
|
|
|
2014-01-01 Joel Brobecker <brobecker@adacore.com>
|
|
|
|
|
|
|
|
|
|
* config/djgpp/fnchange.lst: Add entry for gdb/ChangeLog-2013.
|
|
|
|
|
|
2014-01-01 03:31:51 +00:00
|
|
|
|
For older changes see ChangeLog-2013.
|
1999-04-16 01:35:26 +00:00
|
|
|
|
|
|
|
|
|
Local Variables:
|
|
|
|
|
mode: change-log
|
|
|
|
|
left-margin: 8
|
|
|
|
|
fill-column: 74
|
|
|
|
|
version-control: never
|
2007-08-09 22:44:38 +00:00
|
|
|
|
coding: utf-8
|
1999-04-16 01:35:26 +00:00
|
|
|
|
End:
|