From: sandmann AT clio DOT rice DOT edu (Charles Sandmann) Message-Id: <10109050334.AA20161@clio.rice.edu> Subject: Win2K breakpoints To: djgpp-workers AT delorie DOT com Date: Tue, 4 Sep 2001 22:34:16 -0500 (CDT) In-Reply-To: <10109041528.AA15041@clio.rice.edu> from "Charles Sandmann" at Sep 04, 2001 10:28:46 AM X-Mailer: ELM [version 2.5 PL2] Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Reply-To: djgpp-workers AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: djgpp-workers AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk I had a chance to look at this. What I have found: 1) On NT 4.0 it appears that more than one hardware breakpoint has never really worked properly. You can set more than one, but if one triggers they all show to be encountered. (Sigh.) 2) On Win2K it appears the watchpoint handle is not returned at all (oops) and is left to be the BX value on entry (the upper 16 bits of the address). This causes the get state and free to fail. If I added a check on return if the BX value is not set, and then "assume" the watchpoint handle is zero (like NT 4.0) debugging under Win2K seems to work about as well as it did under NT 4.0. Handles then get reset properly and they don't get lost. If we assume that NT flavors always have handles 0..3, we can then write some extra loops to set/check/clear these and probably make it work acceptably well on W2K, and maybe improve the NT 4.0 behavior.