| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2008-10-13 Pedro Alves <pedro@codesourcery.com>
* server.c (discard_pending_stop_replies): Initialize prev.
2008-10-12 Pedro Alves <pedro@codesourcery.com>
* linux-low.c (linux_wait_1): Cancel breakpoint hits in threads
we're not reporting.
(cancel_breakpoints_callback): New.
2008-10-12 Pedro Alves <pedro@codesourcery.com>
* server.c (queue_stop_reply_callback, handle_status): Pass
TARGET_SIGNAL_TRAP, not TARGET_SIGNAL_0.
* linux-low.c (ptid_is_pid): Delete.
(linux_wait_for_event): In non-stop, don't set the current
inferior arbitrarily.
(linux_wait): Flush the event pipe before polling for an event.
(wait_for_sigstop): In non-stop, don't set the current
inferior arbitrarily.
(linux_resume_one_lwp): Small cleanup.
(cancel_breakpoint): New.
(linux_resume_one_thread): Use it. Still report SIGTRAPs.
(regsets_store_inferior_registers): Plug leak.
(sigchld_handler): Don't use fprintf here.
* mem-break.c (breakpoint_at): New.
* inferiors.c (ptid_is_pid): New.
* mem-break.h (breakpoint_at): Declare.
* server.c (discard_queued_stop_replies): Add `pid' argument.
Handle it.
(send_next_stop_reply): Cleanup.
(attach_inferior): Don't wait here in non-stop mode.
(handle_v_attach): Don't queue stop replies here.
(handle_v_kill): Discard queued stop replies of the inferior we
just killed.
(queue_stop_reply_callback): Add `arg' argument. Handle it.
(handle_status): Adjust.
(kill_inferior_callback): Discard queued stop replies of the
inferior we just killed.
(detach_or_kill_inferior_callback): Discard queued stop replies of
the inferior we just killed or detached from.
(process_serial_event): Cleanup. Discard queued stop replies of
the inferior we just detached. Don't write 0 bytes to the inferior.
(handle_serial_event): Debug output.
* server.h (ptid_is_pid): Declare.
* remote-utils.c (prepare_resume_reply): Avoid reading registers
and memory from a thread that is gone.
2008-09-26 Pedro Alves <pedro@codesourcery.com>
* server.h (struct sym_cache, struct process_info_private):
Forward declare.
(struct process_info): Add symbol_cache, all_symbols_looked_up and
private fields.
(current_process): Declare.
* remote-utils.c (struct sym_cache) <name>: Remove constness.
(symbol_cache): Delete.
(free_sym_cache, clear_symbol_cache): New.
(look_up_one_symbol): Adjust, to per-process symbol cache.
* inferiors.c (current_process): New.
* linux-low.h: Include "gdb_proc_service.h".
(struct process_info_private): Define.
* linux-low.c (thread_db_active): Delete.
(linux_add_process): New.
(handle_extended_wait, linux_create_inferior, linux_attach): Use
it.
(linux_wait_for_event, linux_look_up_symbols): Adjust.
(initialize_low): Don't clear the global thread_db_active.
* thread-db.c (proc_handle, thread_agent): Delete.
(fixup_proc_handle): New.
(thread_db_err_str, thread_db_enable_reporting): Use it. Adjust.
(thread_db_find_new_threads): Look for the current inferior
thread, not the first thread in the list. Use fixup_proc_handle.
Adjust.
(thread_db_get_tls_address): Use fixup_proc_handle.
(thread_db_init): Likewise. Adjust.
2008-09-26 Pedro Alves <pedro@codesourcery.com>
* mem-break.c (get_breakpoint_list): Add `create' argument. Only
create the list if create is set.
(remove_breakpoint_list): New.
(set_breakpoint_at, find_breakpoint_at, check_mem_read)
(check_mem_write, delete_all_breakpoints): Adjust.
2008-09-26 Pedro Alves <pedro@codesourcery.com>
* server.c (gdbserver_usage): Describe --remote-debug option.
(main): Handle --remote-debug switch.
2008-09-19 Pedro Alves <pedro@codesourcery.com>
Non-stop mode support.
* linux-low.c (linux_event_pipe): New int array for pipe.
(target_is_async_p): New.
(handle_extended_wait): Use my_waitpid.
(linux_kill_one_lwp): Stop the LWP if it is not stopped already.
Use my_waitpid, not linux_wait_for_event. Remove the lwp and the
corresponding thread from the lists.
(linux_kill_one_process, linux_kill): Delete.
(linux_kill_1): Rename back to ...
(linux_kill) ... this. Stop the LWP if it is not stopped already.
Use my_waitpid, not linux_wait_for_event. Remove the lwp and the
corresponding thread from the lists.
(linux_detach_one_lwp): Make sure the LWP is stopped. Adjust to
new linux_wait_for_event interface.
(linux_detach_one_process, linux_detach): Delete.
(linux_detach_1): Rename back to ...
(linux_detach): This.
(linux_join): Add PID argument. Use my_waitpid instead of
waitpid.
(status_pending_p): Ignore suspended threads.
(my_waitpid): Emulate __WALL.
(linux_wait_for_lwp): Add 'options' argument. Handle it. Use
my_wait. If requesting an event from a specific process, leave
events in other processes pending.
(resume_stopped_lwps): New.
(linux_wait_for_event): Delete.
(linux_wait_for_event_1): Rename back to ...
(linux_wait_for_event): ... this. Change interface: add wstat and
options arguments, return -1 on error, 0 otherwise. Adjust. In
all-stop, resume stopped lwps if there was no pending status.
Don't return immediatelly if a pending status was found ---
continue handling it instead. Don't loop, only handle one event.
(linux_wait): Rename to ...
(linux_wait_1): ... this. Add target_options argument. Handle
it. Don't loop --- only handle one event. Ignore the continue
thread in non_stop mode. Adjust to new resume_kind interface.
Only stop all threads in all-stop mode.
(async_file_flush, async_file_mark): New.
(linux_wait): New.
(wait_for_sigstop): Set stopping_threads here. Use
linux_wait_for_lwp instead of linux_wait_for_event. Adjust.
(stop_all_lwps): Don't set stopping_threads here.
(resume_ptr): Delete.
(struct resume_info): New.
(linux_set_resume_request): Add arg argument. Adjust to take a
struct remove_info instead of the global resume_ptr. Accept
pid,-1 to apply to all threads.
(linux_continue_one_thread, linux_queue_one_thread): Merge both
and create ...
(linux_resume_one_thread): ... this. New. Handle rk_stop.
(resume_status_pending_p): Assume no resume info to mean do
nothing. Ignore suspended LWPs.
(linux_resume): Add n argument. Adjust. In non-stop mode, don't
look for a pending status over all threads.
(linux_read_offsets): Minor cleanup.
(sigchld_handler, linux_async, linux_start_non_stop): New.
(linux_target_ops): Register linux_async and linux_start_non_stop.
(initialize_low): Register sigchld_handler as SIGCHLD handler.
* utils.c (internal_verror, internal_error_file_line): New.
* Makefile.in (SFILES): Add event-loop.c.
(OBS): Add event-loop.o.
(event-loop.o): New rule.
* linux-low.h (struct lwp_info) <suspended>: New flag.
* thread-db.c (thread_db_create_event): Make sure thread_db reads
from the current inferior.
(thread_db_get_tls_address): Comment.
* server.c (thread_from_wait, old_thread_from_wait, attached):
Delete.
(non_stop): New global.
(own_buf, mem_buf): New globals.
(struct vstop_notif): New.
(notif_queue): New.
(queue_stop_reply, push_event, discard_queued_stop_replies)
(send_next_stop_reply): New.
(start_inferior): Adjust to new thread_resume interface. Adjust
to new mywait interface.
(attach_inferior): Adjust.
(handle_general_set): Handle QNonStop.
(handle_query): Pass 'QNonStop+'.
(handle_v_cont): Handle vCont;t. Don't enable/disable async io in
non-stop mode. In non-stop return OK, and don't wait for the
target.
(handle_v_attach): In non-stop, return OK, and queue events for
all threads.
(handle_v_run): In non-stop, set the general thread here.
(handle_v_stopped): New.
(handle_v_requests): Report support for 't'. Handle 'vStopped'.
(proceed): Add comment. Adjust. In non-stop, don't
enable/disable async io; write 'OK', and don't wait for the
target.
(queue_stop_reply_callback, handle_status): New.
(kill_inferior_callback, detach_or_kill_inferior_callback)
(join_inferiors_callback): New.
(main): In --debug mode, also enable remote debug. Don't pass -1
to kill_inferior or detach_inferior; instead, iterate over all
processes killing or detaching them. Adjust to use the even-loop.
(process_serial_event): New, factored out of main. If the
connection closed, remove all sources from the event loop.
Iterate over all inferiors joining them. Use handle_status.
Don't print inferior exit notices here. In non-stop, defer
exiting until GDB read all queued events.
(handle_serial_event, handle_target_event): New.
* server.h (FOR_EACH_INFERIOR): New.
(thread_from_wait, old_thread_from_wait): Remove.
(non_stop): Declare.
(gdb_client_data, handler_func): New typedefs.
(delete_file_handler, add_file_handler, start_event_loop)
(handle_serial_event, handle_target_event, push_event)
(putpkt_notif, internal_error_file_line): Declare.
(internal_error): Define.
* target.c (mywait): Add `options' argument. Print inferior exit
notices here.
(start_non_stop): New.
* event-loop.c: New.
* remote-utils.c (remote_open): Register remote_desc in the event
loop, with handle_serial_event as callback.
(remote_close): Remove remote_desc from the event loop.
(hex_or_minus_one): New.
(read_ptid, read_ptid): Use it.
(putpkt_binary): Rename to ...
(putpkt_binary_1): ... this. Add `notif' argument. Handle
pushing a remote protocol notification.
(putpkt_binary): New as wrapper around putpkt_binary_1.
(putpkt_notif): New.
(getpkt): Debug output.
(prepare_resume_reply): Remove dead code. In non-stop, don't set
the general thread here.
* target.h (enum resume_kind): New.
(struct thread_resume) <leave_stopped, step>: Delete.
(struct thread_resume) <kind>: New field.
(TARGET_WNOHANG): Define.
(struct target_ops) <kill, detach>: Adjust comments.
(struct target_ops) <join>: Add `pid' argument.
(struct target_ops) <resume>: Add `n' argument.
(struct target_ops) <wait>: Add `options' argument.
(struct target_ops) <async, start_non_stop>: New fields.
(join_inferior): Add `pid' argument.
(target_async): New.
(start_non_stop): Declare.
(mywait): Add options argument.
2008-09-15 Pedro Alves <pedro@codesourcery.com>
* linux-low.c (new_inferior): Mention in the comment that all
inferiors should have the same architecture for now.
(linux_create_inferior, linux_attach): Only set new_inferior if
this is the first process.
2008-08-29 Pedro Alves <pedro@codesourcery.com>
* linux-low.c (ptid_is_pid): Move higher.
(linux_wait_for_lwp): Remove dead code.
(linux_wait_for_event): Rename to ...
(linux_wait_for_event_1): ... this.
(linux_wait_for_event): New.
(ptid_same_pid): Delete.
(linux_set_resume_request): Clearify.
2008-08-28 Pedro Alves <pedro@codesourcery.com>
* linux-low.c (handle_extended_wait, linux_attach_lwp)
(linux_attach): Minor cleanups.
2008-08-28 Pedro Alves <pedro@codesourcery.com>
* linux-low.c (linux_thread_alive): Return false for a listed
thread known to be dead.
(linux_wait_for_event): Don't set the dead flag here.
(wait_for_sigstop): Store ptid before waiting for the event.
Minor cleanup.
2008-08-28 Pedro Alves <pedro@codesourcery.com>
* inferiors.c (find_inferior): Allow deleting the current iterated
inferior.
2008-08-28 Pedro Alves <pedro@codesourcery.com>
* linux-low.c (linux_pid_to_exec_file): Move higher.
(linux_enable_event_reporting): Enable PTRACE_O_TRACEEXEC.
(handle_extended_wait): Handle PTRACE_EVENT_EXEC.
* remote-utils.c (prepare_resume_reply): Set the general thread to
the last thread that had an event in TARGET_WAITKIND_FORKED and
TARGET_WAITKIND_VFORKED. Handle TARGET_WAITKIND_EXECD.
2008-08-28 Pedro Alves <pedro@codesourcery.com>
* server.c (handle_query): Pass "QExecFile:PID;" back in the reply.
2008-08-28 Pedro Alves <pedro@codesourcery.com>
* linux-low.c (linux_supports_tracefork_flag): Move higher.
(linux_enable_event_reporting): New.
(handle_extended_wait): Change return type to int. Handle
PTRACE_EVENT_FORK and PTRACE_EVENT_VFORK.
(add_lwp): Set waitstatus.kind to TARGET_WAITKIND_IGNORE.
(linux_attach_lwp): Use linux_enable_event_reporting.
(linux_wait_for_event): Don't keep waiting if the extended wait
status should be reported to gdb.
(linux_wait): Use linux_enable_event_reporting. If waitstatus
holds a processed event, return it instead.
* remote-utils.c (prepare_resume_reply): Handle
TARGET_WAITKIND_FORKED and TARGET_WAITKIND_VFORKED.
* linux-low.h (struct lwp_info) <waitstatus>: New member.
2008-08-28 Pedro Alves <pedro@codesourcery.com>
* target.h (struct target_ops) <pid_to_exec_file>: New member.
* server.c (handle_query): Handle qExecFile.
* linux-low.c (linux_pid_to_exec_file): New.
(linux_target_ops): Register it.
2008-08-28 Pedro Alves <pedro@codesourcery.com>
* linux-low.c (is_lwpid): New.
(linux_kill_one_lwp, linux_kill_1, linux_detach_one_lwp): Adjust.
(status_pending_p): Check if we're interested in this lwp.
(linux_wait_for_lwp): Change signature: return an lwp_info*, and
take a ptid instead of an lwp_info**.
(linux_wait_for_event): Take a ptid instead of a thread_info
pointer. Adjust.
(wait_for_sigstop): Adjust. If a whole process died, keep the
exit status pending.
(ptid_is_pid, ptid_same_pid): New.
(linux_set_resume_request): Allow resuming all threads of a process.
(resume_status_pending_p): Check for dead lwps.
* linux-low.h (struct lwp_info) <dead>: New field.
* server.c (start_inferior): Only resume and wait for events from
the inferior we're creating.
2008-08-28 Pedro Alves <pedro@codesourcery.com>
Decouple target code from remote protocol.
* linux-low.c (linux_wait): Change prototype. Adjust.
* server.c (last_status, last_ptid): New.
(start_inferior): Remove "statusptr" argument. Adjust.
(attach_inferior, handle_v_cont, handle_v_attach, handle_v_run)
(handle_v_kill, handle_v_requests): Remove "status" and "signal"
parameters. Adjust.
(myresume): Rename to ...
(proceed): ... this. Remove "statusp" parameter. Adjust.
(main): Remove "status" local. Adjust.
* target.c (mywait): Change prototype. Adjust.
* target.h (enum target_waitkind): New.
(struct target_waitstatus): New.
(struct target_ops) <wait>: Change prototype.
(mywait): Adjust.
* remote-utils.c: Include "target.h".
(prepare_resume_reply): Change prototype to take a ptid and a
target_waitstatus. Adjust.
* server.h (prepare_resume_reply): Adjust prototype.
2008-08-28 Pedro Alves <pedro@codesourcery.com>
* inferiors.c (all_processes): New.
(add_process): New.
* linux-low.c (linux_create_inferior): Add process.
(linux_attach_lwp): Add "initial" parameter, and use it instead of
relying on having only one thread in the global list.
(linux_attach): Add process.
(struct counter): New.
(check_if_last_thread_of_pid, is_last_thread_of_process): New.
(linux_kill_one_lwp): Add ARGS parameter. Change return type to
int. Check if we're interested in this lwp. Use
is_last_thread_of_process.
(linux_kill): Rename to ...
(linux_kill_1): ... this. Kill lwps of the requested only.
(linux_kill_one_process): New.
(linux_kill): New.
(linux_detach_one_lwp): Add ARGS parameter. Change return type to
int. Check if we're interested in this lwp. Remove the lwp from
both the lwp list and the thread list.
(any_thread_of, linux_detach_1, linux_detach_one_process): New.
(linux_detach): Reimplement.
(linux_wait_for_event): Use is_last_thread_of_process.
(linux_wait): Likewise. On process exit, don't clear all inferiors.
Implement multi-process extensions.
* mem-break.c (breakpoints): Delete.
(struct breakpoint_list): New.
(all_breakpoints): New.
(get_breakpoint_list): New.
(set_breakpoint_at, delete_breakpoint, find_breakpoint_at)
(check_mem_read, check_mem_write, delete_all_breakpoints): Use it.
* server.h (struct process_info): New.
(all_processes): Declare.
(add_process): Declare.
* linux-low.h (linux_attach_lwp): Add "initial" parameter.
* thread-db.c (maybe_attach_thread): Adjust.
2008-08-28 Pedro Alves <pedro@codesourcery.com>
* linux-low.c, linux-low.h, proc-service.c, thread-db.c: Rename
`struct process_info' to `struct lwp_info', and adjust throughout.
2008-08-28 Pedro Alves <pedro@codesourcery.com>
Implement remote protocol multi-process extensions.
* inferiors.c (null_ptid, minus_one_ptid): New.
(ptid_build, pid_to_ptid, ptid_get_pid, ptid_get_lwp)
(ptid_get_tid, ptid_equal): New functions.
(add_thread): Drop gdb_id argument. Retype thread_id argument to
ptid_t. Adjust.
(thread_id_to_gdb_id): Adjust.
(thread_to_gdb_id): Change return type to ptid_t. Adjust.
(gdb_id_to_thread): Rename to ...
(find_thread_pid): ... this. Adjust.
(gdb_id_to_thread_id): Change return type to ptid_t. Adjust.
(find_inferior_id): Change id argument type to ptid_t. Adjust.
(loaded_dll, add_pid_to_list, pull_pid_from_list): Adjust.
(initialize_inferiors): New.
* remote-utils.c (hexchars): New.
(ishex, unpack_varlen_hex, write_ptid, read_ptid): New.
(prepare_resume_reply): Adjust.
* server.c (cont_thread, general_thread, step_thread)
(thread_from_wait, old_thread_from_wait): Change type to ptid_t.
(multi_process): New.
(start_inferior): Adjust.
(handle_query): Adjust. Report multiprocess extensions support.
(handle_v_cont): Adjust.
(handle_v_kill): New.
(handle_v_requests): Handle vKill.
(myresume): Adjust.
(first_thread_of): New.
(main): Call initialize_inferiors. If bailing out, kill all
inferiors. Handle multi-process detach. Handle multi-process H
and T.
* server.h (ULONGEST): New typedef.
(struct ptid): New struct.
(ptid_t): New typedef.
(minus_one_ptid, null_ptid): New.
(ptid_t ptid_build, pid_to_ptid, ptid_get_pid, ptid_get_lwp)
(ptid_get_tid, ptid_equal): New.
(struct inferior_list_entry) <id>: Change type to ptid_t.
(add_thread, thread_id_to_gdb_id, thread_to_gdb_id)
(gdb_id_to_thread_id): Adjust prototypes.
(find_thread_pid): Declare.
(find_inferior_id): Adjust prototype.
(cont_thread, general_thread, step_thread, thread_from_wait)
(old_thread_from_wait): Adjust type to ptid_t.
(multi_process): Declare.
(read_ptid, write_ptid): Declare.
* linux-low.c (pid_of): Adjust.
(lwpid_of): New.
(inferior_lwpid): New.
(handle_extended_wait): Adjust.
(add_process): Change pid argument to a ptid. Adjust.
(linux_create_inferior): Adjust.
(linux_attach_lwp): Adjust. Clear new_inferior on error. If
creating a new inferior, don't rely on inferior_pid, instead use
the lwpid as pid.
(linux_attach): Set new_inferior earlier. Adjust.
(linux_kill): Change return type to int. Adjust.
(linux_detach): Add pid parameter.
(linux_thread_alive): Change lwpid paremeter type to ptid.
Adjust.
(same_lwp, find_lwp_pid): New.
(linux_wait_for_process): Adjust.
(linux_wait_for_process, linux_wait_for_event, send_sigstop)
(wait_for_sigstop, linux_resume_one_process,
(linux_resume_one_process, linux_set_resume_request)
(linux_continue_one_thread, linux_queue_one_thread)
(fetch_register, usr_store_inferior_registers)
(regsets_fetch_inferior_registers)
(regsets_store_inferior_registers, linux_read_memory)
(linux_write_memory, linux_request_interrupt, linux_read_auxv):
Adjust.
* linux-low.h (get_process_thread): Adjust.
(struct process_info) <lwpid>: Remove.
(find_lwp_pid): Declare.
* target.c (set_desired_inferior): Adjust.
(target_pid_to_str): New.
* target.h (struct thread_resume) <thread>: Change type to ptid_t.
(struct target_ops) <kill>: Change return type to int, and take an
int as parameter.
(struct target_ops) <detach>: Take an int as parameter.
(struct target_ops) <thread_alive>: Change pid argument type to
ptid_t.
(kill_inferior, detach_inferior): Add PID argument.
* thread-db.c (thread_db_create_event): Adjust.
(find_one_thread): Change argument to a ptid. Adjust.
(maybe_attach_thread, thread_db_get_tls_address, thread_db_init):
Adjust.
* proc-service.c (ps_lgetregs): Adjust.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2008-11-25 Pedro Alves <pedro@codesourcery.com>
* linux-fork.c (detach_fork): Delete declaration.
(_initialize_linux_fork): Move "set detach-on-fork"
command to ...
* infrun.c (_initialize_infrun): ... here.
* inferior.h (detach_fork): Declare.
2008-11-10 Pedro Alves <pedro@codesourcery.com>
* remote.c (read_ptid): If we don't know about any inferior yet,
use the pid of magic_null_ptid.
(remote_start_remote): Don't set inferior_ptid to magic_null_ptid
here.
2008-10-14 Pedro Alves <pedro@codesourcery.com>
* remote.c (remote_start_remote): Mask async mode while collecting
the initial event, use notice_new_inferior.
2008-10-12 Pedro Alves <pedro@codesourcery.com>
* infcmd.c (attach_command_post_wait): Set the inferior exec here.
(attach_command): Don't set the inferior exec here.
(notice_new_inferior): New.
* inferior.h (notice_new_inferior): Declare.
* remote.c (notice_new_inferiors): Add `stopping' argument. Add
the inferior before adding the threads. Call notice_new_inferior.
(record_currthread): Adjust.
(remote_threads_info): Add the inferior before adding the thread.
Call notice_new_inferior.
2008-10-09 Pedro Alves <pedro@codesourcery.com>
* remote.c (notice_new_inferiors): If there's only one exec, set
it in the new inferior.
(set_thread): If setting the thread failed, assume the thread has
terminated.
2008-09-17 Pedro Alves <pedro@codesourcery.com>
* inferior.c (delete_inferior_1): Free the inferior after freeing
its threads.
2008-09-16 Pedro Alves <pedro@codesourcery.com>
* inferior.h (discard_all_inferiors): Declare.
* inferior.c (delete_inferior): Rename to...
(delete_inferior_1): ...this. Add 'silent' argument. If this
inferior is has pid not zero, delete its threads.
(delete_inferior): New, as wrapper around delete_inferior_1.
(delete_inferior_by_pid_1): Reimplement.
(discard_all_inferiors): New.
2008-09-15 Pedro Alves <pedro@codesourcery.com>
* remote.c (extended_remote_attach_1): Don't set target_attach_no_wait.
2008-09-15 Pedro Alves <pedro@codesourcery.com>
* frame.c (get_current_frame, has_stack_frames): Check for
null_ptid.
* top.c (execute_command): Likewise.
2008-08-29 Pedro Alves <pedro@codesourcery.com>
* inferior.c (have_real_inferiors): New.
* inferior.h (have_real_inferiors): Declare.
* remote.c (extended_remote_mourn_1): Use it.
* top.c (quit_target): Use it.
2008-08-28 Pedro Alves <pedro@codesourcery.com>
* remote.c (parse_stop_reply): Handle Y;exec.
2008-08-28 Pedro Alves <pedro@codesourcery.com>
* infcmd.c (struct exec_file_attach_wrapper_args): New.
(exec_file_attach_wrapper): New.
(attach_command_post_wait): If there's a sysroot, prepend it to
the target reported exec file path. Continue attaching to the
inferior event if attaching to the exec file fails.
* remote.c (remote_pid_to_exec_file): Rebustify. Expect
"QExecFile:PID;" in the reply.
2008-08-28 Pedro Alves <pedro@codesourcery.com>
* remote.c (record_currthread): If setting the current thread to
minus_one_ptid, don't pass that to the stub.
(remote_parse_stop_reply): Handle 'Y' stop reply.
(remote_wait_as): Likewise. If remote process exited, invalidate
the current thread.
(remote_detach_pid): New.
(remote_follow_fork): New.
(init_remote_ops): Register it.
2008-08-28 Pedro Alves <pedro@codesourcery.com>
* remote.c (remote_pid_to_exec_file): New.
(init_remote_ops): Register it.
2008-08-28 Pedro Alves <pedro@codesourcery.com>
* infcmd.c (kill_if_already_running): If target supports
multi-process, allow multi-runs.
2008-08-28 Pedro Alves <pedro@codesourcery.com>
* remote.c (extended_remote_create_inferior_1): Don't clear the
thread list.
|
| |
|
|
|
|
| |
set_inferior_exec, inferior_list): Remove duplicate declarations.
|
| |
|
|
|
|
|
|
|
|
| |
2008-09-14 Stan Shebs <stan@codesourcery.com>
* gdb.multi/Makefile.in: New.
* gdb.multi/hello.c, hangout.c, goodbye.c: New source files.
* gdb.multi/base.exp: New file, basic multiprocess tests.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Multi-process (primarily multi-exec) support.
2008-10-14 Stan Shebs <stan@codesourcery.com>
* blockframe.c (get_frame_block): Get inferior from frame.
* block.c (block_for_pc_inf): New function.
* block.h (block_for_pc_inf): Declare.
* symfile.c (find_pc_inf_sect): New function.
* symfile.h (find_pc_inf_sect): Declare.
* symtab.c (find_pc_inf_line): New function.
* symtab.h (find_pc_inf_line): Declare.
* frame.c (struct frame_info) New field inferior.
(fprint_frame_id): Display inferior.
(get_frame_id): Set inferior_num from inferior.
(frame_id_eq): Compare inferiors.
(create_sentinel_frame): Set inferior.
(create_new_frame): Copy inferior from sentinel.
(get_prev_frame_raw): Copy inferior from next frame.
(find_frame_sal): Use find_pc_inf_line.
(get_frame_inferior): New function.
* frame.h (struct frame_id): New field inferior_num.
* breakpoint.c (expand_sals_by_inferiors): Copy section from input
sal to expanded sals.
* symtab.c (expand_line_sal): Ditto.
2008-10-10 Stan Shebs <stan@codesourcery.com>
* remote.c (discard_pending_stop_replies): Initialize prev.
* infrun.c (infrun_thread_stop_requested): Ditto.
2008-10-08 Stan Shebs <stan@codesourcery.com>
* inferior.h (struct inferior): Rename environ field to inf_environ.
* inferior.c (print_inferior): Ditto.
2008-10-01 Stan Shebs <stan@codesourcery.com>
* inferior.h (detach_fork): Declare here...
* linux-fork.h (detach_fork): ...instead of here.
* linux-fork.c (detach_fork): Move to...
* infrun.c (detach_fork): ...here.
* remote.c (detach_fork): Remove decl.
2008-09-30 Stan Shebs <stan@codesourcery.com>
* linespec.c (decode_line_1): Better default for one-exec case.
* remote (remote_start_remote): Use the exec in the one-exec case.
2008-09-29 Stan Shebs <stan@codesourcery.com>
* infcmd.c (attach_command): If only one exec, assume it is the
attached inferior's exec.
(attach_command_post_wait): Set inferior's exec from
the one that was found.
* inf-ptrace.c (inf_ptrace_attach): Only report exec file if
if there is just one present.
(inf_ptrace_detach): Use inferior to get correct exec name.
2008-09-29 Stan Shebs <stan@codesourcery.com>
* inferior.c (print_inferior): Use exec short names, and drop
unused address space display.
2008-09-26 Stan Shebs <stan@codesourcery.com>
* breakpoint.c (should_be_inserted): Test for no inferior.
(clone_breakpoint_location): New function, broken out from...
(update_breakpoint_inferiors): ...here, also tweak conditions
for adding a location.
(insert_breakpoint_location): Don't count non-running inferiors.
(remove_breakpoint): Set tmp_inf.
(print_one_breakpoint_location): Add allflag arg, use to always
show inf.
(print_one_breakpoint): Add allflag arg.
(do_captured_breakpoint_query): Fix caller.
(breakpoint_1): Ditto.
* exec.c (create_exec): Save full pathname as exec name.
(find_exec_by_name): Use find_exec_by_substr.
* fork-child.c (fork_inferior): Warn if exec not found for new
inferior.
2008-09-25 Stan Shebs <stan@codesourcery.com>
* breakpoint.c (should_be_inserted): Don't insert in inferiors
that are not running.
(update_breakpoint_inferiors): New function.
(insert_breakpoints): Call it.
(insert_breakpoint_locations): Don't insert in inferiors that are
not running.
(set_raw_breakpoint_without_location): Set trigger set from
current itset here...
(set_raw_breakpoint): Instead of here. Also add default fillins
for the location's inferior.
(add_location_to_breakpoint): Similarly.
(expand_sals_by_inferiors): New function.
(breakpoint_re_set_one): Call it.
(resolve_sal_pc): Don't set sal inferior.
* breakpoint.h (struct breakpoint): Remove exec field, never used.
* inferior.h (inferior_list): Declare.
* inferior.c (inferior_list): Make public.
(add_inferior_to_itset): Auto-add inferiors after exec's inferior.
(first_inferior_in_set): Check for zero-length vector.
* exec.c (xfer_memory): Use tmp_inf as inferior if set.
* infcmd.c (focus_command): Improve user feedback.
* linespec.c (build_canonical_line_spec): Record exec name as part
of canonical spec.
(symbol_found): Canonicalize specs more.
(decode_indirect): Revert rewrite from 2008-09-14.
(decode_sharp): Use find_exec_by_substr, better error messages.
* minsyms.c (lookup_minimal_symbol_in_exec): New function.
(lookup_minimal_symbol_in_exec_1): New function, body of
lookup_minimal_symbol.
* symtab.h (lookup_minimal_symbol_in_exec): Declare.
* symtab.c (find_function_start_sal): Set inferior to use.
(append_expanded_sal): Return pointer to the new sal.
* remote.c (remote_xfer_memory): Better parms to ptid_build, remove
debug print.
(remote_xfer_partial): Ditto.
2008-09-22 Pedro Alves <pedro@codesourcery.com>
* inferior.c (itset_member): Fix typo.
2008-09-22 Stan Shebs <stan@codesourcery.com>
* inferior.h (current_inf): Remove declaration.
(tmp_inf): Declare.
* inferior.c (current_inf): Remove.
(tmp_inf): New global, hack to bypass passing inferior throughout
target stack.
(print_inferior): Don't report current_inf.
(add_inferior_command): Don't use current_inf.
(name_inferior_command): Use first inferior of current_itset.
(update_itset): Handle NULL case.
(add_inferior_itset): Recursively add all inferiors derived from
an exec if the exec's own inferior is present.
(first_inferior_in_set): New function.
(free_inferior): Comment out until references cleared reliably.
* infcmd.c (focus_command): Don't set current_inf.
(get_inferior_args): Use first_inferior_in_set instead of
current_inf.
(set_inferior_args): Ditto.
(set_inferior_args_vector): Ditto.
(notice_args_set): Ditto.
* breakpoint.c (insert_breakpoint_locations): Remove insertion test
using current_inf, set tmp_inf.
(reattach_breakpoints): Set tmp_inf.
(bpstat_check_breakpoint_conditions): Test trigger set here...
(bpstat_stop_status): ... instead of here.
(bpstat_check_trigger_set): Add special case for exec's own
inferior.
(print_one_breakpoint_location): Also test for multiple inferiors
before displaying location's inferior, flag trigger set with "i/t"
instead of "focus".
(check_duplicates): Pass location's inferior to...
(check_duplicates_for): Add inferior arg and use.
(set_raw_breakpoint): Override sal inferior with one from the
trigger set.
(add_location_to_breakpoint): Ditto.
* remote.c (remote_xfer_memory): Switch inferiors if tmp_inf is
set to something different from inferior_ptid.
(remote_xfer_partial): Ditto.
* top.c (execute_command): Always update the current itset.
2008-09-19 Stan Shebs <stan@codesourcery.com>
* inferior.c (set_inferior_exec): New function.
(set_inferior_exec_command): New command.
* inferior.h: Declare set_inferior_exec.
* fork-child.c (fork_inferior): Set the inferior's exec.
* remote.c (extended_remote_create_inferior_1): Ditto.
gdb/doc/
* gdb.texinfo (Debugging Multiple Programs): Describe set-exec.
2008-09-18 Stan Shebs <stan@codesourcery.com>
* target.c (target_resize_to_sections): Adjust execs' section
tables too.
2008-09-17 Stan Shebs <stan@codesourcery.com>
gdb/doc/
* gdb.texinfo (Invoking GDB): Describe multiple program args.
(File Options): Describe multi-program effects.
(Multiple Programs): New section, multi-program debugging.
(Forks): Rename section from "Processes".
(Specify Location): Describe the #-syntax.
(Variables): Describe the #-syntax.
(Files): Describe add-file and add-exec-file.
(Maintenance Commands): Describe maint print execs.
2008-09-15 Stan Shebs <stan@codesourcery.com>
* exec.c (addr_space_info_command): Don't try to display host address.
2008-09-14 Stan Shebs <stan@codesourcery.com>
* c-exp.y: (yylex): Accept '#' in identifiers.
* linespec.c (decode_sharp): New function.
(decode_line_1): Use it for #-syntax.
(decode_indirect): Rewrite to accept exec arg and iterate over
inferiors.
(struct d_i_data): New struct for inferior iteration.
(decode_indirect_callback): New function.
(decode_variable): Pass in exec, use in symbol lookup.
2008-09-14 Stan Shebs <stan@codesourcery.com>
* breakpoint.h (struct bp_location): Add inferior field instead
of address space field.
* breakpoint.c (insert_breakpoint_locations): Only insert in
appropriate inferior.
(bpstat_check_trigger_set): New function.
(bpstat_stop_status): Call it, check location's inferior also.
(print_one_breakpoint_location): Report location's inferior.
(set_raw_breakpoint): Set location inferior, clear an experiment.
(add_location_to_breakpoint): Ditto.
(expand_line_sal_maybe): Check for non-NULL original function.
(resolve_sal_pc): Set sal inferior.
(clear_command): Be careful to not clear anything twice.
* symtab.h: Update declarations of symbol lookups.
(struct symtab_and_line): Change address space to inferior field.
* symtab.c (init_sal): Clear inferior field.
(append_expanded_sal): Set inferior.
(lookup_symbol_in_language_1): New function.
(lookup_symbol_in_language): Call it.
(lookup_symbol_in_exec_in_language): New function.
(lookup_symbol): Detect #-syntax and find exec to use.
(lookup_symbol_aux): Add exec argument and use it.
(lookup_symbol_aux_symtabs): Ditto.
(lookup_symbol_aux_psymtabs): Ditto.
(basic_lookup_symbol_nonlocal): Ditto.
(lookup_symbol_static): Ditto.
(lookup_symbol_global): Ditto.
* ada-lang.c (cp_lookup_symbol_nonlocal): Ditto.
* cp-support.h (cp_lookup_symbol_nonlocal): Ditto.
* cp-namespace.c (cp_lookup_symbol_nonlocal): Ditto.
* language.h (struct language_defn): Ditto.
* scm-valprint.c (scm_inferior_print): Add exec arg to
lookup_symbol_global.
* source.c (select_source_symtab): Use current_exec.
* addrspace.h (struct addr_space): New field num.
* exec.h (struct exec): New fields sections and sections_end.
* exec.c (exec_file_attach_1): Set them from exec_ops, set
inferior's address space name from exec.
(find_exec_by_substr): New function.
(build_section_table): Don't free old table.
(print_section_info): Use exec's section table.
(next_address_space_num): New global, numbering for address spaces.
(new_address_space): Use it.
(addr_space_info_command): Display it.
* infcmd.c (set_current_exec): Set exec_ops section table.
* inferior.h (update_itset): Declare.
* inferior.c (add_inferior_silent): Set address space.
(print_inferior): Display it.
(number_of_inferiors): New function.
(itset_member): New function.
2008-09-04 Stan Shebs <stan@codesourcery.com>
* corefile.c (close_exec_file): Remove #if 0 block.
(validate_files): Use first_exec instead of exec_bfd.
(get_exec_file): Ditto.
* corelow.c (core_open): Ditto.
* utils.c (string_to_core_addr): Ditto.
* arch-utils.c (gdbarch_update_p): Ditto.
* linux-thread-db.c (enable_thread_event): Ditto.
(thread_db_get_thread_local_address ): Ditto.
* exec.c (find_exec_by_name): Test short name also.
(file_command): Set current exec.
2008-09-03 Stan Shebs <stan@codesourcery.com>
* inferior.c (add_threads_to_itset): Default to including all
of an inferior's threads.
2008-08-31 Stan Shebs <stan@codesourcery.com>
Parsing for i/t sets.
* inferior.h (struct itset_entry): New struct.
(struct itset): Make thread lists be per-inferior, add parse state
variables.
* inferior.c: (add_inferior_command): Add error checking and
confirmation.
(remove_inferior_command): Update for itset restructuring.
(new_itset): Don't pass in dynamic-ness, call parse_itset_spec.
(update_itset): Similarly.
(parse_itset_spec): New, parsing of itset spec.
(parse_itset_list, parse_itset_range, etc): New.
(make_itset_from_spec): Rewrite.
(dump_itset): Rewrite to reflect itset structure.
* infcmd.c (focus_command): Similarly.
2008-08-25 Stan Shebs <stan@codesourcery.com>
First part of multiprocess support.
* Makefile.in (COMMON_OBS): Add inferior.o.
* addrspace.h: New file.
* breakpoints.h (struct bp_location): Add address space field.
(struct breakpoint): Add trigger set and exec fields.
* breakpoints.c (print_one_breakpoint_location): Display trigger
set.
(set_raw_breakpoint): Set trigger set from current itset.
* corefile.c (reopen_exec_file): Rewrite for multiple execs.
(get_exec_file): Add case for current_exec.
* corelow.c (is_core_file): New function.
(core_files_info): Pass additional arg to print_section_info.
* exec.h (struct exec): New struct.
* exec.c (execs): New global.
(exec_bfd_mtime): Remove.
(last_exec_created, current_exec, first_exec): New globals.
(exec_close): Clear all exec objects.
(exec_file_clear): Tweak user message.
(exec_file_add): New function.
(exec_file_attach_1): New function, body of exec_file_attach,
plus new code to handle multiple execs.
(exec_file_attach): Call it.
(exec_file_update): New function.
(create_exec, find_exec_by_name, number_of_execs): New functions.
(exec_file_command): Rephrase query, set current exec.
(add_exec_file_command): New command.
(add_file_command): New command.
(print_section_info): Add exec argument.
(exec_files_info): Rewrite for multiple execs.
(maintenance_print_execs): New function.
(new_address_space): New function.
(addr_space_info_command): New command.
* gdbcore.h (exec_bfd_mtime): Remove decl.
(exec_file_add): Declare.
* infcmd.c: Include exec.h.
(current_itset): New global.
(set_current_exec): New function.
(focus_command): New command.
(get_inferior_args): Maybe get from the current inferior.
(set_inferior_args): Also set in current inferior.
(set_inferior_args_vector): Similarly.
(notice_args_set): Similarly.
(attach_command): Rephrase query.
* inferior.h (struct inferior): New struct.
(struct itset): New struct.
* inferior.c: New file, management of multiple inferiors.
* main.c (captured_main): Rewrite to allow multiple executables,
pids, and corefiles on the command line.
* maint.c (maintenance_info_sections): Rewrite for multiple execs.
* objfiles.h (struct objfile): New field for exec.
(ALL_OBJFILES_FOR_EXEC, ALL_PRIMARY_SYMTABS_FOR_EXEC,
ALL_PSYMTABS_FOR_EXEC): New macros.
* objfiles.c (allocate_objfile): Clear exec field.
* solib.c (clear_solib): Use first_exec instead of exec_bfd.
* source.c (select_source_symtab): Use ALL_OBJFILES_FOR_EXEC.
(find_source_lines): Use mtime from exec.
* symfile.c (syms_from_objfile): Don't clear objfile if multiple
execs.
(new_symfile_objfile): Get objfile's exec from last_exec_created.
(symbol_file_clear): Rephrase messages.
(reread_symbols): Update objfile's exec if necessary.
* symmisc.c (dump_objfile): Dump objfile's exec also.
(maintenance_print_objfiles): Report symfile_objfile.
* symtab.h (struct symtab_and_line): Add address space field.
* symtab.c (find_pc_sect_psymtab): Look for a plausible exec, and
then use it.
(lookup_symbol_aux_symtabs): Use current exec.
(lookup_symbol_aux_symtabs): Ditto.
(basic_lookup_transparent_type): Ditto.
(find_pc_sect_symtab): Ditto.
* target.h (print_section_info): Add arg to decl.
* tui/tui-win.c: Rename "focus" command to "ffocus".
gdb/testsuite:
2008-11-20 Stan Shebs <stan@codesourcery.com>
2008-09-14 Stan Shebs <stan@codesourcery.com>
* gdb.gdb/selftest.exp: Update to reflect current sources.
* Makefile.in (ALL_SUBDIRS): Add gdb.multi.
* configure.ac (AC_OUTPUT): Add gdb.multi/Makefile.
* configure: Regenerate.
* gdb.multi/Makefile.in: New.
* gdb.multi/hello.c, hangout.c, goodbye.c: New source files.
* gdb.multi/base.exp: New file, basic multiprocess tests.
2008-08-25 Stan Shebs <stan@codesourcery.com>
* config/monitor.exp: Match on rephrased message.
* gdb.base/attach.exp: Ditto.
* gdb.base/default.exp: Ditto.
* lib/gdb.exp: Ditto.
|
|
|
|
|
|
|
|
|
|
|
|
| |
(_bfd_elf_default_got_elt_size): Declare.
* elflink.c (struct alloc_got_off_arg): Replace member got_elt_size
by new member info.
(elf_gc_allocate_got_offsets): Adjust for calling bed->got_elt_size
to get the element size instead of using a gofarg entry.
(bfd_elf_gc_common_finalize_got_offsets): Similar.
(_bfd_elf_default_got_elt_size): New function.
* elfxx-target.h: New macro elf_backend_got_elt_size.
(elfNN_bed): Use it.
|
| |
|
| |
|
|
|
|
| |
All callers updated.
|
|
|
|
|
|
|
| |
matching syscall entry point.
* gdb.base/foll-vfork.exp (tcatch_vfork_then_parent_follow)
(tcatch_vfork_then_child_follow): Likewise. Finish through
vfork even if we stopped at the syscall trampoline.
|
|
|
|
| |
gdbarch and pc.
|
|
|
|
| |
* gdb.base/sepsymtab.exp: Update, old "info sym" format restored.
|
|
|
|
| |
thread. Avoid dereferencing a possibly dangling pointer.
|
|
|
|
| |
* bfdwin.c: Fix comment.
|
|
|
|
|
| |
* bfd.c (is32bit): Use architecture information for non-ELF
targets.
|
|
|
|
|
|
| |
TLS_LD even when symbol is used with other TLS reloc types.
(ppc_elf_relocate_section): Bypass symbol checks when using tlsld_got.
Leave addend zero on LD DTPMOD dynamic reloc.
|
|
|
|
|
| |
(stop_registers): Tweak comment.
* infrun.c (stop_registers): Tweak comment.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
(frv_gdbarch_init): Register frv_skip_main_prologue.
* solib-frv.c (fetch_loadmap): Return early when no segments are
found.
(frv_relocate_main_executable): Return early when both interpreter
and executable loadmap addresses are zero.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* xtensa-config.c (rmap): Remove entries for ar32 through ar63. Add
threadptr, scompare1, mmid, epc5, epc6, epc7, eps5, eps6, eps7,
excsave5, excsave6, excsave7, cpenable, and vecbase registers.
(xtensa_submask0, xtensa_submask1, xtensa_submask2)
(xtensa_submask3, xtensa_submask4, xtensa_submask5, xtensa_submask6)
(xtensa_submask7, xtensa_submask8, xtensa_submask9, xtensa_submask10)
(xtensa_submask11, xtensa_submask12, xtensa_submask13, xtensa_submask14)
(xtensa_submask15): Adjust register numbers.
* xtensa-xtregs.c (XTENSA_ELF_XTREG_SIZE): Change to 4.
(xtensa_regmap_table): Add entry for scompare1.
* regformats/reg-xtensa.dat: Remove ar32 through ar63. Add threadptr
and scompare1.
gdb/gdbserver/
* xtensa-xtregs.c (XTENSA_ELF_XTREG_SIZE): Change to 4.
(xtensa_regmap_table): Add entry for scompare1.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* xtensa-config.h (XCHAL_HAVE_MUL16, XCHAL_HAVE_MUL32, XCHAL_HAVE_DIV32)
(XCHAL_HAVE_MINMAX, XCHAL_HAVE_SEXT, XCHAL_HAVE_THREADPTR)
(XCHAL_HAVE_RELEASE_SYNC, XCHAL_HAVE_S32C1I): Change to 1.
(XCHAL_NUM_AREGS): Change to 32.
(XCHAL_ICACHE_SIZE, XCHAL_DCACHE_SIZE): Change to 16K.
(XCHAL_ICACHE_LINESIZE, XCHAL_DCACHE_LINESIZE): Change to 32.
(XCHAL_ICACHE_LINEWIDTH, XCHAL_DCACHE_LINEWIDTH): Change to 5.
(XCHAL_DCACHE_IS_WRITEBACK): Change to 1.
(XCHAL_DEBUGLEVEL): Change to 6.
bfd/
* xtensa-modules.c (sysregs): Add MMID, VECBASE, EPC5, EPC6, EPC7,
EXCSAVE5, EXCSAVE6, EXCSAVE7, EPS5, EPS6, EPS7, CPENABLE,
SCOMPARE1, and THREADPTR registers.
(NUM_SYSREGS, MAX_USER_REG): Update.
(states): Change width of INTERRUPT, WindowBase, WindowStart, and
INTENABLE. Add VECBASE, EPC5, EPC6, EPC7, EXCSAVE5, EXCSAVE6,
EXCSAVE7, EPS6, EPS6, EPS7, THREADPTR, CPENABLE, and SCOMPARE1 states.
(NUM_STATES): Update.
(enum xtensa_state_id): Add entries for new states.
(enum xtensa_field_id): Add entries for xt_wbr15_imm and xt_wbr18_imm
fields, along with functions to extract and set them.
(regfiles): Change number of AR registers to 32.
(Operand_ar0_encode, Operand_ar4_encode, Operand_ar8_encode,
Operand_ar12_encode, Operand_ars_entry_encode): Update register mask.
(operands): Add entries for tp7, xt_wbr15_label, xt_wbr18_label,
xt_wbr15_imm, and xt_wbr18_imm operands, along with functions to
encode and decode them.
(enum xtensa_operand_id): Add entries for new operands.
(Iclass_xt_iclass_rfi_stateArgs): Add EPC5, EPC6, EPC7, EPS5, EPS6, and
EPC7 states.
(Iclass_xt_iclass_rfdo_stateArgs): Replace EPC4 and EPS4 by EPC6 and
EPS6, respectively.
(iclasses): Add entries for rur_threadptr, wur_threadptr,
xt_iclass_wsr_176, xt_iclass_rsr_epc5, xt_iclass_wsr_epc5,
xt_iclass_xsr_epc5, xt_iclass_rsr_excsave5, xt_iclass_wsr_excsave5,
xt_iclass_xsr_excsave5, xt_iclass_rsr_epc6, xt_iclass_wsr_epc6,
xt_iclass_xsr_epc6, xt_iclass_rsr_excsave6, xt_iclass_wsr_excsave6,
xt_iclass_xsr_excsave6, xt_iclass_rsr_epc7, xt_iclass_wsr_epc7,
xt_iclass_xsr_epc7, xt_iclass_rsr_excsave7, xt_iclass_wsr_excsave7,
xt_iclass_xsr_excsave7, xt_iclass_rsr_eps5, xt_iclass_wsr_eps5,
xt_iclass_xsr_eps5, xt_iclass_rsr_eps6, xt_iclass_wsr_eps6,
xt_iclass_xsr_eps6, xt_iclass_rsr_eps7, xt_iclass_wsr_eps7,
xt_iclass_xsr_eps7, xt_iclass_rsr_vecbase, xt_iclass_wsr_vecbase,
xt_iclass_xsr_vecbase, xt_iclass_mul16, xt_iclass_wsr_mmid,
xt_iclass_icache_lock, xt_iclass_dcache_lock, xt_iclass_rsr_cpenable,
xt_iclass_wsr_cpenable, xt_iclass_xsr_cpenable, xt_iclass_clamp,
xt_iclass_minmax, xt_iclass_sx, xt_iclass_l32ai, xt_iclass_s32ri,
xt_iclass_s32c1i, xt_iclass_rsr_scompare1, xt_iclass_wsr_scompare1,
xt_iclass_xsr_scompare1, xt_iclass_div, and xt_iclass_mul32, along
with corresponding argument and state argument arrays. Change
number of state arguments for xt_iclass_rfi. Add arguments for
xt_iclass_rfdo.
(enum xtensa_iclass_id): Add entries for new iclasses.
(opcodes): Add entries for RUR_THREADPTR, WUR_THREADPTR, WSR_176,
RSR_EPC5, WSR_EPC5, XSR_EPC5, RSR_EXCSAVE5, WSR_EXCSAVE5, XSR_EXCSAVE5,
RSR_EPC6, WSR_EPC6, XSR_EPC6, RSR_EXCSAVE6, WSR_EXCSAVE6, XSR_EXCSAVE6,
RSR_EPC7, WSR_EPC7, XSR_EPC7, RSR_EXCSAVE7, WSR_EXCSAVE7, XSR_EXCSAVE7,
RSR_EPS5, WSR_EPS5, XSR_EPS5, RSR_EPS6, WSR_EPS6, XSR_EPS6, RSR_EPS7,
WSR_EPS7, XSR_EPS7, RSR_VECBASE, WSR_VECBASE, XSR_VECBASE, MUL16U,
MUL16S, WSR_MMID, IPFL, IHU, IIU, DPFL, DHU, DIU, RSR_CPENABLE,
WSR_CPENABLE, XSR_CPENABLE, CLAMPS, MIN, MAX, MINU, MAXU, SEXT, L32AI,
S32RI, S32C1I, RSR_SCOMPARE1, WSR_SCOMPARE1, XSR_SCOMPARE1, QUOU, QUOS,
REMU, REMS, and MULL opcodes, along with the corresponding functions
to encode them.
(enum xtensa_opcode_id): Add entries for new opcodes.
(Slot_inst_decode): Handle new opcodes.
(Slot_inst_get_field_fns, Slot_inst_set_field_fns): Add entries for
xt_wbr15_imm and xt_wbr18_imm fields.
(Slot_inst16a_get_field_fns, Slot_inst16a_set_field_fns): Likewise.
(Slot_inst16b_get_field_fns, Slot_inst16b_set_field_fns): Likewise.
(xtensa_modules): Update number of fields, operands, iclasses and
opcodes.
|
| |
|
|
|
|
|
|
|
|
| |
(putpkt_binary, read_frame, getpkt_or_notif_sane_1): Use it. Make
sure debug output printing a packet buffer goes through a single
fprintf_unfiltered call.
* utils.c (vfprintf_unfiltered): If outputting timestamps, end
output with a newline if it wasn't going to already.
|
| |
|
|
|
|
|
|
|
| |
* elfxx-sparc.c (_bfd_sparc_elf_check_relocs): Treat WPLT30 relocs
against local symbols in 64-bit binaries as if they were WDISP30
relocs.
(_bfd_sparc_elf_relocate_section): Likewise.
|
| |
|
| |
|
|
|
|
| |
* maint.c (maintenance_translate_address): Fix a buglet.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* features/Makefile (rs6000/powerpc-isa205-32l-expedite,
rs6000/powerpc-isa205-altivec32l-expedite,
powerpc-isa205-vsx32l-expedite, rs6000/powerpc-isa205-64l-expedite,
rs6000/powerpc-isa205-altivec64l-expedite,
powerpc-isa205-vsx64l-expedite): New variables.
* regformats/rs6000/powerpc-isa205-32l.dat: Generate.
* regformats/rs6000/powerpc-isa205-altivec32l.dat: Generate.
* regformats/rs6000/powerpc-isa205-vsx32l.dat: Generate.
* regformats/rs6000/powerpc-isa205-64l.dat: Generate.
* regformats/rs6000/powerpc-isa205-altivec64l.dat: Generate.
* regformats/rs6000/powerpc-isa205-vsx64l.dat: Generate.
gdbserver/
* Makefile.in (powerpc-isa205-32l.o, powerpc-isa205-32l.c,
powerpc-isa205-altivec32l.o, powerpc-isa205-altivec32l.c,
powerpc-isa205-vsx32l.o, powerpc-isa205-vsx32l.c,
powerpc-isa205-64l.o, powerpc-isa205-64l.c,
powerpc-isa205-altivec64l.o, powerpc-isa205-altivec64l.c,
powerpc-isa205-vsx64l.o, powerpc-isa205-vsx64l.c): New targets.
* configure.srv (powerpc*-*-linux*): Add ISA 2.05 object files and
XML target descriptions.
* linux-ppc-low.c (ppc_arch_setup): Init registers with 64-bit FPSCR
when inferior is running on an ISA 2.05 or later processor. Add
special case to return offset for full 64-bit slot of FPSCR when
in 32-bits.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* ppc-linux-nat.c (ppc_register_u_addr): Add special case to return
offset for full 64-bit slot of FPSCR when in 32-bits.
(ppc_linux_read_description): Return target description with 64-bit
FPSCR when inferior is running on an ISA 2.05 or later processor.
* ppc-linux-tdep.c (_initialize_ppc_linux_tdep): Call
initialize_tdec_powerpc_isa205_32l,
initialize_tdec_powerpc_isa205_altivec32l,
initialize_tdec_powerpc_isa205_vsx32l,
initialize_tdec_powerpc_isa205_64l,
initialize_tdec_powerpc_isa205_altivec64l and
initialize_tdec_powerpc_isa205_vsx64l.
* ppc-linux-tdep.h: Add external declaration for
tdesc_powerpc_isa205_32l, tdesc_powerpc_isa205_altivec32l,
tdesc_powerpc_isa205_vsx32l, tdesc_powerpc_isa205_64l,
tdesc_powerpc_isa205_altivec64l and tdesc_powerpc_isa205_vsx64l.
* features/rs600/powerpc-fpu-isa205.xml: New file.
* features/rs600/powerpc-isa205-32l.xml: New file.
* features/rs600/powerpc-isa205-64l.xml: New file.
* features/rs600/powerpc-isa205-altivec32l.xml: New file.
* features/rs600/powerpc-isa205-altivec64l.xml: New file.
* features/rs600/powerpc-isa205-vsx32l.xml: New file.
* features/rs600/powerpc-isa205-vsx64l.xml: New file.
* features/rs600/powerpc-isa205-32l.c: Generate.
* features/rs600/powerpc-isa205-64l.c: Generate.
* features/rs600/powerpc-isa205-altivec32l.c: Generate.
* features/rs600/powerpc-isa205-altivec64l.c: Generate.
* features/rs600/powerpc-isa205-vsx32l.c: Generate.
* features/rs600/powerpc-isa205-vsx64l.c: Generate.
gdb/testsuite/
* gdb.arch/ppc-dfp.exp: New file.
* gdb.arch/ppc-dfp.c: New file.
|
|
|
|
|
|
| |
* objfiles.h: New MULTI_OBJFILE_P macro.
* printcmd.c (sym_info): Print object name.
* maint.c (maintenance_translate_address): Likewise.
|
|
|
|
|
|
|
|
| |
* configure: Regenerated.
* configure.ac: Add test for System V shared memory and semaphore.
* debug.c, debug.h: Add trace support for new devices.
* hw_sem.c, hw_shm.c: New files.
* Makefile.in: Add hw_sem.c and hw_shm.c.
|
|
|
|
| |
commands "catch load" and "catch unload".
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
(read_n_bytes): Remove unhelpful comment.
(read_indirect_string): Pass symbol table to read_section in case
the .debug_str section needs relocating.
PR 7037
* elf32-cr16.c (cr16_elf_howto_table): Zero the src_mask field of
the reloc descriptions.
|
|
|
|
|
|
|
| |
on error messages.
* gdb.mi/mi-syn-frame.exp: Update expected output.
* gdb.mi/mi2-syn-frame.exp: Update expected output.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* infrun.c (clear_proceed_status_thread): New function.
(clear_proceed_status_callback): New function.
(clear_proceed_status): In all-stop mode, clear per-thread
proceed status of *all* threads, not only the current.
(handle_inferior_event): In all-stop mode, if we're stepping
one thread, but got some inferior event in another thread
that does not cause GDB to break to the user interface,
ensure the interrupted stepping operation continues in the
original thread.
(currently_stepping): Move thread-related tests to ...
(currently_stepping_thread): ... this new function.
(currently_stepping_callback): New function.
|
|
|
|
|
|
|
| |
* mi/mi-common.h (struct mi_interp): New, moved from ...
* mi/mi-interp.c: ...here.
* mi/mi-main.c (mi_execute_command): If the thread changed
as result of command, report that.
|
|
|
|
|
|
|
|
|
| |
* mi/mi-main.c (proceed_thread_callback): New.
(mi_cmd_exec_continue): If --thread-group is specified, resume all
threads in that group.
(interrupt_thread_callback): New.
(mi_cmd_exec_interrupt): If --thread-group is specified, interrupt
all threads in that group.
|
|
|
|
|
|
|
|
| |
* infcmd.c (detach_command): Make nonstatic.
* inferior.h (detach_command): Declare.
* mi/mi-cmds.c (mi_cmds): Don't route -target-detach via CLI.
* mi/mi-cmds.h (mi_cmd_target_detach): Declare.
* mi/mi-main.c (find_thread_of_process, mi_cmd_target_detach): New.
|
|
|
|
|
| |
* mi/mi-interp.c (mi_new_thread, mi_thread_exit): Include
group id in the output.
|
|
|
|
|
|
| |
* inferior.c: Call the process observers.
* mi/mi-interp.c (mi_new_inferior, mi_inferior_exit): New.
(mi_interpreter_init): Register the above.
|
|
|
|
|
|
|
|
|
|
| |
* thread.c (print_thread_info): New parameter pid, to print
threads of specific process.
* gdbthread.h (print_thread_info): New parameter pid.
* mi/mi-cmds.c (mi_cmds): Register -list-thread-groups.
* mi/mi-cmds.h (mi_cmd_list_thread_groups): New.
* mi/mi-main.c (mi_cmd_thread_info): Adjust.
(print_one_process, mi_cmd_list_thread_groups): New.
|
| |
|