This is the mail archive of the gdb-cvs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

gdb and binutils branch master updated. ede9f622af1f2634c1227a3ed5f5ea44929573d2


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gdb and binutils".

The branch, master has been updated
       via  ede9f622af1f2634c1227a3ed5f5ea44929573d2 (commit)
       via  582511be69deb0e9d52efd6d51f860b6bee02a64 (commit)
       via  9c02b52532ac7864e7e19c7df1fb2e63625f3131 (commit)
       via  8af756ef818acb875865a21131a30e52cbcf15ce (commit)
       via  8a99810d42b1b4539112c7a50183f3dd807773c2 (commit)
       via  f7ce857f51e33c66100bcf91b346ee1baf734e53 (commit)
       via  a7b796db4fab28c2fa52bee86b97cf2b29d9c675 (commit)
       via  9665ffdd591e9b374b4e5f6aeffe15541346140d (commit)
      from  400cf8cbe9bc48068f1601ea9cd33fbd2f5de36a (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=ede9f622af1f2634c1227a3ed5f5ea44929573d2

commit ede9f622af1f2634c1227a3ed5f5ea44929573d2
Author: Pedro Alves <palves@redhat.com>
Date:   Mon Dec 29 19:41:07 2014 +0000

    add non-stop test that stresses thread starvation issues
    
    This commit adds a non-stop mode test originally inspired by
    signal-while-stepping-over-bp-other-thread.exp, that exposes the
    thread starvation issues fixed by the previous patches.  It sets a set
    of threads stepping in parallel, and has one of them get a signal.
    Without the previous fixes, this would fail with timeouts.
    
    gdb/testsuite/
    2015-01-09  Pedro Alves  <palves@redhat.com>
    
    	* gdb.threads/non-stop-fair-events.c: New file.
    	* gdb.threads/non-stop-fair-events.exp: New file.

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=582511be69deb0e9d52efd6d51f860b6bee02a64

commit 582511be69deb0e9d52efd6d51f860b6bee02a64
Author: Pedro Alves <palves@redhat.com>
Date:   Mon Dec 29 19:41:07 2014 +0000

    [gdbserver] linux-low.c: better starvation avoidance, handle non-stop mode too
    
    This patch applies the same starvation avoidance improvements of the
    previous patch to the Linux gdbserver side.
    
    Without this, the test added by the following commit
    (gdb.threads/non-stop-fair-events.exp) always fails with time outs.
    
    gdb/gdbserver/
    2015-01-09  Pedro Alves  <palves@redhat.com>
    
    	* linux-low.c (step_over_bkpt): Move higher up in the file.
    	(handle_extended_wait): Don't store the stop_pc here.
    	(get_stop_pc): Adjust comments and rename to ...
    	(check_stopped_by_breakpoint): ... this.  Record whether the LWP
    	stopped for a software breakpoint or hardware breakpoint.
    	(thread_still_has_status_pending_p): New function.
    	(status_pending_p_callback): Use
    	thread_still_has_status_pending_p.  If the event is no longer
    	interesting, resume the LWP.
    	(handle_tracepoints): Add assert.
    	(maybe_move_out_of_jump_pad): Remove cancel_breakpoints call.
    	(wstatus_maybe_breakpoint): New function.
    	(cancel_breakpoint): Delete function.
    	(check_stopped_by_watchpoint): New function, factored out from
    	linux_low_filter_event.
    	(lp_status_maybe_breakpoint): Delete function.
    	(linux_low_filter_event): Remove filter_ptid argument.
    	Leave thread group exits pending here.	Store the LWP's stop PC.
    	Always leave events pending.
    	(linux_wait_for_event_filtered): Pull all events out of the
    	kernel, and leave them all pending.
    	(count_events_callback, select_event_lwp_callback): Consider all
    	events.
    	(cancel_breakpoints_callback, linux_cancel_breakpoints): Delete.
    	(select_event_lwp): Only give preference to the stepping LWP in
    	all-stop mode.	Adjust comments.
    	(ignore_event): New function.
    	(linux_wait_1): Delete 'retry' label.  Use ignore_event.  Remove
    	references to cancel_breakpoints.  Adjust to renames.  Also give
    	equal priority to all LWPs that have had events in non-stop mode.
    	If reporting a software breakpoint event, unadjust the LWP's PC.
    	(linux_wait): If linux_wait_1 returned an ignored event, retry.
    	(stuck_in_jump_pad_callback, move_out_of_jump_pad_callback):
    	Adjust.
    	(linux_resume_one_lwp): Store the LWP's PC.  Adjust.
    	(resume_status_pending_p): Use thread_still_has_status_pending_p.
    	(linux_stopped_by_watchpoint): Adjust.
    	(linux_target_ops): Remove reference to linux_cancel_breakpoints.
    	* linux-low.h (enum lwp_stop_reason): New.
    	(struct lwp_info) <stop_pc>: Adjust comment.
    	<stopped_by_watchpoint>: Delete field.
    	<stop_reason>: New field.
    	* linux-x86-low.c (x86_linux_prepare_to_resume): Adjust.
    	* mem-break.c (software_breakpoint_inserted_here)
    	(hardware_breakpoint_inserted_here): New function.
    	* mem-break.h (software_breakpoint_inserted_here)
    	(hardware_breakpoint_inserted_here): Declare.
    	* target.h (struct target_ops) <cancel_breakpoints>: Remove field.
    	(cancel_breakpoints): Delete.
    	* tracepoint.c (clear_installed_tracepoints, stop_tracing)
    	(upload_fast_traceframes): Remove references to
    	cancel_breakpoints.

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=9c02b52532ac7864e7e19c7df1fb2e63625f3131

commit 9c02b52532ac7864e7e19c7df1fb2e63625f3131
Author: Pedro Alves <palves@redhat.com>
Date:   Wed Jan 7 12:48:32 2015 +0000

    linux-nat.c: better starvation avoidance, handle non-stop mode too
    
    Running the testsuite with a series that reimplements user-visible
    all-stop behavior on top of a target running in non-stop mode revealed
    problems related to event starvation avoidance.
    
    For example, I see
    gdb.threads/signal-while-stepping-over-bp-other-thread.exp failing.
    What happens is that GDB core never gets to see the signal event.  It
    ends up processing the events for the same threads over an over,
    because Linux's waitpid(-1, ...) returns that first task in the task
    list that has an event, starving threads on the tail of the task list.
    
    So I wrote a non-stop mode test originally inspired by
    signal-while-stepping-over-bp-other-thread.exp, to stress this
    independently of all-stop on top of non-stop.  Fixing it required the
    changes described below.  The test will be added in a following
    commit.
    
    1) linux-nat.c has code in place that picks an event LWP at random out
    of all that have had events.  This is because on the kernel side,
    "waitpid(-1, ...)"  just walks the task list linearly looking for the
    first that had an event.  But, this code is currently only used in
    all-stop mode.  So with a multi-threaded program that has multiple
    events triggering debug events in parallel, GDB ends up starving some
    threads.
    
    To make the event randomization work in non-stop mode too, the patch
    makes us pull out all the already pending events on the kernel side,
    with waitpid, before deciding which LWP to report to the core.
    
    There's some code in linux_wait that takes care of leaving events
    pending if they were for LWPs the caller is not interested in.  The
    patch moves that to linux_nat_filter_event, so that we only have one
    place that leaves events pending.  With that in place, conceptually,
    the flow is simpler and more normalized:
    
     #1 - walk the LWP list looking for an LWP with a pending event to report.
     #2 - if no pending event, pull events out of the kernel, and store
          them in the LWP structures as pending.
     #3- goto #1.
    
    2) Then, currently the event randomization code only considers SIGTRAP
    (or trap-like) events.  That means that if e.g., have have multiple
    threads stepping in parallel that hit a breakpoint that needs stepping
    over, and one gets a signal, the signal may end up never getting
    processed, because GDB will always be giving priority to the SIGTRAPs.
    The patch fixes this by making the randomization code consider all
    kinds of pending events.
    
    3) If multiple threads hit a breakpoint, we report one of those, and
    "cancel" the others.  Cancelling means decrementing the PC, and
    discarding the event.  If the next time the LWP is resumed the
    breakpoint is still installed, the LWP should hit it again, and we'll
    report the hit then.  The problem I found is that this delays threads
    from advancing too much, with the kernel potentially ending up
    scheduling the same threads over and over, and others not advancing.
    So the patch switches away from cancelling the breakpoints, and
    instead remembering that the LWP had stopped for a breakpoint.  If on
    resume the breakpoint is still installed, we report it.  If it's no
    longer installed, we discard the pending event then.  This is actually
    how GDBserver used to handle this before d50171e4 (Teach linux
    gdbserver to step-over-breakpoints), but with the difference that back
    then we'd delay adjusting the PC until resuming, which made it so that
    "info threads" could wrongly see threads with unadjusted PCs.
    
    gdb/
    2015-01-09  Pedro Alves  <palves@redhat.com>
    
    	* breakpoint.c (hardware_breakpoint_inserted_here_p): New
    	function.
    	* breakpoint.h (hardware_breakpoint_inserted_here_p): New
    	declaration.
    	* linux-nat.c (linux_nat_status_is_event): Move higher up in file.
    	(linux_resume_one_lwp): Store the thread's PC.  Adjust to clear
    	stop_reason.
    	(check_stopped_by_watchpoint): New function.
    	(save_sigtrap): Reimplement.
    	(linux_nat_stopped_by_watchpoint): Adjust.
    	(linux_nat_lp_status_is_event): Delete.
    	(stop_wait_callback): Only call save_sigtrap after storing the
    	pending status.
    	(status_callback): If the thread had been stopped for a breakpoint
    	that has since been removed, discard the event and resume the LWP.
    	(count_events_callback, select_event_lwp_callback): Use
    	lwp_status_pending_p instead of linux_nat_lp_status_is_event.
    	(cancel_breakpoint): Rename to ...
    	(check_stopped_by_breakpoint): ... this.  Record whether the LWP
    	stopped for a software breakpoint or hardware breakpoint.
    	(select_event_lwp): Only give preference to the stepping LWP in
    	all-stop mode.  Adjust comments.
    	(stop_and_resume_callback): Remove references to new_pending_p.
    	(linux_nat_filter_event): Likewise.  Leave exit events of the
    	leader thread pending here.  Handle signal short circuiting here.
    	Only call save_sigtrap after storing the pending waitstatus.
    	(linux_nat_wait_1): Remove 'retry' label.  Remove references to
    	new_pending.  Don't handle leaving events the caller is not
    	interested in pending here, nor handle signal short-circuiting
    	here.  Also give equal priority to all LWPs that have had events
    	in non-stop mode.  If reporting a software breakpoint event,
    	unadjust the LWP's PC.
    	* linux-nat.h (enum lwp_stop_reason): New.
    	(struct lwp_info) <stop_pc>: New field.
    	(struct lwp_info) <stopped_by_watchpoint>: Delete field.
    	(struct lwp_info) <stop_reason>: New field.
    	* x86-linux-nat.c (x86_linux_prepare_to_resume): Adjust.

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=8af756ef818acb875865a21131a30e52cbcf15ce

