Age | Commit message (Collapse) | Author | Files | Lines |
|
* lin-lwp.c: Delete file.
* linux-nat.c: Include "gdb_assert.h", "gdb_string.h", <unistd.h>,
<sys/syscall.h>, "gdbthread.h", "gdbcmd.h", "regcache.h".
(status_to_str, init_lwp_list, add_lwp, delete_lwp)
(find_lwp_pid, iterate_over_lwps, lin_lwp_attach_lwp)
(linux_nat_attach, detach_callback, linux_nat_detach)
(resume_callback, resume_clear_callback, linux_nat_resume)
(kill_lwp, linux_nat_handle_extended, wait_lwp, stop_callback)
(stop_wait_callback, linux_nat_has_pending, flush_callback)
(status_callback, running_callback, count_events_callback)
(select_singlestep_lwp_callback, select_event_lwp_callback)
(cancel_breakpoints_callback, select_event_lwp, resumed_callback)
(child_wait, stop_and_resume_callback, linux_nat_wait)
(kill_callback, kill_wait_callback, linux_nat_kill)
(linux_nat_create_inferior, linux_nat_mourn_inferior)
(linux_nat_xfer_memory, linux_nat_thread_alive)
(linux_nat_pid_to_str, init_linux_nat_ops, sigchld_handler)
(_initialize_linux_nat): New functions.
* Makefile.in: Update all dependencies.
* config/sparc/linux64.mh (NATDEPFILES): Remove lin-lwp.o.
* config/sparc/linux.mh (NATDEPFILES): Remove lin-lwp.o.
* config/s390/s390.mh (NATDEPFILES): Remove lin-lwp.o.
* config/powerpc/ppc64-linux.mh (NATDEPFILES): Remove lin-lwp.o.
* config/powerpc/linux.mh (NATDEPFILES): Remove lin-lwp.o.
* config/pa/linux.mh (NATDEPFILES): Remove lin-lwp.o.
* config/mips/linux.mh (NATDEPFILES): Remove lin-lwp.o.
* config/m68k/linux.mh (NATDEPFILES): Remove lin-lwp.o.
* config/ia64/linux.mh (NATDEPFILES): Remove lin-lwp.o.
* config/i386/linux64.mh (NATDEPFILES): Remove lin-lwp.o.
* config/i386/linux.mh (NATDEPFILES): Remove lin-lwp.o.
* config/arm/linux.mh (NATDEPFILES): Remove lin-lwp.o.
* config/alpha/alpha-linux.mh (NATDEPFILES): Remove lin-lwp.o.
|
|
PTRACE_EVENT_CLONE event.
|
|
* cli/cli-decode.c (deprecated_add_show_from_set): Deprecate.
* xcoffsolib.c (_initialize_xcoffsolib): Update.
* wince.c (_initialize_wince): Update.
* win32-nat.c (_initialize_win32_nat): Update.
* varobj.c (_initialize_varobj): Update.
* valops.c (_initialize_valops): Update.
* utils.c (initialize_utils, initialize_utils): Update.
* tui/tui-win.c (_initialize_tui_win): Update.
* top.c (init_main): Update.
* symfile.c (_initialize_symfile): Update.
* source.c (_initialize_source): Update.
* somsolib.c (_initialize_som_solib): Update.
* solib.c (_initialize_solib): Update.
* solib-frv.c (_initialize_frv_solib): Update.
* serial.c (_initialize_serial): Update.
* ser-go32.c (_initialize_ser_dos, _initialize_ser_dos): Update.
* remote.c (_initialize_remote, _initialize_remote): Update.
* remote-vx.c (_initialize_vx): Update.
* remote-utils.c (_initialize_sr_support): Update.
* remote-sds.c (_initialize_remote_sds): Update.
* remote-mips.c (_initialize_remote_mips): Update.
* remote-e7000.c (_initialize_remote_e7000): Update.
* proc-api.c (_initialize_proc_api): Update.
* printcmd.c: Update.
* parse.c (_initialize_parse): Update.
* pa64solib.c (_initialize_pa64_solib): Update.
* p-valprint.c (_initialize_pascal_valprint): Update.
* monitor.c (_initialize_remote_monitors): Update.
* mips-tdep.c (_initialize_mips_tdep): Update.
* mcore-tdep.c (_initialize_mcore_tdep): Update.
* maint.c (_initialize_maint_cmds): Update.
* lin-lwp.c (_initialize_lin_lwp): Update.
* language.c (_initialize_language): Update.
* kod.c (_initialize_kod): Update.
* infrun.c (set_schedlock_func, _initialize_infrun): Update.
* i386-tdep.c (_initialize_i386_tdep): Update.
* gdbtypes.c (build_gdbtypes, _initialize_gdbtypes): Update.
* gdbarch.sh: Update.
* gdbarch.c: Re-generate.
* gdb-events.sh: Update.
* gdb-events.c: Re-generate.
* frame.c (_initialize_frame): Update.
* exec.c: Update.
* demangle.c (_initialize_demangler): Update.
* dcache.c (_initialize_dcache): Update.
* cris-tdep.c (_initialize_cris_tdep, cris_version_update): Update.
* cp-valprint.c (_initialize_cp_valprint): Update.
* corefile.c (_initialize_core): Update.
* command.h: Update.
* cli/cli-decode.h: Update.
* cli/cli-cmds.c (init_cli_cmds): Update.
* charset.c (_initialize_charset): Update.
* breakpoint.c (_initialize_breakpoint): Update.
* arm-tdep.c (_initialize_arm_tdep_initialize_arm_tdep): Update.
* alpha-tdep.c (_initialize_alpha_tdep): Update.
* aix-thread.c (_initialize_aix_thread): Update.
|
|
* target.h (struct target_ops): Add from_tty to
to_create_inferior.
(target_create_inferior, find_default_create_inferior): Update.
* infcmd.c (run_command): Update.
* wince.c (child_create_inferior): Update.
* win32-nat.c (child_create_inferior): Update.
* uw-thread.c (uw_thread_create_inferior): Update.
* thread-db.c (thread_db_create_inferior): Update.
* target.c (debug_to_create_inferior)
(find_default_create_inferior): Update.
(maybe_kill_then_create_inferior): Update.
* sol-thread.c (sol_thread_create_inferior): Update.
* remote.c (extended_remote_async_create_inferior)
(extended_remote_create_inferior): Update.
* remote-vx.c (vx_create_inferior): Update.
* remote-st.c (st2000_create_inferior): Update.
* remote-sim.c (gdbsim_create_inferior): Update.
* remote-sds.c (sds_create_inferior): Update.
* remote-rdp.c (remote_rdp_create_inferior): Update.
* remote-rdi.c (arm_rdi_create_inferior): Update.
* remote-m32r-sdi.c (m32r_create_inferior): Update.
* remote-e7000.c (e7000_create_inferior): Update.
* procfs.c (procfs_create_inferior): Update.
* ocd.c (ocd_create_inferior): Update.
* ocd.h (ocd_create_inferior): Update.
* nto-procfs.c (procfs_create_inferior): Update.
* monitor.c (monitor_create_inferior): Update.
* lin-lwp.c (lin_lwp_create_inferior): Update.
* inftarg.c (child_create_inferior): Update.
* hpux-thread.c (hpux_thread_create_inferior): Update.
* gnu-nat.c (gnu_create_inferior): Update.
|
|
* configure.in: Check for <gnu/libc-version.h>.
* configure: Regenerate.
* config.in: Regenerate.
* linux-nat.h: Include "target.h". Add waitstatus field to
struct lwp_info.
* lin-lwp.c (add_lwp): Initialize waitstatus.kind.
(lin_lwp_attach_lwp): Don't attach to LWPs we have already attached
to.
(lin_lwp_handle_extended): New function. Handle clone events.
(wait_lwp): Use lin_lwp_handle_extended. Update comment about
thread exit events.
(child_wait): Handle clone events.
(lin_lwp_wait: Use lin_lwp_handle_extended and handle clone events.
* linux-nat.c (linux_enable_event_reporting): Turn on
PTRACE_O_TRACECLONE.
(linux_handle_extended_wait): Handle clone events.
* thread-db.c: Include <gnu/libc-version.h>.
(struct private_thread_info): Add dying flag.
(enable_thread_event_reporting): Enable TD_DEATH for glibc 2.2 and
higher.
(attach_thread): Update comments. Handle dying threads.
(detach_thread): Set the dying flag.
(check_event): Always call attach_thread.
|
|
linux_handle_extended_wait.
|
|
* lin-lwp.c (stop_and_resume_callback): Set the resumed flag
for any lwp we resume.
(running_callback): Add lwps that have pending status events
against them to be considered running.
|
|
(stop_wait_callback): Handle !lp->signalled also.
(lin_lwp_has_pending, flush_callback): New functions.
(lin_lwp_wait): Call flush_callback.
* linux-proc.c (linux_proc_add_line_to_sigset): New function.
(linux_proc_pending_signals): New function.
* linux-nat.h (linux_proc_pending_signals): Add prototype.
|
|
stop_wait_callback. Clean up.
(stop_wait_callback): Use wait_lwp.
|
|
|
|
* config/i386/nm-linux.h (LINUX_CHILD_POST_STARTUP_INFERIOR): Define.
* config/nm-linux.h (CHILD_POST_STARTUP_INFERIOR, CHILD_POST_ATTACH)
(CHILD_FOLLOW_FORK, KILL_INFERIOR): Define.
* i386-linux-nat.c: Include "linux-nat.h".
(child_post_startup_inferior): New function.
* i386-nat.c (child_post_startup_inferior): Wrap in #ifdef.
* infptrace.c (kill_inferior): Wrap in #ifdef.
* lin-lwp.c (lin_lwp_attach_lwp): Call child_post_attach after
attaching to each LWP.
(child_wait, lin_lwp_wait): Call linux_handle_extended_wait.
(init_lin_lwp_ops): Fill in some more operations.
* linux-nat.h (linux_enable_event_reporting)
(linux_handle_extended_wait, linux_child_post_startup_inferior): New
prototypes.
* linux-nat.c (linux_enable_event_reporting): New function.
(child_post_attach, linux_child_post_startup_inferior)
(child_post_startup_inferior, child_follow_fork)
(linux_handle_extended_wait, kill_inferior): New functions.
|
|
* linux-nat.h: New file.
* linux-nat.c: Include linux-nat.h.
* lin-lwp.c: Include linux-nat.h.
Move struct lwp_info def to linux-nat.h.
* linux-proc.c: Include linux-nat.h.
(linux_make_note_section): Iterate over lwps instead of threads.
(linux_do_thread_registers): Use lwp instead of merged pid.
* config/nm-linux.h: Move miscelaneous def'ns to linux-nat.h.
* Makefile.in (lin-lwp.o, linux-proc.o, linux-nat.o):
Add dependency on linux_nat_h.
|
|
(generic_prepare_to_proceed): Remove.
* arch-utils.h (default_prepare_to_proceed): Remove prototype.
(generic_prepare_to_proceed): Remove prototype.
* gdbarch.sh (PREPARE_TO_PROCEED): Remove.
* gdbarch.c: Regenerate.
* gdbarch.h: Regenerate.
* hppa-tdep.c (hppa_prepare_to_proceed): Remove dangling prototype.
* hppah-nat.c (hppa_switched_threads): Remove.
* infrun.c (prepare_to_proceed): New static function, copied from
generic_prepare_to_proceed. Remove select_it argument.
(proceed): Call prepare_to_proceed.
* infttrace.c (old_gdb_pid, reported_pid, reported_bpt): Remove
variables.
(ptrace_wait): Don't set the removed variables.
(hppa_switched_threads): Remove.
* lin-lwp.c (lin_lwp_prepare_to_proceed): Remove.
* config/nm-linux.h (PREPARE_TO_PROCEED): Don't define.
(lin_lwp_prepare_to_proceed): Remove prototype.
* config/i386/nm-x86-64linux.h (PREPARE_TO_PROCEED): Don't undefine.
* config/pa/nm-hppah.h (PREPARE_TO_PROCEED): Don't define.
|
|
* lin-lwp.c (child_wait): Call linux_record_stopped_pid.
(lin_lwp_wait): Likewise. Update comments.
* linux-nat.c (struct simple_pid_list, add_to_pid_list)
(pull_pid_from_list, linux_record_stopped_pid): New.
|
|
* acconfig.h: Add HAVE_TKILL_SYSCALL definition check.
* config.in: Regenerated.
* configure.in: Add test for syscall function and check for
__NR_tkill macro in <syscall.h> to set HAVE_TKILL_SYSCALL.
* configure: Regenerated.
* lin-lwp.c [HAVE_TKILL_SYSCALL]: Include <unistd.h> and
<sys/syscall.h>.
(kill_lwp): New function that uses tkill syscall or
uses kill, depending on whether threading model is nptl or not.
All callers of kill() changed to use kill_lwp().
(lin_lwp_wait): Make special check when WIFEXITED occurs to
see if all threads have already exited in the nptl model.
(stop_and_resume_callback): New callback function used by the
lin_lwp_wait thread exit handling code.
(stop_wait_callback): Check for threads already having exited and
delete such threads fromt the lwp list when discovered.
(stop_callback): Don't assert retcode of kill call.
Roland McGrath <roland@redhat.com>
* i386-linux-nat.c (ps_get_thread_area): New function needed by
nptl libthread_db.
|
|
* thread.c: Reindented.
* lin-lwp.c: Ditto.
* linux-proc.c: Ditto.
|
|
(resume_callback): Remove dead code.
|
|
than inferior_ptid.
(lin_lwp_wait): Ignore exit statuses for unknown LWPs.
|
|
* lin-lwp.c: Added or elaborated on "debug lin-lwp" info.
qCVS: Committing in .
|
|
|
|
* sparc-nat.c (fetch_inferior_registers)
(store_inferior_registers): Add comment on problem of LWP vs
threads.
From 2002-11-21 Daniel Jacobowitz <drow@mvista.com>
* lin-lwp.c (lin_lwp_fetch_registers): Remove.
(lin_lwp_store_registers): Remove.
(init_lin_lwp_ops): Use fetch_inferior_registers
and store_inferior_registers directly.
* sparc-nat.c (fetch_inferior_registers): Honor LWP ID.
(store_inferior_registers): Likewise.
Fix PR gdb/725.
|
|
* configure.in: Check for pread64.
* config.in: Regenerated.
* configure: Regenerated.
* lin-lwp.c (lin_lwp_xfer_memory): Call linux_proc_xfer_memory.
* linux-proc.c (linux_proc_xfer_memory): New function.
* config/nm-linux.h (linux_proc_xfer_memory): Add prototype.
|
|
|
|
ax-gdb.o, signals.o, jv-valprint.o, c-valprint.o, cp-abi.o):
Update dependencies.
* i387-tdep.c: Include gdb_string.h.
* osabi.c: Likewise.
* i386-linux-nat.c: Likewise.
* lin-lwp.c: Likewise.
* ax-gdb.c: Likewise.
* signals/signals.c: Likewise.
* jv-valprint.c: Likewise.
* p-lang.c: Likewise.
* c-valprint.c: Likewise.
* cp-abi.c: Likewise.
|
|
while statement.
|
|
|
|
with either ``GNU/Linux'' or ``Linux kernel''.
Fix PR gdb/378.
|
|
|
|
* lin-lwp.c (struct lwp_info): Add new member `cloned'.
(is_cloned) Removed.
(lin_lwp_attach_lwp): Don't call stop_wait_callback. Instead call
waitpid explicitly. Mark the LWP as cloned if waitpid fails and
retry with __WCLONE flag.
(lin_lwp_attach): Likewise. Warn if attaching to a cloned process.
(detach_callback): Replace use of is_cloned with explicit check on
LWP id and process id.
(stop_wait_callback): Replace use of is_cloned with check if LWP
is marked as cloned.
[CHILD_WAIT] (child_wait): New function.
(lin_lwp_wait): Replace use of is_cloned with check if LWP is
marked as cloned. Mark newly detected LWPs as cloned if detected
by waitpid with __WCLONE flag.
(kill_wait_callback): Replace use of is_cloned with check if LWP
is marked as cloned.
* config/i386/nm-linux.h (struct target_waitstatus): Add forward
declaration.
(child_wait): Add prototype.
(CHILD_WAIT): Define.
|
|
are no registered LWPs yet.
|
|
signals. Use that in favour of the old code to get rid of
superfluous SIGINTs.
(lin_lwp_wait): Use the new support in stop_wait_callback to
flush all but one SIGINT.
|
|
(lin_lwp_wait): Use it to print debug messages where appropriate.
|
|
commented with "paranoia" into gdb_assert.
(select_event_lwp_callback): Likewise.
(cancel_breakpoints_callback): Bail out early if LP is the event
LWP. Add comment about backup up breakpoints. Fix formatting and
debug message.
(select_event_lwp): Make solely repsonsible for switching event
LWP. Fix formatting and remove bogus "ERROR" debug message.
Don't backup breakpoints from here.
(lin_lwp_wait): Don't touch LP->status, let select_event_lwp
handle that. Only call select_event_lwp if we're not waiting for
a specific LWP, i.e. when PID == -1. Backup breakpoints from here.
|
|
* lin-lwp.c: Prevent thread starvation by using a monte carlo
method to choose which of several event threads to handle next.
(stop_wait_callback): Defer pushback of breakpoint events until
later; add SIGTRAP events to the queue of unhandled events.
Keep calling waitpid until SIGSTOP retrieved. If more than one
non-SIGSTOP event is retrieved, push them back onto the process
queue using kill.
(count_events_callback, select_singlestep_lwp_callback,
select_event_lwp_callback, cancel_breakpoints_callback,
select_event_lwp): New functions. Implement monte carlo method
for selecting which of several SIGTRAP threads to handle next.
Push back the breakpoint event for all threads other than the
selected one.
(lin_lwp_wait): Call select_event_lwp to decide which of several
sigtrapped lwps to handle next.
(resume_callback): Disable code that attempts to handle
step_resume breakpoints. Let core gdb handle this.
|
|
(iterate_over_lwps): Make sure we can handle CALLBACK deleting the
LWP it's called for.
(lin_lwp_attach): Mark LWP as resumed to make sure the fake
SIGSTOP is reported.
(resume_clear_callback): New function.
(resume_set_callback): New function.
(lin_lwp_resume): Mark all LWP's that we're going to resume as
resumed, and unmark all others.
(status_callback): Only report a pending wait status if we pretend
that LP has been resumed.
(resumed_callback): New function.
(lin_lwp_wait): Add assertions to check that LWP's are properly
marked as resumed. Partially revert 2001-05-25 patch by Michael
Snyder: do not resume all threads. Add comment explaining the
problems associated with this bit of code.
|
|
stopped due to a Ctrl-C as well as breakpoints.
* hppa-tdep.c (hppa_prepare_to_proceed): Add FIXME as this may not
support thread switches after Ctrl-C.
* lin-lwp.c (lin_lwp_prepare_to_proceed): Ditto.
* linux-thread.c (linuxthreads_prepare_to_proceed): Ditto.
* m3-nat.c (mach3_prepare_to_proceed): Ditto.
|
|
* lin-lwp.c (lin_lwp_attach_lwp): Call stop_wait_callback,
to consume the SIGSTOP generated by PTRACE_ATTACH.
(stop_wait_callback): If a SIGTRAP or a SIGINT event is consumed,
try again to get the SIGSTOP event.
(lin_lwp_wait): Resume all threads when ignoring a signal.
This will insure that newly attached threads get resumed.
|
|
* lin-lwp.c (stop_wait_callback): Discard redundant SIGINT events.
|
|
than an int.
|
|
|
|
2001-05-03 patch.
|
|
|
|
one source file.
|
|
* thread-db.c (keep_thread_db): Adjust comment.
(deactivate_target): Removed.
(thread_db_new_objfile): Don't call deactivate_target. Implement
guts of deactivate_target inline instead.
(attach_thread): Call ATTACH_LWP unconditionally if defined.
(thread_db_attach): New function.
(thread_db_detach): Don't call deactivate_target. Do necessary
cleanup inline instead. Set inferior_ptid to LWP corresponding to
the current user-level thread.
(thread_db_kill): Set inferior_ptid to LWP corresponding to the
current user-level thread.
(thread_db_create_inferior): Deactivate target vector if
KEEP_THREAD_DB is zero.
(thread_db_mourn_inferior): Don't call deactivate_target. Do
necessary cleanup inline instead.
(init_thread_db_ops): Initialize to_attach field to
thread_db_attach.
* lin-lwp.c (lin_lwp_mourn_inferior): Remove prototype.
(stop_wait_callback): Add prototype.
(init_lwp_list): Add comment about when to re-initialize the LWP
list.
(lin_lwp_attach_lwp): Only call ptrace for cloned processes.
Avoid adding publicates to the LWP list. Only mark an LWP as
signalled if it doesn't correspond to a cloned process.
(lin_lwp_attach): Add initial process to the LWP list. Make sure
it's stopped and fake a SIGSTOP.
(detach_callback): New function.
(lin_lwp_detach): Implement.
(lin_lwp_create_inferior): Don't re-initialize LWP list here.
Call child_ops.to_create_inferior directly instead of via
target_beneath local.
(lin_lwp_mourn_inferior): Call child_ops.to_mourn_inferior
directly instead of via target_beneath local.
|
|
|
|
* lin-lwp.c: Change printf to fprintf_unfiltered.
|
|
* thread-db.c: Revert 2001-04-26 change for debugging output.
* lin-lwp.c: Ditto.
* lin-lwp.c: Add set/show debug lin-lwp command. Use this
command to turn extra debugging output on / off.
|
|
* thread-db.c: Revert 2001-04-26 change for debugging output.
* lin-lwp.c: Ditto.
|
|
* thread-db.c (_initialize_thread_db): Add set/show command
"debug-linux-threads" for debugging output.
* lin-lwp.c (various): Use global "debug_linux_threads to
turn on extra debugging output.
|
|
* lin-lwp.c: Minor cleanups in comments.
|