[RFA]: Modified Watchthreads Patch

Jeff Johnston jjohnstn@redhat.com
Fri Dec 10 04:24:00 GMT 2004


The following is a modified version of my thread watchpoint patch from 
October/November.  It removes the code I had used to switch between lwp ptids 
and thread ptids now that Daniel's lwp patch is in place.  It uses the former 
version of my observer that is linux-specific and is activated in attach_thread 
in linux-thread-db.c.  Eli, I renamed the observer as asked to indicate this.

I also addressed Ulrich's comments regarding simplifying the S390 code and using 
the s390_fix_watch_points call to actually put the watchpoints on the new thread.

Ulrich/Daniel can you take a look to verify everything is in place.  Daniel, I 
realize that this touches files that are currently in patch state for you.  I 
have no problem waiting for your latest patch to apply and retrofitting my 
changes at check-in if necessary.

As I mentioned before, more is required to get ia64 threaded watchpoints to 
work.  For S390, this change allows it to set and recognize threaded watchpoints.

-- Jeff J.

2004-12-09  Jeff Johnston  <jjohnstn@redhat.com>

         * breakpoint.c (insert_watchpoints_for_new_thread): New function.
         (print_it_typical): Do not issue an error for bp_thread_event
         if a subsequent event is on the chain.
         * breakpoint.h (insert_watchpoints_for_new_thread): New prototype.
         * ia64-linux-nat.c (ia64_linux_insert_one_watchpoint): New function.
         (ia64_linux_insert_watchpoint_callback): Ditto.
         (ia64_linux_insert_watchpoint): Change to iterate through lwps
         and insert the specified watchpoint per thread.
         (ia64_stopped_data_address): Call target_get_lwp to ensure
         the ptid has its lwp field filled in.
         (ia64_linux_remove_one_watchpoint): New function.
         (ia64_linux_remove_watchpoint_callback): Ditto.
         (ia64_linux_remove_watchpoint): Change to iterate through lwps and
         remove the specified watchpoint for each thread.
         (ia64_linux_new_thread): New thread observer.
         (_initialize_ia64_linux_nat): New function.  Initialize
         new linux thread observer.
         * linux-nat.h (struct linux_watchpoint): New structure.
         * linux-thread-db.c (attach_thread): Notify all linux new thread
         observers.
         * s390-nat.c (s390_tid): New function.
         (s390_remove_watchpoint_callback): Ditto.
         (s390_remove_watchpoint): Change to iterate through lwps and
         remove the specified watchpoint for each thread.
         (s390_insert_watchpoint_callback): New function.
         (s390_insert_watchpoint): Change to iterate through lwps and
         insert the specified watchpoint on each thread.
         (s390_linux_new_thread): New linux thread observer.
         (_initialize_s390_nat): New function.  Initialize
         new linux thread observer.
         * Makefile.in (s390-nat.o, ia64-linux-nat.o): Add new header file
         dependencies.

doc/ChangeLog

2004-12-09  Jeff Johnston  <jjohnstn@redhat.com>

         * observer.texi (linux_new_thread): New observer.


-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: watchthreads3b.patch
URL: <http://sourceware.org/pipermail/gdb-patches/attachments/20041210/41ec02a9/attachment.ksh>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: watchthreads3bdoc.patch
URL: <http://sourceware.org/pipermail/gdb-patches/attachments/20041210/41ec02a9/attachment-0001.ksh>


More information about the Gdb-patches mailing list