<br><font size=2 face="sans-serif">Hi Brad,</font>
<br>
<br><font size=2 face="sans-serif">A fairly generic answer would be &quot;instrument the code&quot;. &nbsp;Obviously the debugger isn't going to work. &nbsp;Single stepping is way too slow, so you have to insert &quot;debug&quot; code in the code you're trying to debug that will cause some kind of evidence of what's going on in the code of interest to be visible, hopefully without disturbing the timing of the time critical code in any significant way. &nbsp;Heisenberg applies though.</font>
<br>
<br><font size=2 face="sans-serif">I often create &quot;logs&quot; in memory by &quot;logging&quot; values that I'm monitoring into some kind of RAM based storage that I can inspect later. &nbsp;The idea is that you'd like to just print things to the transcript at different points in the code and scan through the printout, but printing to the transcript is too &quot;expensive&quot; in terms of run time.</font>
<br>
<br><font size=2 face="sans-serif">I have to do this kind of thing a lot (for C/C++ based code running on VxWorks) for my day job. &nbsp;Breakpoints and single stepping are useless for trying to debug audio quality problems in multichannel Voice over IP systems. &nbsp;I think the same technique could work for Smalltalk. &nbsp;You just need to do things like preallocate the log storage, write directly into memory(i.e. 'DebugLog at: currentIndex put: someValue' &nbsp;at:put: is a primitive for byte and word arrays), etc. to minimize the runtime of the debug code.</font>
<br>
<br><font size=2 face="sans-serif">Does this help?</font>
<br>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -Dean</font>
<br>
<br>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td>
<td><font size=1 face="sans-serif"><b>&quot;Brad Fuller&quot; &lt;bradallenfuller@yahoo.com&gt;</b></font>
<br><font size=1 face="sans-serif">Sent by: squeak-dev-bounces@lists.squeakfoundation.org</font>
<p><font size=1 face="sans-serif">08/16/04 04:00 PM</font>
<br><font size=1 face="sans-serif">Please respond to The general-purpose Squeak developers list</font>
<br>
<td><font size=1 face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; </font>
<br><font size=1 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; To: &nbsp; &nbsp; &nbsp; &nbsp;&quot;'The general-purpose Squeak developers list'&quot; &lt;squeak-dev@lists.squeakfoundation.org&gt;</font>
<br><font size=1 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; cc: &nbsp; &nbsp; &nbsp; &nbsp;</font>
<br><font size=1 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; Subject: &nbsp; &nbsp; &nbsp; &nbsp;Best way to monitor/debug time critical process</font></table>
<br>
<br>
<br><font size=2 face="Courier New">What is the best, or best ways, to monitor and debug a Process that is time<br>
critical?<br>
<br>
brad<br>
<br>
<br>
<br>
</font>
<br>
<br>