Whole Tomato Software Forums
Whole Tomato Software Forums
Main Site | Profile | Register | Active Topics | Members | Search | FAQ
User name:
Password:
Save Password
Forgot your password?

 All Forums
 Visual Assist
 Technical Support
 Structures and Union
 New Topic  Reply to Topic
 Printer Friendly
Author Previous Topic Topic Next Topic  

hezi
New Member

Israel
5 Posts

Posted - Mar 09 2006 :  02:38:03 AM  Show Profile  Reply with Quote
Hi,

When defining a structure or a union and using it, I get all the fields in the project and not just the fields that are in the specific structure or union.

What can I do to fix this?

Thanks in advance,

support
Whole Tomato Software

5566 Posts

Posted - Mar 09 2006 :  10:42:00 AM  Show Profile  Reply with Quote
We need some more info to debug your problem.

What IDE do you have?
What programming language?
What build of VA X?

Does the problem occur with all structures and unions? If not, what is common with those with the problem?

Do you have "Get contents from default Intellense" or "Guess contents if unknown" enabled in the "Text Editor|Listboxes" node of the VA X options dialog?
Go to Top of Page

hezi
New Member

Israel
5 Posts

Posted - Mar 12 2006 :  04:52:02 AM  Show Profile  Reply with Quote
I'm sorry, here is some more info:

IDE - Visual Studio 6
Programming language - C
VA X build 2006.03.07

Here is an example:

#define typedef_packed_struct typedef _Packed struct
typedef unsigned int word32;
#define BITFIELDS_FROM_LSB

typedef_packed_struct
{
#ifdef BITFIELDS_FROM_LSB
//Start from the LSB
word32 A:5;
word32 B:6;
word32 C:5;
word32 D:5;
word32 E:3;
word32 F:8;
#elif BITFIELDS_FROM_MSB
//Start from the MSB
word32 F:8;
word32 E:3;
word32 D:5;
word32 C:5;
word32 B:6;
word32 A:5;
#endif
} A_Type;

typedef union
{
word32 AA;
A_Type A;
} A_Union_Type;

When using:

A_Union_Type a;

and then a.A.

It shows all the structures fields in the project and not just A, B, C, D, E, and F.

Thanks in advance,
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19020 Posts

Posted - Mar 13 2006 :  3:52:44 PM  Show Profile  Reply with Quote
you may have some luck with:

VA Options -> text editor -> listboxes -> get content from default intellisense

VA does not know which #define's are active and which are not, so it parses all code, regardless. one reason for this is so that you still get help with your code inside #ifdef _DEBUG when the IDE is set to compile in release mode.

zen is the art of being at one with the two'ness
Go to Top of Page

hezi
New Member

Israel
5 Posts

Posted - Mar 15 2006 :  02:07:19 AM  Show Profile  Reply with Quote
Hi,

Thanks for your answer.
I understand that VA doesn't know which defines are active and which are not. Still, I would expect it to show only the fields of the structure (it can show all the fields of the structure regardless to if they are under the define that is active) for example if the structure is as follows:
typedef_packed_struct
{
#ifdef A
word32 A:5;
word32 B:6;
word32 C:5;
word32 D:5;
word32 E:3;
word32 F:8;
#else
word32 G:8;
word32 H:3;
word32 I:5;
word32 J:5;
word32 K:6;
word32 L:5;
#endif
} ABC_Type;

I would expect that when using this struct VA will show me only the fields A, B, C, D, E, F, G, H, I, J, K, and L and not all the fields that I have in the project (and I hava a lot).
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19020 Posts

Posted - Mar 21 2006 :  5:37:04 PM  Show Profile  Reply with Quote
i am now confused. i placed the code from your first post into a cpp file in VS2003 with VA 1440
VA did not know that "A_Type" was a type, which makes sense since it would have to resolve the #define to discover that this is a structure.

so then i tried the code:

typedef unsigned int word32;
#define BITFIELDS_FROM_LSB

typedef struct
{
#ifdef BITFIELDS_FROM_LSB
    //Start from the LSB
    word32 A:5;
    word32 B:6;
    word32 C:5;
    word32 D:5;
    word32 E:3;
    word32 F:8;
#elif BITFIELDS_FROM_MSB
    //Start from the MSB
    word32 F:8;
    word32 E:3;
    word32 D:5;
    word32 C:5;
    word32 B:6;
    word32 A:5;
#endif
} A_Type;

