"Arthur Roolfs" <[EMAIL PROTECTED]> wrote in message
news:66808@palm-dev-forum...
>
> I experience the weirdest behaviour w/ CW 7/8. In a function I pass a
> variable uInfo of Type:
> typedef struct
> {
>    Char        name[17];
>    Int32     docNo;
>
> } UserType
>
> which gets inited in the passing function like so:
>
>    UserType            uInfo;
>    Char                    name[17];
>
>    //get form and field ptrs ...
>
>        StrCopy(uInfo.name, FldGetTextPtr(nameFld));
>        uInfo.regNo = StrAToI( FldGetTextPtr(dcoNoFld));
>
>    //error checking ...
>
>    AddUser(uInfo);
>
> Stepping through the code I find that once in
> AddUser(UserType uInfo)
> uInfo doesn't show up in the variables window and any code that uses
uInfo
> shows garbage values.

First, where are you checking to see that the string in your nameFld is
at most 16 characters long?  If your field maxChars is set longer, you
could overwrite important info on the stack.

> if (sizeof(uInfo))
>
> ends up with a line that one can't put a breakpoint to and get ignored
by
> the compiler.

If you're optimizer settings set to "off" or "0".  If not, the code will
be transformed by the optimizer.  The optimizer can make code hard to
debug by doing things like reusing stack space for different variables
or reordering code.

As for info -- is it used again after the call to Adducer?

I really can't tell more without a complete example.  Feel free to
contact Metrowerks technical support.  However, I think by disabling the
optimizer, you'll get code that acts like you think it should act.



-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/

Reply via email to