T O P I C R E V I E W |
beef |
Posted - Feb 18 2010 : 03:58:01 AM Hi. I recently upgraded from 1810 and 1812 and, unfortunately, I must switch back to 1810. The problem is, that from time to time, 1812 begins to underline all sybols in file in red (like they have been "mistyped"). "Reparse" removes problem, but in several seconds it is here again.
My project is quite big (~700k of lines), with havy use of templates, etc. I'm afraid I'm not allowed to give you any code snippet, but for sure it's something that happeded between 1810 and 1812.
Here is my sysinfo: VA_X.dll file version 10.6.1810.0 built 2010.01.22 Licensed to: <...> DevEnv.exe version 9.0.30729.1 msenv.dll version 9.0.30729.4056 Font: Consolas 12(Pixels) Comctl32.dll version 6.10.7600.16385 Windows 7 6.1 Build 7600 2 processors (x86-64; WOW64)
Platform: Win32 Stable Includes: D:\\Work\\Lib\\Boost\\include\\boost-1_42_0; D:\\Work\\Lib\\OpenCASCADE6.3.0\\ros\\inc; c:\\Program Files (x86)\\Microsoft Visual Studio 9.0\\VC\\include; c:\\Program Files (x86)\\Microsoft Visual Studio 9.0\\VC\\atlmfc\\include; C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0A\\include; C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0A\\include;
Other Includes:
Stable Source Directories: c:\\Program Files (x86)\\Microsoft Visual Studio 9.0\\VC\\atlmfc\\src\\mfc; c:\\Program Files (x86)\\Microsoft Visual Studio 9.0\\VC\\atlmfc\\src\\mfcm; c:\\Program Files (x86)\\Microsoft Visual Studio 9.0\\VC\\atlmfc\\src\\atl; c:\\Program Files (x86)\\Microsoft Visual Studio 9.0\\VC\\crt\\src;
|
4 L A T E S T R E P L I E S (Newest First) |
feline |
Posted - Feb 24 2010 : 09:16:50 AM Apologies for the delay in getting back to you about this.
Trying this sample code here, I cannot reproduce the problem when just calling the macro ARCD_REGISER_ITEM. This suggests that somehow VA is getting confused when parsing either ARCD_REGISER_ITEM or maybe ARCD_REGISER_ITEM_
So to avoid editing your solution, you can try editing VA's "StdAfx.h" file as explained in this FAQ entry:
http://docs.wholetomato.com?W302
and add the entry:
#define ARCD_REGISTER_ITEM( ITEM_TYPE, FRIENDLY_NAME, PARENT_PROVIDER ) /* */
at the bottom. This file is used to help VA's parser with difficult code, and can be used to work around odd effects. After modifying this file you need to rebuild the VA symbol database for the changes to take effect:
VA Options -> Performance -> General -> Rebuild symbol databases |
beef |
Posted - Feb 19 2010 : 10:29:32 AM Ok, using your technique I was able to narrow down the problem. It seems it got something to do with nested macros.
This is the problematic macro - test function placed _before_ it has its local variables ok, but placed _after_ it - underlined:
This macro is defined in the include file also shown on the screenshot.
Ok, another thing that I investigated is that I am able to help the parser, just by copy&paste the problematic macro into this file. It is ok for the compiler, because it treats it just like plain redefinition:
Now it's ok. As you can see, the macro is nested, but anyway - this is exactly the same definition, as exists in the include file above.
I hope it helps. |
feline |
Posted - Feb 18 2010 : 11:03:36 AM When the problem shows up, can you try adding a simple dummy function, e.g.
static void testVAUnderlingOfThings()
{
bool vaUnderlineVar1;
bool vaUnderlineVar2;
}
near the top of the file. Do you see underlining in this code?
If so, what happens if you move this function to be the first thing in the file, so it is above all #include lines?
At a guess something near the top of the code file, or in one of the header files is confusing our parser. But without some idea of what that something is, or where it is, fixing this is going to be difficult. Hopefully you can narrow down what is causing the problem by just moving this simple test function through the code, watching for when it gets underlined. |
beef |
Posted - Feb 18 2010 : 04:12:06 AM Oops, sorry, I was to optimistic about 1810 being ok with this. It seems that the problem is here, too. Now I'm pretty sure, that it was 17xx line that was ok. Nevertheles, here are sample screenshots:
As you can see, all local variables are marked with red:
"Reparse" fixes this for some time:
|
|
|