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
 1609: Rename/change signature regression
 New Topic  Reply to Topic
 Printer Friendly
Previous Page
Author Previous Topic Topic Next Topic
Page: of 2

feline
Whole Tomato Software

United Kingdom
19020 Posts

Posted - Nov 15 2007 :  09:11:42 AM  Show Profile  Reply with Quote
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
Go to Top of Page

accord
Whole Tomato Software

United Kingdom
3287 Posts

Posted - Nov 15 2007 :  3:21:25 PM  Show Profile  Reply with Quote
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
Go to Top of Page

accord
Whole Tomato Software

United Kingdom
3287 Posts

Posted - Nov 30 2007 :  7:27:30 PM  Show Profile  Reply with Quote
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
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19020 Posts

Posted - Dec 04 2007 :  2:54:08 PM  Show Profile  Reply with Quote
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
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19020 Posts

Posted - Dec 07 2007 :  08:04:26 AM  Show Profile  Reply with Quote
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
Go to Top of Page

accord
Whole Tomato Software

United Kingdom
3287 Posts

Posted - Dec 08 2007 :  07:36:13 AM  Show Profile  Reply with Quote
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
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19020 Posts

Posted - Dec 10 2007 :  09:00:46 AM  Show Profile  Reply with Quote
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
Go to Top of Page

accord
Whole Tomato Software

United Kingdom
3287 Posts

Posted - Jan 29 2008 :  7:10:01 PM  Show Profile  Reply with Quote
I think it is a regression, so I hope that the bug has high priority
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19020 Posts

Posted - Jan 30 2008 :  07:32:12 AM  Show Profile  Reply with Quote
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
Go to Top of Page

accord
Whole Tomato Software

United Kingdom
3287 Posts

Posted - Feb 25 2008 :  11:15:26 AM  Show Profile  Reply with Quote
When this next build will show up?
Maybe this week?
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19020 Posts

Posted - Feb 27 2008 :  07:31:25 AM  Show Profile  Reply with Quote
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
Go to Top of Page

support
Whole Tomato Software

5566 Posts

Posted - Apr 10 2008 :  01:27:05 AM  Show Profile  Reply with Quote
case=10432 is fixed in build 1632
Go to Top of Page
Page: of 2 Previous Topic Topic Next Topic  
Previous Page
 New Topic  Reply to Topic
 Printer Friendly
Jump To:
© 2023 Whole Tomato Software, LLC Go To Top Of Page
Snitz Forums 2000