Ook
Mon Jan 10 15:24:22 CST 2005
Disclaimer. The code I posted actually generates the mismatched mismatched
pushjmp/popjmp call error. Variations on the code generate the buffer
overrun or c0000029. In either case it appears that VFP is getting borked.
"Ook" <usenet@nospam.emberts.com> wrote in message
news:%238GvXn19EHA.3616@TK2MSFTNGP11.phx.gbl...
> I have sucessfully duplicated the c0000029 crash. This appears to be a ...
> um ... feature by design ... in VFP8. Here is how you do it:
>
> Create a DBC. Create two tables with identical structure. Put some data in
> them. One of the fields should be CHANGE, type = DateTime. Create a
> procedure in the DBC called SETCHANGE (or whatever you want to call it).
Put
> this code in the procedure:
>
> PROCEDURE setChange
> TRY
> IF glSetChange
> REPLACE CHANGE WITH DATETIME()
> ENDIF
> CATCH
> WAIT WINDOW 'An error has occured'
> ENDTRY
> RETURN .T.
> ENDPROC
>
>
> In one of your tables, set the record validation Rule: to setchange(), I
did
> it in the table ZOOT.
>
> Then, create a prg with this code
> USE ZOOT1
> SELECT 0
> USE ZOOT
> REPLACE AA WITH zoot1.aa, a1 WITH zoot1.aaa
>
> The second WITH... must be invalid, IE there must be an error in the
> table/field name. The first WITH must be valid. Note that zoot1.aa is
valid,
> zoot1.aaa does not exist because there is no field aaa. If you meet these
> conditions, you should get the c0000029 error at IF glSetChange. Note
that
> glSetChange must be unitialized, which would normally trigger an error
> instead of crashing.
>
> This was causing our app to crash because someone had put in an invalid
> field name, probably a typo, and under certain circumstances glSetChange
is
> indeed uninitialized, hence the TRY/CATCH block.
>
> Screen shots:
>
http://zootal.no-ip.info/stuff/c0000029.jpg
>
> And, you guys gotta check this out!!!
>
http://zootal.no-ip.info/stuff/c0000029a.jpg
>
> If I had the time, I could probably set this up so that executing my
program
> takes control of your computer, resets you DVC player, turns on your
> microwave oven, etc.....
>
> And, finally, not quite as exciting:
>
http://zootal.no-ip.info/stuff/c0000029b.jpg
>
>
>
> If anyone reads this far and has trouble duplicating this, I can post a
> sample program on my website to demonstrate the crash.
>
>