typedef union
{
    word32 AA;
    A_Type A;
} A_Union_Type;



static int getCounter()
{
    A_Union_Type foo;
    foo.A.|
    return 2;
}


i had tried:

typedef _Packed struct { ... }

but this would not compile until i removed the "_Packed". when i type the dot i get a list of just 6 items, A -> F. what do you mean by "all the fields in the project"?

zen is the art of being at one with the two'ness
Go to Top of Page

hezi
New Member

Israel
5 Posts

Posted - Mar 22 2006 :  04:17:47 AM  Show Profile  Reply with Quote
Hi,

Here is the code that will show the problem:

File Test1.cpp:
#include <Test1.h>

static int getCounter(void)
{
A_Union_Type foo;

foo.A.

return 2;
}

File Test1.h:

#define typedef_packed_struct typedef _Packed struct
typedef unsigned int word32;
#define BITFIELDS_FROM_LSB

typedef_packed_struct
{
#ifdef BITFIELDS_FROM_LSB
//Start from the LSB
word32 A:5;
word32 B:6;
word32 C:5;
word32 D:5;
word32 E:3;
word32 F:8;
#elif BITFIELDS_FROM_MSB
//Start from the MSB
word32 F:8;
word32 E:3;
word32 D:5;
word32 C:5;
word32 B:6;
word32 A:5;
#endif
} A_Type;

typedef union
{
word32 AA;
A_Type A;
} A_Union_Type;

typedef_packed_struct
{
#ifdef BITFIELDS_FROM_LSB
//Start from the LSB
word32 G:5;
word32 H:6;
word32 I:5;
word32 J:5;
word32 K:3;
word32 L:8;
#elif BITFIELDS_FROM_MSB
//Start from the MSB
word32 M:8;
word32 N:3;
word32 O:5;
word32 P:5;
word32 Q:6;
word32 R:5;
#endif
} B_Type;

typedef union
{
word32 BB;
B_Type B;
} B_Union_Type;


When typing foo.A.
It will show A, B, C.. , R

Thanks,
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19020 Posts

Posted - Mar 22 2006 :  3:46:23 PM  Show Profile  Reply with Quote
i had to removed the word "_Packed" before this would compile. i am guessing this is actually another #define somewhere in your code.

i see the problem. as far as i can tell VA does not know that "A_Type" and "B_Type" are actually types at all. for me turning on the option:

VA Options -> text editor -> listboxes -> get content from default intellisense

fixes this.

zen is the art of being at one with the two'ness
Go to Top of Page

hezi
New Member

Israel
5 Posts

Posted - Apr 04 2006 :  02:20:12 AM  Show Profile  Reply with Quote
Hi,

I am working on embedded platforms and using the visual studio just as an editor without compiling. Since I do that I can't use the option: get content from default intellisense.
Do you think that it can be fixed in the VA so that it will recognize the types?
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19020 Posts

Posted - Apr 04 2006 :  5:38:50 PM  Show Profile  Reply with Quote
thats unfortunate. since you cannot use this work around i have put in a case for this, but i am not sure when it will be addressed.

case=1117

zen is the art of being at one with the two'ness
Go to Top of Page

jpizzi
Tomato Guru

USA
642 Posts

Posted - Apr 05 2006 :  12:49:09 AM  Show Profile  Reply with Quote
I have used VS as an editor when programming for an embedded target. You can still setup a project/solution (I know, it seems like a LOT of work when you can't compile afterwards). Then you could use the workaround. Just a thought. The case is still recorded.

Joe Pizzi
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19020 Posts

Posted - Apr 05 2006 :  3:21:56 PM  Show Profile  Reply with Quote
i was reading up on the new "improved" intellisense in VS2005 C++ the other day, and one of the points they listed was that you no longer had to compile to get intellisense to work. my reading of the article was that the pdb files are built at compile time, and are required for default intellisense to work.

jpizzi did you find this? or don't you know?

zen is the art of being at one with the two'ness
Go to Top of Page

jpizzi
Tomato Guru

USA
642 Posts

Posted - Apr 06 2006 :  01:04:07 AM  Show Profile  Reply with Quote
Not having used it without VA, I don't know. Intellisense seems to work just fine for me

Joe Pizzi
Go to Top of Page
  Previous Topic Topic Next Topic  
 New Topic  Reply to Topic
 Printer Friendly
Jump To:
© 2023 Whole Tomato Software, LLC Go To Top Of Page
Snitz Forums 2000