Author |
Topic |
feline
Whole Tomato Software
United Kingdom
19020 Posts |
Posted - Nov 15 2007 : 09:11:42 AM
|
Using win2k, VS2005, VA 1616 and a C++ Header file 1509 lines long. At line 933 I have added:
class testRenamingInThis
{
private:
void testFunctionOne();
void testFunctionTwo(int nParam1);
int getResult(int nLength, int nWidth);
};
So this should be a reasonable test case. I am using the VAssistX -> Refactor IDE menu to trigger Change Signature. Running Change Signature on these three member functions, just making random changes, adding and removing parameters, etc. Sometimes I am seeing one status bar message flash by, and sometimes I am seeing two status bar messages flash by. When I get two messages the first one appears, it disappears and then a moment later the second message appears.
I have taken a movie of what I am seeing, and by stepping through the movie I have checked that both messages, when I get two messages, are the same.
I have run Change Signature at least 20 times now, and I still only get a maximum of two messages on the status bar.
Are you seeing any other problems? Or just these extra status bar messages? |
zen is the art of being at one with the two'ness |
|
|
accord
Whole Tomato Software
United Kingdom
3287 Posts |
Posted - Nov 15 2007 : 3:21:25 PM
|
As I wrote, I seen the original problem (VAX underline everything) but I can only reproduce the "flashing" status bar.
I hope, you may able to find some "interesting" thing if you will looking into this effect, maybe this "bug" causing the very rare parser break. Maybe.
One difference in my tests: I have done my tests in the cpp file.
quote: What is strange that VAX parse 6 or more times the cpp, and then quickly the header, but only once... Go to Top of Page
The function is declared in the header, and implemented in the middle of the cpp... (and it has an about 10 lines body) I am only renaming the only one parameter in my function (by change signature). It maybe a difference, because rename do a change signature and then a rename. (I can undo in 2 separate steps) |
Edited by - accord on Nov 15 2007 5:21:11 PM |
|
|
accord
Whole Tomato Software
United Kingdom
3287 Posts |
Posted - Nov 30 2007 : 7:27:30 PM
|
Feline: I tried to rebuild database, and I can still reproduce the problem with the steps in post "Posted - Oct 20 2007 : 5:10:48 PM"
So, let's find what's the difference with my and your steps. I am now try to generate even more detailed steps: I am now using C++, WinXP SP2, VAX 1619, VS2008 RTM Professional, I have NOT renamed feacp.dll
1. Start VS2008 2. Click File/New/Project 3. Click Win32 (on the left) 4. Click Win32 Project (on the right) 5. Type "q" into the Name editbox. 6. Click OK 7. Click Finish. 8. Click into the source (to give focus) 9. Press Alt+O 10. Press Ctrl+End 11. Press Enter 12. Paste this:
class someclass {
void SomeFunction();
};
13. Right click on SomeFunction 14. Use Create Implementation 15. You are now in the cpp. Right click on SomeFunction 16. Use Change Signature 17. Use "int kkk" as parameter 18. Press OK to accept window 19. Press Enter to accept dialog which says VAX detected a change in parameters. 20. Press ESC to Give back focus to editor.
Now someclass::SomeFunction should be underlined ~~~~
I hope that this is now working for you. This problem is very frequent for me.
Additional info: When this happen, if you press Alt+O to switch to the header VAX will reparse the header and if you press Alt+O again to switch back to cpp the underline ~~~ will go away. My steps are using new project and very small files, but in larger files you can see the "VA X: Parsing c:\\somepath\\SomeHeader.h" in this case. So it indicates that change signature sometimes "forget" to parse the header file.
Reparsing the cpp does not helps, reparsing the header by pressing Alt+O always helps. |
Edited by - accord on Nov 30 2007 7:43:03 PM |
|
|
feline
Whole Tomato Software
United Kingdom
19020 Posts |
Posted - Dec 04 2007 : 2:54:08 PM
|
Firstly apologies for the delay in getting back to you about this, support has been very busy the last few days.
I have followed these instructions very carefully, twice now. The first time it all worked perfectly, so here are the steps I took on my second run.
0a. Start VS2008 RTM - it shows the start page 0b. Enter VA Options and go to Performance node 0c. Press "Rebuld symbol databases" button 0d. Press Clear history, cache and temporary files button 0e. Press OK button on VA options - back to VS2008 start page 0f. Close VS2008 0g. Delete the project "q" directory from the folder "C:\\Documents and Settings\\feline\\My Documents\\Visual Studio 2008\\Projects\\"
1. Start VS2008 2. Click File/New/Project - done all with mouse 3. Click Win32 (on the left) - the child of "Visual C++" - done with mouse 4. Click Win32 Project (on the right) 5. Type "q" into the Name editbox. - I used mouse to select existing text and then typed "q", replacing it 6. Click OK 7. Click Finish. 8. Click into the source (to give focus) At this point I am waiting, watching a CPU meter (sysinternals Process Explorer) and hard drive activity, and waiting for VA to finish all parsing, since it is rebuilding its symbol database.
9. Press Alt+O 10. Press Ctrl+End 11. Press Enter 12. Paste this:
class someclass { void SomeFunction(); };
13. Right click on SomeFunction - I am getting the IDE context menu with the top two entries from VA 14. Use Create Implementation 15. You are now in the cpp. Right click on SomeFunction 16. Use Change Signature 17. Use "int kkk" as parameter 18. Press OK to accept window 19. Press Enter to accept dialog which says VAX detected a change in parameters. 20. Press ESC to Give back focus to editor.
At this point I waited about 1 minute, no underlining at all appeared, so I added "banana = 2" to the function body, giving me the code:
void someclass::SomeFunction( int kkk )
{
banana = 2;
}
after perhaps 30 seconds "banana" was underlined as a mistyped symbol. This is the only thing that is underlined. I am still sitting in the cpp file. Both the cpp and .h files are shown as modified. I have not changed files at all, not told VA to reparse things, done nothing "interesting" at all.
All right, lets look for less obvious triggers.
How many CPU's does your machine have? I have been running these tests on a single core machine, but I have a 2 core machine available.
Can you export your VA and IDE settings and send them to me please? I can then import them on my test system, and see if this makes any difference.
VA Options -> Performance -> Export Settings IDE tools menu -> Import and Export Settings -> Export selected environment settings
Please submit the files via the form:
http://www.wholetomato.com/support/contact.asp
including this thread ID or URL in the description, so we can match it up.
What anti-virus software are you using? If you disable this temporarily does this make any difference?
I am trying to think of anything that might realistically effect how VA is working for you. You keep on seeing this problem, but I just cannot seem to reproduce it, no matter what I try. |
zen is the art of being at one with the two'ness |
|
|
feline
Whole Tomato Software
United Kingdom
19020 Posts |
Posted - Dec 07 2007 : 08:04:26 AM
|
We have a report here: http://forum.wholetomato.com/forum/topic.asp?TOPIC_ID=7018 which reminds me of what you are seeing here.
I have asked our developers about this, to see if they have any ideas:
case=10381 |
zen is the art of being at one with the two'ness |
|
|
accord
Whole Tomato Software
United Kingdom
3287 Posts |
Posted - Dec 08 2007 : 07:36:13 AM
|
I'm back.
I have done some tests. Tried to disable my virus killer, uninstall some programs, uninstall my other add-in, tried to modify some IDE settings to the default and tried the steps with 1623 with no luck.
But yesterday accidentally found a case where the steps are not caused the parser failure.
The difference: I used the IDE's autohide feature in VS2008. So, after step 19, the docked "VA Find References Results" hiding itself, and the IDE is giving the focus back to the editor window immediately, and the parser could parse the header. Tried with docked window: failure again. Tried with floating windows: working.
So I figured out that VAX like if the focus is in the editor when it is trying to reparse the header. So I tried a little trick: when I used the docked window, I have done step 19 and 20 VERY fast (pressed ENTER, ESC, before VAX tried to reparse the header) to give the focus to the editor VERY fast. The result: everything is fine now. Header reparsed.
So to reproduce the bug, you may need to follow modified steps: First of all you need to keep "VA Find References Results" docked, and turn OFF autohide on it. Before step 19 wait some seconds and before step 20 wait about 5-10 second.
After step 19 the focus is in the docked "VA Find References Results". While you are waiting, VAX will lose the color of cSomeClass. After then, when you press ESC (step 20), the underline will finally happen (I hope at least )
(I docked the Find References Results window under the Editor window. I am using 1 monitor) |
Edited by - accord on Dec 08 2007 08:18:14 AM |
|
|
feline
Whole Tomato Software
United Kingdom
19020 Posts |
Posted - Dec 10 2007 : 09:00:46 AM
|
Got it. Very easy once I pin the Find References Results window open. I have always had this set to autohide during my tests, which is why I was never able to reproduce this until now:
case=10432
Thank you for your patience! |
zen is the art of being at one with the two'ness |
|
|
accord
Whole Tomato Software
United Kingdom
3287 Posts |
Posted - Jan 29 2008 : 7:10:01 PM
|
I think it is a regression, so I hope that the bug has high priority |
|
|
feline
Whole Tomato Software
United Kingdom
19020 Posts |
Posted - Jan 30 2008 : 07:32:12 AM
|
This is listed as fixed internally, so hopefully the fix will show up in the next build. |
zen is the art of being at one with the two'ness |
|
|
accord
Whole Tomato Software
United Kingdom
3287 Posts |
Posted - Feb 25 2008 : 11:15:26 AM
|
When this next build will show up? Maybe this week? |
|
|
feline
Whole Tomato Software
United Kingdom
19020 Posts |
Posted - Feb 27 2008 : 07:31:25 AM
|
I am not sure when the next build will appear, but I am expecting it soon. |
zen is the art of being at one with the two'ness |
|
|
support
Whole Tomato Software
5566 Posts |
Posted - Apr 10 2008 : 01:27:05 AM
|
case=10432 is fixed in build 1632 |
|
|
Topic |
|