not sure how this will be useful: the debugger will flag the exception
when it happens, and in Xcode anyway, you can invoke fix-and-continue
and move without starting over (I've actually never tried it, but from
what I read).

Peter


On 4/9/07, William Squires <[EMAIL PROTECTED]> wrote:
>    Okay, I just had an LED moment (light bulbs are so passe' now...)!
>    What if you could use the other Intel Core 2 Duo processor to
> mirror/emulate the other when debugging a program?
>    Clearly, both processors are the same, right? So what if you could
> use the 2nd processor to 'pre-step' into a line of code and see if it
> blows up BEFORE you execute the same line of code on the 1st
> processor? For example, take the following C bit of code...
>
> #include <stdio.h>
>
> int main(int argc, char *argv[])
> {
> int *ptr, myArray[0, 1, 3, 2];
>
> init(); // some sort of setup
> ptr = myArray;
> // deliberate bug here...
> ptr++;
> while (*ptr)
>    {
>    printf("*ptr = %d\n", *ptr);
>    printf("ptr = %x\n", ptr);
>    ptr++;
>    }
> }
>
>    While we know this will blow up (it'll step off the end of
> 'myArray'), the computer doesn't... until its too late. But let's
> step into this using our fictitious, new version of gdb. We step up
> to the first "ptr++;" line. So far, so good. Now we single-step over
> it. Both processors execute the instruction, but - while the first
> stops, the second one goes ahead and pre-executes the next
> instruction for us (while (*ptr), to be exact.) Again, so far, so good.
>    We now step through the loop a few times. Once the 2nd "ptr++;"
> line executes the third time, gdb will now present us with a warning
> before stepping back to the while statement:
>
> **gdb: EXC_NO_ACCESS will occur on next statement unless *ptr
> modified to point into 'myArray'.**
>
>    Now we can see what the machine (processor) state is BEFORE it
> blows up, not just after (when we get the "Your Application has
> crashed..." dialog, and its core dump.) Of course, this could be
> extended to pre-execute any number of machine instructions (those
> making up a line of RB code, for example...), stopping as before on
> the statement prior to the problem.
>    Another advantage: since the processor mirrors the other, we can
> dump its locals/call stack/etc... without modifying the one in the
> main processor (in other words, we can measure without disturbing
> what we're measuring.)
>    Anyway, just dreaming... carry on.
>
> _______________________________________________
> Unsubscribe or switch delivery mode:
> <http://www.realsoftware.com/support/listmanager/>
>
> Search the archives:
> <http://support.realsoftware.com/listarchives/lists.html>
>


-- 
-------------------------------------------------------------------------------
Peter K. Stys, MD
Professor of Medicine(Neurology), Senior Scientist
Ottawa Health Research Institute, Div. of Neuroscience
Ottawa Hospital / University of Ottawa
Ontario, CANADA
tel:    (613)761-5444
fax:    (613)761-5330
http://www.ohri.ca/profiles/stys.asp
-------------------------------------------------------------------------------
_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>

Search the archives:
<http://support.realsoftware.com/listarchives/lists.html>

Reply via email to