commit 8af756ef818acb875865a21131a30e52cbcf15ce
Author: Pedro Alves <palves@redhat.com>
Date:   Mon Dec 29 19:41:06 2014 +0000

    linux-nat.c: always mark execing LWP as resumed
    
    A subsequent patch will make the Linux backend's target_wait method
    pull all events out of the kernel (with waitpid) and store them as
    pending status in the LWP structure if no pending status was already
    available.  Then, the backend goes over the pending statuses and pick
    one to report to the core.
    
    With that, the existing thread-execl.exp test exposes a bug, like:
    
     (gdb) set scheduler-locking on
     (gdb) PASS: gdb.threads/thread-execl.exp: schedlock on: set scheduler-locking on
     next
     FAIL: gdb.threads/thread-execl.exp: schedlock on: get to main in new image (timeout)
    
    Recall that when the non-leader thread execs, all threads in the
    process die, the execing thread changes its pid to the tgid, and then
    waitpid returns an exec event to the tgid.  If GDB didn't resume the
    leader LWP, then GDB sees an event for an LWP that was supposedly
    stopped, and thus not marked as resumed.  Because the code that picks
    a pending event to report to the core ignores not-resumed LWPs:
    
     /* Return non-zero if LP has a wait status pending.  */
    
     static int
     status_callback (struct lwp_info *lp, void *data)
     {
       /* Only report a pending wait status if we pretend that this has
          indeed been resumed.  */
       if (!lp->resumed)
         return 0;
    
    the event ends up pending forever, thus the timeout.
    
    gdb/
    2015-01-09  Pedro Alves  <palves@redhat.com>
    
    	* linux-nat.c (linux_handle_extended_wait) <PTRACE_EVENT_EXEC>:
    	Set the LWP's 'resumed' flag.

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=8a99810d42b1b4539112c7a50183f3dd807773c2

commit 8a99810d42b1b4539112c7a50183f3dd807773c2
Author: Pedro Alves <palves@redhat.com>
Date:   Wed Jan 7 19:41:06 2015 +0000

    linux-nat.c: clean up pending status checking and resuming LWPs
    
    Whenever we resume an LWP, we must clear a few flags and flush the
    LWP's register cache.  We actually currently flush the register cache
    of all LWPs, but that's unnecessary.  This patch makes us flush the
    register cache of only the LWP that is resumed.  Instead of open
    coding all that in many places, we use a helper function.
    
    Likewise, we have two fields in the LWP structure where a pending
    status may be recorded.  Add a helper predicate that checks both and
    use it throughout instead of open coding the checks.
    
    gdb/
    2015-01-09  Pedro Alves  <palves@redhat.com>
    
    	* linux-nat.c (linux_resume_one_lwp): New function.
    	(resume_lwp): Use lwp_status_pending_p and linux_resume_one_lwp.
    	(linux_nat_resume): Use lwp_status_pending_p and
    	linux_resume_one_lwp.
    	(linux_handle_syscall_trap): Use linux_resume_one_lwp.
    	(linux_handle_extended_wait): Use linux_resume_one_lwp.
    	(status_callback, running_callback): Use lwp_status_pending_p.
    	(lwp_status_pending_p): New function.
    	(stop_and_resume_callback): Use lwp_status_pending_p.
    	(linux_nat_filter_event): Use linux_resume_one_lwp.
    	(linux_nat_wait_1): Always use status_callback to look for an LWP
    	with a pending status.  Use linux_resume_one_lwp.
    	(resume_stopped_resumed_lwps): Use lwp_status_pending_p and
    	linux_resume_one_lwp.

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=f7ce857f51e33c66100bcf91b346ee1baf734e53

commit f7ce857f51e33c66100bcf91b346ee1baf734e53
Author: Pedro Alves <palves@redhat.com>
Date:   Mon Dec 29 19:41:05 2014 +0000

    cleanup and speed up (software_)breakpoint_inserted_here_p
    
    Factor out common code, and use the more efficient
    ALL_BP_LOCATIONS_AT_ADDR.
    
    gdb/
    2015-01-09  Pedro Alves  <palves@redhat.com>
    
    	* breakpoint.c (bp_location_inserted_here_p): New function,
    	factored out from ...
    	(breakpoint_inserted_here_p): ... here.  Use
    	ALL_BP_LOCATIONS_AT_ADDR.
    	(software_breakpoint_inserted_here_p): Use
    	bp_location_inserted_here_p and ALL_BP_LOCATIONS_AT_ADDR.

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=a7b796db4fab28c2fa52bee86b97cf2b29d9c675

commit a7b796db4fab28c2fa52bee86b97cf2b29d9c675
Author: Pedro Alves <palves@redhat.com>
Date:   Mon Dec 29 19:41:05 2014 +0000

    watch_thread_num.exp and targets with fairer event reporting
    
    This patch fixes the watch_thread_num.exp test to work when the target
    is better at making event handling be fair among threads.
    
    I wrote patches that make GDB native and GDBserver event handling
    fairer between threads.  That is, if threads A and B both
    simultaneously trigger some debug event, GDB will pick either A or B
    at random, rather than always handling the event of A first.  There's
    code for that in the Linux backends (gdb and gdbserver) already, but
    it can be improved, and only works in all-stop mode.
    
    With those fixes in place, I found that the watch_thread_num.exp would
    often time out.  The problem is that the test only works _because_
    event handling isn't as fair as intended.  With the fairness fixes,
    the test falls victim of PR10116 (gdb drops watchpoints on
    multi-threaded apps) quite often.
    
    To expand on the PR10116 reference, consider that stop events are
    serialized to GDB core, through target_wait.  Say a thread-specific
    watchpoint as set on thread A.  When the "right" thread and some other
    "wrong" thread both trigger a watchpoint simultaneously, the target
    may report the "wrong" thread's hit to GDB first (thread B).  When
    handling that event, GDB notices the watchpoint is for another thread,
    and so shouldn't cause a user-visible stop.  On resume, GDB saves the
    now current value of the watched expression.  Afterwards, the "right"
    thread (thread A) reports its watchpoint trigger.  But the watched
    value hasn't changed since GDB last saved it, and so GDB doesn't
    report the watchpoint hit to the user.
    
    The way the test is written, the watchpoint is associated with the
    first thread that happens to report an event.  It happens that GDB is
    processing events much more often for one of the threads, which
    usually will be that same first thread.
    
    Hacking the test with "set debug infrun 1", we see exactly that:
    
    $ grep  "infrun.*\[Thread.*," testsuite/gdb.log | sort | uniq -c | sort -nr
         70 infrun:   8798 [Thread 8798],
         37 infrun:   8798 [Thread 8802],
         36 infrun:   8798 [Thread 8804],
         36 infrun:   8798 [Thread 8803],
         35 infrun:   8798 [Thread 8805],
         34 infrun:   8798 [Thread 8806],
    
    The first column shows the number of times the target reported an
    event for that thread, from:
    
     infrun: target_wait (-1, status) =
     infrun:   8798 [Thread 8798],
     infrun:   status->kind = stopped, signal = GDB_SIGNAL_TRAP
    
    This masks out the PR10116 issue.
    
    However, if the target is better at giving equal priority to all
    threads, the PR10116 issue happens often, so it may take quite a while
    for the right thread to be the first to report its watchpoint event
    just after the memory being watched really changed, resulting in test
    time outs.
    
    Here's the number of events handled for each thread on a gdbserver run
    with the event fairness patches:
    
    $ grep  "infrun.*\[Thread.*," gdb.log | sort | uniq -c
       2961 infrun:   13591 [Thread 13591],
       2956 infrun:   13591 [Thread 13595],
       2941 infrun:   13591 [Thread 13596],
       2932 infrun:   13591 [Thread 13597],
       2905 infrun:   13591 [Thread 13598],
       2891 infrun:   13591 [Thread 13599],
    
    Note how the number of events is much higher.  The test routinely
    takes over 10 seconds to finish on my machine rather than under a
    second as with unpatched gdbserver, when it succeeds, but often it'll
    fail with timeouts too.
    
    So to make the test robust, this patch switches the tests to using
    "awatch" instead of "watch", as access watchpoints don't care about
    the watchpoint's "old value".  With this, the test always finishes
    quickly, and we can even bump the number of threads concurrently
    writting to the shared variable, to have better assurance we're really
    testing the case of the "wrong" thread triggering a watchpoint.
    
    Here's the number of events I see for each thread on a run on my
    machine, with a gdbserver patched with the event fairness series:
    
    $ grep  "infrun.*\[Thread.*," testsuite/gdb.log | sort | uniq -c
          5 infrun:   5298 [Thread 5302],
          4 infrun:   5298 [Thread 5303],
          4 infrun:   5298 [Thread 5304],
          4 infrun:   5298 [Thread 5305],
          4 infrun:   5298 [Thread 5306],
          4 infrun:   5298 [Thread 5307],
          4 infrun:   5298 [Thread 5308],
          4 infrun:   5298 [Thread 5309],
          4 infrun:   5298 [Thread 5310],
          4 infrun:   5298 [Thread 5311],
          4 infrun:   5298 [Thread 5312],
          4 infrun:   5298 [Thread 5313],
          4 infrun:   5298 [Thread 5314],
          4 infrun:   5298 [Thread 5315],
          4 infrun:   5298 [Thread 5316],
    
    gdb/testsuite/
    2015-01-09  Pedro Alves  <palves@redhat.com>
    
    	* gdb.base/annota1.exp (thread_test): Use srcfile and binfile from
    	the global scope.  Set a breakpoint after all threads are started
    	rather than stepping over two source lines.  Expect the prompt.
    	* gdb.base/watch_thread_num.c (threads_started_barrier): New
    	global.
    	(NUM): Now 15.
    	(main): Use threads_started_barrier to wait for all threads to
    	start.  Main thread no longer calls thread_function.  Exit after
    	180 seconds.
    	(loop): New function.
    	(thread_function): Wait on threads_started_barrier barrier.  Call
    	'loop' at each iteration.
    	* gdb.base/watch_thread_num.exp: Continue to breakpoint after all
    	threads have started, instead of hardcoding number of "next"
    	steps.  Use an access watchpoint instead of a write watchpoint.

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=9665ffdd591e9b374b4e5f6aeffe15541346140d

commit 9665ffdd591e9b374b4e5f6aeffe15541346140d
Author: Pedro Alves <palves@redhat.com>
Date:   Mon Dec 29 19:41:04 2014 +0000

    gdb.threads/{siginfo-thread.c,watchthreads-reorder.c,ia64-sigill.c} races with GDB
    
    These three test all spawn a few threads and then send a SIGSTOP to
    their parent GDB in order to pause it while the new threads set things
    up for the test.  With a GDB patch that changes the inferior thread's
    scheduling a bit, I sometimes see:
    
      FAIL: gdb.threads/siginfo-threads.exp: catch signal 0 (timeout)
      ...
      FAIL: gdb.threads/watchthreads-reorder.exp: reorder1: continue a (timeout)
      ...
      FAIL: gdb.threads/ia64-sigill.exp: continue (timeout)
      ...
    
    The issue is that the test program stops GDB before it had a chance of
    processing the new thread's clone event:
    
      (gdb) PASS: gdb.threads/siginfo-threads.exp: get pid
      continue
      Continuing.
      Stopping GDB PID 21541.
      Waiting till the threads initialize their TIDs.
      FAIL: gdb.threads/siginfo-threads.exp: catch signal 0 (timeout)
    
    On Linux (at least), new threads start stopped, and the debugger must
    resume them.  The fix is to make the test program wait for the new
    threads to be running before stopping GDB.
    
    gdb/testsuite/
    2015-01-09  Pedro Alves  <palves@redhat.com>
    
    	* gdb.threads/ia64-sigill.c (threads_started_barrier): New global.
    	(thread_func): Wait on barrier.
    	(main): Wait for all threads to start before stopping GDB.
    	* gdb.threads/siginfo-threads.c (threads_started_barrier): New
    	global.
    	(thread1_func, thread2_func): Wait on barrier.
    	(main): Wait for all threads to start before stopping GDB.
    	* gdb.threads/watchthreads-reorder.c (threads_started_barrier):
    	New global.
    	(thread1_func, thread2_func): Wait on barrier.
    	(main): Wait for all threads to start before stopping GDB.

-----------------------------------------------------------------------

Summary of changes:
 gdb/ChangeLog                                      |   71 ++
 gdb/breakpoint.c                                   |   83 ++-
 gdb/breakpoint.h                                   |    5 +
 gdb/gdbserver/ChangeLog                            |   55 ++
 gdb/gdbserver/linux-low.c                          |  707 ++++++++++---------
 gdb/gdbserver/linux-low.h                          |   29 +-
 gdb/gdbserver/linux-x86-low.c                      |    2 +-
 gdb/gdbserver/mem-break.c                          |   34 +
 gdb/gdbserver/mem-break.h                          |   10 +
 gdb/gdbserver/target.h                             |   10 -
 gdb/gdbserver/tracepoint.c                         |    5 -
 gdb/linux-nat.c                                    |  756 +++++++++-----------
 gdb/linux-nat.h                                    |   31 +-
 gdb/testsuite/ChangeLog                            |   37 +
 gdb/testsuite/gdb.base/annota1.exp                 |    9 +-
 gdb/testsuite/gdb.base/watch_thread_num.c          |   21 +-
 gdb/testsuite/gdb.base/watch_thread_num.exp        |   40 +-
 gdb/testsuite/gdb.threads/ia64-sigill.c            |   11 +
 gdb/testsuite/gdb.threads/non-stop-fair-events.c   |   84 +++
 gdb/testsuite/gdb.threads/non-stop-fair-events.exp |  161 +++++
 gdb/testsuite/gdb.threads/siginfo-threads.c        |   13 +
 gdb/testsuite/gdb.threads/watchthreads-reorder.c   |   13 +
 gdb/x86-linux-nat.c                                |    2 +-
 23 files changed, 1387 insertions(+), 802 deletions(-)
 create mode 100644 gdb/testsuite/gdb.threads/non-stop-fair-events.c
 create mode 100644 gdb/testsuite/gdb.threads/non-stop-fair-events.exp


hooks/post-receive
-- 
gdb and binutils


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]