(callback_list): New global.
(append_callback_event, delete_callback_event): New functions.
(process_callback): New function.
(start_event_loop): Call it.
* remote-utils.c (NOT_SCHEDULED): Define.
(readchar_buf, readchar_bufcnt, readchar_bufp): New static globals,
moved out of readchar.
(readchar): Rewrite. Call reschedule before returning.
(reset_readchar): New function.
(remote_close): Call it.
(process_remaining, reschedule): New functions.
* server.h (callback_handler_func): New typedef.
(append_callback_event, delete_callback_event): Declare.
* cp-namespace.c (cp_lookup_symbol_imports): Support ALIAS for the
CURRENT->DECLARATION case.
* cp-support.h (struct using_direct): Provide extended comment.
* proc-service.c (ps_pglobal_lookup): Use
thread_db_look_up_one_symbol.
* remote-utils.c (look_up_one_symbol): Add new `may_ask_gdb'
parameter. Use it instead of all_symbols_looked_up.
* server.h (struct process_info) <all_symbols_looked_up>: Delete
field.
(all_symbols_looked_up): Don't declare.
(look_up_one_symbol): Add new `may_ask_gdb' parameter.
* thread-db.c (struct thread_db) <all_symbols_looked_up>: New
field.
(thread_db_look_up_symbols): Adjust call to look_up_one_symbol.
Set all_symbols_looked_up here.
(thread_db_look_up_one_symbol): New.
(thread_db_get_tls_address): Adjust.
(thread_db_load_search, try_thread_db_load_1): Always allocate the
thread_db object on the heap, and tentatively set it in the
process structure.
(thread_db_init): Don't set all_symbols_looked_up here.
* linux-low.h (thread_db_look_up_one_symbol): Declare.
(status_pending_p_callback): Remove redundant statement. Check
for !TARGET_WAITIKIND_IGNORE, instead of
TARGET_WAITKIND_STOPPED.
(handle_tracepoints): Make sure LWP is locked. Adjust.
(linux_wait_for_event_1): Adjust.
(linux_cancel_breakpoints): New.
(unsuspend_one_lwp): New.
(unsuspend_all_lwps): New.
(linux_wait_1): If finishing a step-over, unsuspend all lwps.
(send_sigstop_callback): Change return type to int, add new
`except' parameter and handle it.
(suspend_and_send_sigstop_callback): New.
(stop_all_lwps): Add new `suspend' and `expect' parameters, and
pass them down. If SUSPEND, also increment the lwp's suspend
count.
(linux_resume_one_lwp): Add notice about resuming a suspended LWP.
(need_step_over_p): Don't consider suspended LWPs.
(start_step_over): Adjust.
(proceed_one_lwp): Change return type to int, add new `except'
parameter and handle it.
(unsuspend_and_proceed_one_lwp): New.
(proceed_all_lwps): Use find_inferior instead of
for_each_inferior.
(unstop_all_lwps): Add `unsuspend' parameter. If UNSUSPEND, them
also decrement the suspend count of LWPs. Pass `except' down,
instead of hacking its suspend count.
(linux_pause_all): Add `freeze' parameter. Adjust.
(linux_unpause_all): New.
(linux_target_ops): Install linux_unpause_all.
* server.c (handle_status): Adjust.
* target.h (struct target_ops): New fields `unpause_all' and
`cancel_breakpoints'. Add new parameter to `pause_all'.
(pause_all): Add new `freeze' parameter.
(unpause_all): New.
(cancel_breakpoints): New.
* tracepoint.c (clear_installed_tracepoints): Pause threads, and
cancel breakpoints.
(cmd_qtstart): Pause threads.
(stop_tracing): Pause threads, and cancel breakpoints.
* win32-low.c (win32_target_ops): Adjust.
the inferior right away from here...
(linux_wait_1): ... to here, and adjust to check the thread's
last_resume_kind instead of the lwp's step or stop_expected flags.
(remote_start_remote): In non-stop mode, update the remote end on
which signals it can silently pass.
(init_remote_ops): Install remote_notice_signals.
* gdb.base/break-interp.exp: Remove $exec.debug safety removal.
* gdb.base/sepdebug.exp: Remove .debug subdirectory handling. New
variable different_dir. Move debugfile into a full directory pathname
under DIFFERENT_DIR.
* lib/gdb.exp (separate_debug_filename): Remove.
(gdb_gnu_strip_debug): No longer call separate_debug_filename. Remove
variable debug_dir and mkdir of it. Update function comments.
(linux_kill): Stop all lwps here. Don't delete the main lwp here.
(linux_detach_one_lwp): Assume the lwp is stopped.
(any_thread_of): Delete.
(linux_detach): Stop all lwps here. Don't blindly delete all
breakpoints.
(delete_lwp_callback): New.
(linux_mourn): Delete all lwps of the process that is gone.
(linux_wait_1): Don't delete the last lwp of the process here.
* mem-break.h (mark_breakpoints_out): Declare.
* mem-break.c (mark_breakpoints_out): New.
(free_all_breakpoints): Use it.
* server.c (handle_target_event): If the process is gone, mark
breakpoints out.
* thread-db.c (struct thread_db) <create_bp>: New field.
(thread_db_enable_reporting): Fix prototype. Store a thread event
breakpoint reference in the thread_db struct.
(thread_db_load_search): Clear the thread_db object.
(try_thread_db_load_1): Ditto.
(switch_to_process): New.
(disable_thread_event_reporting): Use it.
(remove_thread_event_breakpoints): New.
(thread_db_detach, thread_db_mourn): Use it.
(linux_detach_one_lwp): Adjust to send_sigstop interface change.
(send_sigstop): Take an lwp_info as parameter instead. Queue a
SIGSTOP even if the LWP is stopped.
(send_sigstop_callback): New.
(stop_all_lwps): Use send_sigstop_callback instead.
(linux_resume_one_thread): Adjust.
(proceed_one_lwp): Still proceed an LWP that the client has
requested to stop, if we haven't reported it as stopped yet. Make
sure that LWPs the client want stopped, have a pending SIGSTOP.
Tom Tromey <tromey@redhat.com>
Thiago Jung Bauermann <bauerman@br.ibm.com>
* Makefile.in (SUBDIR_PYTHON_OBS): Add py-parameter.
(SUBDIR_PYTHON_SRCS): Likewise.
(py-parameter.o): New rule.
* python/py-parameter.c: New file.
* python/python-internal.h (gdbpy_initialize_parameter)
(gdbpy_parameter, gdbpy_parameter_value)
(gdbpy_parse_command_name): Declare.
* python/py-cmd.c (parse_command_name): Rename to
gdbpy_parse_command_name.
(gdbpy_parse_command_name): Accept a starting list parameter and
use over cmdlist.
(cmdpy_init): Use gdbpy_parse_command_name.
* python/python.c (parameter_to_python): Rename to
gdbpy_parameter_to_python. Accept enum var_types and value.
(gdbpy_parameter): Use gdbpy_parameter_value.
(_initialize_python): Call gdbpy_initialize_parameters.
2010-04-29 Phil Muldoon <pmuldoon@redhat.com>
* gdb.python/py-param.exp: New File.
2010-04-29 Phil Muldoon <pmuldoon@redhat.com>
Tom Tromey <tromey@redhat.com>
Thiago Jung Bauermann <bauerman@br.ibm.com>
* gdb.texinfo (Parameters In Python): New Node.
The .dg files are files containing the user's code, after the GNAT
expander was applied. The expansion replaces some of the complex
features by simpler pseudo-Ada code and the user can ask to see and
debug that code using the -gnatDG option...
For instance, given the following code where Circle is a tagged type
(aka as a class type in C++):
procedure Foo is
My_Shape : Circle := (X => 1, Y => 2, R => 3);
X : Integer;
begin
X := Position_X (My_Shape);
end Foo;
The expansion results in:
procedure foo is
my_shape : pck__circle := (
_parent => (
_tag => pck__circleP,
x => 1,
y => 2),
r => 3);
x : integer;
begin
x := pck__position_x (my_shape);
return;
end foo;
2010-04-27 Joel Brobecker <brobecker@adacore.com>
* symfile.c (init_filename_language_table): Register .dg files
with language_ada.
This is a comment that I wrote not too long ago, I believe, as part
of a submission process, and somehow did not get to commit. It explains
how the TYPE_TARGET_TYPE is used by Ada in the case of dynamic records/
unions.
2010-04-24 Joel Brobecker <brobecker@adacore.com>
* gdbtypes.h (struct main_type): Expand comment about target_type
field.
On Darwin, we have lots of complaints being emitted when restarting
a program:
(gdb) start
`a-except.o' has disappeared; keeping its symbols.
`unwind-dw2.o' has disappeared; keeping its symbols.
`s-except.o' has disappeared; keeping its symbols.
`s-traceb.o' has disappeared; keeping its symbols.
These object files are part of the GNAT runtime, and were never available.
The warning comes from the fact that we're checking whether the .o files
in the GNAT shared runtime have changed whereas we should be checking
whether the GNAT shared library itself has changed.
This patch implements this. Although it is really only useful on a platform
such as Darwin (debug info stored in .o files), we believe that this is
the right thing to do in general. This change should be a noop for all
the other platforms in any case.
gdb/ChangeLog (from Tristan Gingold & Pedro Alves):
* symfile.c (reread_symbols): Also search for file in libraries.
Update comment.
Tested on x86_64-darwin and x86_64-linux.
This is a fairly simple patch that we have had for a while. LynxOS has
relatively few features, from a GDB perspective, and we've been using
a bareboard x86 debugger as our LynxOS cross-debugger. So here is a patch
that make x86-lynxos an alias of bareboard x86.
On the other end of things, I'm still working on gdbserver support
for LynxOS - I'm just lacking the time to make significant progress.
But this is in the works (in the meantime, we're using gdbserver from
gdb-6.8 which is derived work from LinuxWorks' patch).
I wasn't sure whether this would be interesting or not for the FSF tree,
but since it's simple and unintrusive, I am suggesting it now... Any
objection? I wasn't sure whether it warranted a NEWS entry either, since
it doesn't really add a new port, just an alias. I suggest the NEWS entry
when I'm finally done with the gdbserver port.
gdb/ChangeLog:
* configure.tgt: Treat x86-lynxos targets as x86 bareboard targets
in terms of configuration.
* objfiles.c: Include solist.h.
(free_all_objfiles): New variable so. Check stale solist objfiles.
* symfile.c (symbol_file_clear): Swap the order of free_all_objfiles
and no_shared_libraries.
* cli/cli-decode.c (complete_on_cmdlist): Make two passes over the
command list.
gdb/testsuite
* gdb.base/completion.exp: Add tests for completion and deprecated
commands.