From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from out.smtp-auth.no-ip.com (smtp-auth.no-ip.com [8.23.224.60]) by hurricane.the-brannons.com (Postfix) with ESMTPS id DA8CD77AE4 for ; Tue, 9 Jul 2019 20:50:47 -0700 (PDT) X-No-IP: carhart.net@noip-smtp X-Report-Spam-To: abuse@no-ip.com Received: from carhart.net (unknown [99.57.137.251]) (Authenticated sender: carhart.net@noip-smtp) by smtp-auth.no-ip.com (Postfix) with ESMTPA id 84C1137FEA7 for ; Tue, 9 Jul 2019 20:50:47 -0700 (PDT) Received: from localhost (kevin@localhost) by carhart.net (8.15.2/8.15.2) with ESMTP id x6A3ok1Z003262 for ; Tue, 9 Jul 2019 20:50:46 -0700 Date: Tue, 9 Jul 2019 20:50:46 -0700 (PDT) From: Kevin Carhart To: edbrowse-dev@lists.the-brannons.com Subject: [edbrowse-dev] a crude 'step' Message-ID: User-Agent: Alpine 2.21 (DEB 202 2017-01-01) X-BeenThere: edbrowse-dev@edbrowse.org List-Id: Edbrowse Development List MIME-Version: 1.0 Content-Type: text/plain; format=flowed; charset=US-ASCII I sort of innovated something while working on Maersk. You can step a short sequence of code without having so many breakpoints that it's impractical. First you add a flag to the top of startwindow just for this purpose, like stepper = false Now you turn trace on and study the trace counter numbers a bit. You have to identify where you want the breakpoints to start, which would be whichever counter number you would be setting an eval($bp) on, if using it as it works currently. Now you have to write into trace, but not just turning alert3 into alert3;eval($bp) You write in with 2 things. The first involves both levels. The trace routine, and the string where trace writes a+ alert +b. In trace, you have a conditional. It tests the counter number and says if the counter number has reached your desired start value (a1000) , you write in a string to a+alert+b. This piece of text says, stepper= true. For any other counter number, add nothing. The second thing will be added to a+alert+b unconditionally. It just says if stepper = true then eval($bp). So this means that once a1000 is reached, it will continue to breakpoint at every possible juncture from then on, but you can also switch stepping back off, by entering stepper=false at the breakpoint prompt! So you can step the flow without needing to know what that flow is, and also be able to make it somewhat fine-grained. I fear my ssh session is about to crash so I am sending here! is that you hardcode a conditional to say that if the counter number has reached a1000, stepper =true. This happens at the time that the trace function is running because that is when the counter numbers are available. The second thing is a level down. It's JS that goes into the string that trace writes.