Author |
Topic |
feline
Whole Tomato Software
United Kingdom
19020 Posts |
Posted - Jan 30 2008 : 2:42:14 PM
|
I have the log files, thank you for these. I have asked our developers if they can work out what is going on here:
case=12037 |
zen is the art of being at one with the two'ness |
|
|
dreijer
Ketchup Master
62 Posts |
Posted - Feb 18 2008 : 07:02:00 AM
|
feline, any news regarding this matter? |
|
|
feline
Whole Tomato Software
United Kingdom
19020 Posts |
|
dreijer
Ketchup Master
62 Posts |
Posted - Feb 18 2008 : 09:05:21 AM
|
No, I've never used any of the Express versions. I am running both VS2005 and VS2008 Professional on my system, though, but that shouldn't be too uncommon. |
|
|
feline
Whole Tomato Software
United Kingdom
19020 Posts |
Posted - Feb 18 2008 : 11:18:21 AM
|
Do you have time to try a fairly quick test? Do you see the same slow down in the DirectX test project if you reboot your machine into safe mode?
I have never been able to reproduce this, or even get close to it. I am wondering if some other process on your system is a factor. If the problem goes away in safe mode then this would suggest the problem is being caused by something outside of VA and the IDE. |
zen is the art of being at one with the two'ness |
|
|
dreijer
Ketchup Master
62 Posts |
Posted - Feb 18 2008 : 11:22:26 AM
|
Sure, I can try that. I seem to recall that other people had similar issues though? I'll give it a swing once I'm done coding for today. |
|
|
feline
Whole Tomato Software
United Kingdom
19020 Posts |
Posted - Feb 18 2008 : 11:45:27 AM
|
It depends what the issue you are seeing is. We have quite a few users reporting "VA does not work properly", but most of these users are reporting large numbers of symbols underlined as mistyped symbols. Something is confusing VA's parser, so it does not understand most of their code. I have finally pinned this down to STL iterators across "complex" types.
I am under the impression you are seeing typing slow right down, to the point where you can barely type. I don't think anyone else is reporting this. Also I cannot reproduce the problems, apparently with the same code as you. If I am really using the same code then this seems to rule out a parser problem. |
zen is the art of being at one with the two'ness |
|
|
dreijer
Ketchup Master
62 Posts |
Posted - Feb 18 2008 : 2:33:50 PM
|
quote: Originally posted by feline
I am under the impression you are seeing typing slow right down, to the point where you can barely type. I don't think anyone else is reporting this. Also I cannot reproduce the problems, apparently with the same code as you. If I am really using the same code then this seems to rule out a parser problem.
The slowdown is just a side effect, I think. Like, I mentioned previously how the IDE hangs sometimes when I select the auto-complete suggestion by hitting Enter. The main problem I'm having is that VA doesn't recognize the symbols fast enough. Take the DirectX project we looked at earlier, for instance. When I try to override the functions, I can often type the entire function call without VA suggesting any of the parameters. Let me know if you need clarification on this point. |
|
|
feline
Whole Tomato Software
United Kingdom
19020 Posts |
Posted - Feb 19 2008 : 07:57:37 AM
|
I have already detailed the tests I ran, and I ran them in a virtual machine. So if anything that should be a slower machine, with more overheads, so more prone to seeing the problems.
VA should not be running this far behind under normal circumstances. One possibility is that something about your machine is causing VA problems, some other process is slowing VA down, or blocking it, so it is taking much longer than normal to catch up with your typing. If it is simply some other program / process then safe mode may fix the problem. |
zen is the art of being at one with the two'ness |
|
|
dreijer
Ketchup Master
62 Posts |
Posted - Feb 24 2008 : 1:38:07 PM
|
Sorry for the delay in testing out VA in safe mode, but I've been busy with other stuff. With that said, VA seemed much more responsive in safe mode and it instantly displayed the suggestion list boxes. I just tested the same solution now that I'm out of safe mode, and the DirectX project worked just fine with regard to the suggestion list boxes. The suggestions appeared instantly for all the functions I tried (very weird!).
However, out of safe mode I still noticed issues with VA where closing function brackets aren't inserted, i.e. a } when I type {. It also often doesn't add brackets after functions once I select the function in a suggestion list box, i.e. Foo -> <Enter> should give Foo(). Finally, I still see the "IDE hang" sometimes when I use auto-complete and I have to wait a couple of seconds for the IDE to become responsive again (and I'll see all the characters I previously entered being written at the same time).
Next step? |
|
|
feline
Whole Tomato Software
United Kingdom
19020 Posts |
Posted - Feb 25 2008 : 08:25:03 AM
|
The fact that the listboxes worked correctly in safe mode seems to prove that there is no parser problem. The fact they are now working normally in normal mode as well... You have already tried rebuilding VA's symbol database. This suggests that something else is causing these problems.
The difficulty typing, that sounds like either your CPU or hard drive is maxed out. Can you try disabling the IDE's intellisense and see if this typing speed problem goes away?
http://docs.wholetomato.com?W133
I have just tried the two zero length read only NCB files in VS2008, and they work as expected there as well. So can you please try that approach. I have lost track of which IDE you are using, but this will work in VS2005 and VS2008.
In VS2005 the IDE's intellisense will often produce the effect you are seeing when working on a large project, which is why so many of our users disable it.
If this does not help then can you please run Process Explorer:
http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
and turn on the CPU History column. This will help in trying to find out if some process is using all of the CPU time, and which process it is. |
zen is the art of being at one with the two'ness |
|
|
pwaugh
Ketchup Master
USA
68 Posts |
Posted - Feb 25 2008 : 4:42:43 PM
|
Have you recently scanned your system for viruses and spyware? Some hidden nastys may be causing you problems. =)
I only say this because a couple of days ago, some new stuff was "discovered" and that cleared up some mysterious cpu usage for me. =)
|
Programming in C++
VA_X.dll 10.4.1626.0 Built 2008.01.17
(1-user license) Support ends 2009.01.29
DevEnv.exe version 9.0.21022.8 msenv.dll version 9.0.21022.8 Comctl32.dll version 6.0.2900.2982 Windows XP 5.1 Build 2600 Service Pack 2 Single processor Platform: Win32
|
|
|
pwaugh
Ketchup Master
USA
68 Posts |
Posted - Feb 25 2008 : 4:47:11 PM
|
OMG, I made Ketchup Master!!! You will never know how appropriate that is, haha.
|
Programming in C++
VA_X.dll 10.4.1626.0 Built 2008.01.17
(1-user license) Support ends 2009.01.29
DevEnv.exe version 9.0.21022.8 msenv.dll version 9.0.21022.8 Comctl32.dll version 6.0.2900.2982 Windows XP 5.1 Build 2600 Service Pack 2 Single processor Platform: Win32
|
|
|
dreijer
Ketchup Master
62 Posts |
Posted - Mar 03 2008 : 05:55:03 AM
|
Seems I didn't get an e-mail from the forum telling me there was a new reply, so I apologize for the delayed response.
quote: Originally posted by feline
The difficulty typing, that sounds like either your CPU or hard drive is maxed out. Can you try disabling the IDE's intellisense and see if this typing speed problem goes away?
We already tried this and disabling IntelliSense didn't fix anything. It just made VA work even worse. I'll give Process Explorer a try to see if something is up with the CPU usage, but so far I haven't noticed any problems in Task Manager (as we've talked about before).
quote: Originally posted by feline
In VS2005 the IDE's intellisense will often produce the effect you are seeing when working on a large project, which is why so many of our users disable it.
Ironically, it seems IntelliSense works better for me than VA at the moment. Often, IntelliSense is able to find symbols that VA cannot.
I have a major deadline coming up in a week, but after that I'll try reinstalling VS2008 and see if that fixes anything.
quote: Originally posted by pwaugh
I only say this because a couple of days ago, some new stuff was "discovered" and that cleared up some mysterious cpu usage for me. =)
I don't see any "mysterious CPU usage". |
|
|
feline
Whole Tomato Software
United Kingdom
19020 Posts |
Posted - Mar 03 2008 : 09:06:56 AM
|
I am now totally confused.
In your reply on Feb 24 2008 you seem to say that VA works correctly in safe mode, and that after trying safe mode it started working correctly in normal mode as well.
Did VA work correctly for a few minutes after this test? A few days?
If VA works correctly in safe mode then this suggests the problem is caused or triggered by some other program. An anti-virus program or other scanner might be causing the problems, we have had (very rare) reports of anti-virus programs causing problems. Excluding VA's symbol database from being scanned often fixes these problems. |
zen is the art of being at one with the two'ness |
|
|
dreijer
Ketchup Master
62 Posts |
Posted - Mar 03 2008 : 2:33:09 PM
|
quote: Originally posted by feline
I am now totally confused.
In your reply on Feb 24 2008 you seem to say that VA works correctly in safe mode, and that after trying safe mode it started working correctly in normal mode as well.
Did VA work correctly for a few minutes after this test? A few days?
Well, it seems like VA parses the symbols a bit better now, but I still see all the other issues. I also often get functions that are underlined in red even though IntelliSense has no problem finding the symbols.
quote: Originally posted by feline
If VA works correctly in safe mode then this suggests the problem is caused or triggered by some other program. An anti-virus program or other scanner might be causing the problems, we have had (very rare) reports of anti-virus programs causing problems. Excluding VA's symbol database from being scanned often fixes these problems.
I agree that it must be some other program. I'll try to disable my anti-virus scanner and see what happens. |
|
|
dreijer
Ketchup Master
62 Posts |
Posted - Mar 05 2008 : 02:50:44 AM
|
Okay, so disabling my anti-virus program (McAfee VirusScan Enterprise) seems to have fixed the latency issues. The DX test solution now works like a charm. The symbols are suggested instantly and all brackets are inserted as they should.
Now, with those problems out of the way I think it's time we move on to some of the other issues I'm having. I'm a big fan of the Boost C++ library, and I'm having some issues getting VA to parse them correct. For instance I have the following piece of code:
boost::shared_ptr<IDataMapper> pDataMapper;
pDataMapper-> The IDataMapper is an abstract class with pure virtual methods only. When I hit -> VA does not display any symbols at all. I have added the include path for the boost library to the project settings (C/C++->General->Additional Include Directories) and the project compiles just fine. The boost::shared_ptr part is underlined in red which leads me to believe that VA doesn't use the include paths specified in project settings. Do I really have to manually add the include path to VA as well? (By the way, if I enable the "Get content from default IntelliSense" setting, VA shows the symbols just fine.)
Consider the following piece of code:
IDataMapper pFoo;
pFoo-> The problem here is that IntelliSense seems to be having some difficulties parsing the IDataMapper class (don't know why). Therefore, if I have the aforementioned "Get content from default IntelliSense" setting enabled, VA doesn't show any symbols when I type -> |
|
|
dreijer
Ketchup Master
62 Posts |
Posted - Mar 06 2008 : 05:23:53 AM
|
Addendum: I just added the include path for the boost library to VA. It seems VA has problems seeing that:
boost::shared_ptr<IDataMapper> pDataMapper;
pDataMapper-> should actually display the methods for the pure virtual class IDataMapper. Do you have a similar problem? |
|
|
feline
Whole Tomato Software
United Kingdom
19020 Posts |
Posted - Mar 06 2008 : 4:07:32 PM
|
VA does support the C++ additional include directories.
shared_ptr first, do you have:
#include <boost/shared_ptr.hpp>
in the current file? If not then does adding it make any difference? If you place the caret into the file name what does VA show in the definition field? It should show the full path to this include file. |
zen is the art of being at one with the two'ness |
|
|
dreijer
Ketchup Master
62 Posts |
Posted - Mar 12 2008 : 06:23:24 AM
|
Adding:
#include <boost/shared_ptr.hpp>
did not fix anything. Sorry for the slow reply (once again). Had a deadline to attend to. I'm all yours now though, as I'd really like to get this problem fixed!
If I place the caret into the #include definition, VA lists the correct path to the boost library. Furthermore, I can use Alt+G to go to the correct file. This also explains why writing:
IDataMapper pDataMapper; pDataMapper->
works just fine. |
|
|
feline
Whole Tomato Software
United Kingdom
19020 Posts |
Posted - Mar 12 2008 : 10:08:06 AM
|
If you add the code:
boost::shared_ptr<std::string> pString;
pString->|
to a file, does VA correctly list the members of std::string? This works correctly for me, with "Get content from default Intellisense" turned Off.
In your last post do you actually mean that:
IDataMapper pDataMapper; pDataMapper->
fails? Is IDataMapper one of your own classes? A quick google is not returning many hits at all.
If you show VA View, then place keyboard focus back into the editor, and now hover the mouse over IDataMapper is the correct information displayed? |
zen is the art of being at one with the two'ness |
|
|
dreijer
Ketchup Master
62 Posts |
Posted - Mar 12 2008 : 10:49:24 AM
|
quote: Originally posted by feline
If you add the code:
boost::shared_ptr<std::string> pString;
pString->|
to a file, does VA correctly list the members of std::string? This works correctly for me, with "Get content from default Intellisense" turned Off.
This works fine for me as well. After a bit of testing it seems adding 'boost::' in front of shared_ptr fixes the issue. This approach works for both std::string and the IDataMapper class. However, I have already written:
using boost::shared_ptr;
at the top of the source file, so I shouldn't need that extra namespace specifier. Furthermore, once I've added boost:: in front of the type once, I can delete all of the test code I wrote and just type:
shared_ptr<string> pString;
and VA suddenly knows all the symbols and displays the suggestion box.
quote: Originally posted by feline
In your last post do you actually mean that:
IDataMapper pDataMapper; pDataMapper->
fails? Is IDataMapper one of your own classes? A quick google is not returning many hits at all.
No, I did mean to say that it worked. IDataMapper is my own class with only pure virtual methods. Without the shared_ptr, I get a list of suggestions, but with shared_ptr I get nothing.
quote: Originally posted by feline
If you show VA View, then place keyboard focus back into the editor, and now hover the mouse over IDataMapper is the correct information displayed?
Yes, the correct information is displayed. Typing -> shows none of those methods, though. |
|
|
feline
Whole Tomato Software
United Kingdom
19020 Posts |
Posted - Mar 12 2008 : 12:18:35 PM
|
Would it be possible to get a copy of the class IDataMapper for testing purposes?
using VS2005 and VA 1626 I have just added the following class to a header file:
class FelineIDataMapper
{
public:
virtual int getHeight() = 0;
virtual int getWidth() = 0;
virtual int setHeight(int n) = 0;
virtual int setWidth(int n) = 0;
};
and the following code to the matching cpp file:
using boost;
static void testBoostSharedPtr() { shared_ptr<std::string> pString; pString;
shared_ptr<FelineIDataMapper> pMapper; pMapper; }
When typing "->" after "pString" or "pMapper" I get a spontaneous listbox showing the correct items.
I am not sure why VA seems to be having problems with the using boost statement, and so far I cannot reproduce this problem here.
You said:
>> Furthermore, once I've added boost:: in front of the type once, I can delete all of the test code I wrote and just type:
How easily does this break? If you restart the IDE does this still work, or are you once more seeing the problem with shared_ptr<std::string> ? |
zen is the art of being at one with the two'ness |
|
|
dreijer
Ketchup Master
62 Posts |
Posted - Mar 12 2008 : 12:25:10 PM
|
quote: Originally posted by feline
Would it be possible to get a copy of the class IDataMapper for testing purposes?
The class relies heavily on other header files, but if you don't need to compile it I guess it should suffice?
You said: > using boost;
Try doing like I did with the "using std::shared_ptr;"
quote: Originally posted by feline
How easily does this break? If you restart the IDE does this still work, or are you once more seeing the problem with shared_ptr<std::string> ?
I just need to close the solution and reopen it, and its broken again. I don't even need to restart the IDE. The funny thing is, though, that once I've made it work in one source file, it works in all source files. |
|
|
feline
Whole Tomato Software
United Kingdom
19020 Posts |
Posted - Mar 12 2008 : 2:25:45 PM
|
Adding:
using boost::shared_ptr;
was the key step, I am now seeing part of the problem you are seeing. I get a spontanious listbox on "pString" but I have to press CTRL-SPACE to get a listbox on "pMapper":
static void testBoostSharedPtr()
{
shared_ptr<std::string> pString;
pString;
shared_ptr<FelineIDataMapper> pMapper;
pMapper;
}
case=14457
For now the work arounds seem to be to change the using statement to:
using boost;
or to turn on "Get content from default Intellisense" |
zen is the art of being at one with the two'ness |
|
|
dreijer
Ketchup Master
62 Posts |
Posted - Mar 13 2008 : 4:50:59 PM
|
I don't like including the entire boost namespace. That's bad practice and against my coding guidelines. I think we also talked about the issues the ""Get content from default Intellisense" presented.
So, do you have any ETA on this bug? I think it's one of the last issues I'm experiencing. (I'm seeing another one, but I don't know when I should spill the beans :) |
|
|
feline
Whole Tomato Software
United Kingdom
19020 Posts |
Posted - Mar 14 2008 : 10:25:13 AM
|
Currently I have no estimate on this bug.
This thread is really confusing, so I have no idea what problems you are seeing with "Get content from default Intellisense" turned on.
I would suggest changing "shared_ptr" to "boost::shared_ptr" for the problem cases. This does assume that "shared_ptr" works most of the time. It does in my testing, only failing for an abstract class. |
zen is the art of being at one with the two'ness |
|
|
dreijer
Ketchup Master
62 Posts |
Posted - Mar 14 2008 : 11:00:46 AM
|
quote: Originally posted by feline
This thread is really confusing, so I have no idea what problems you are seeing with "Get content from default Intellisense" turned on.
The problem here is that IntelliSense seems to be having some difficulties parsing the IDataMapper class (don't know why). Therefore, if I have the aforementioned "Get content from default IntelliSense" setting enabled, VA doesn't show any symbols when I type ->
quote: Originally posted by feline
I would suggest changing "shared_ptr" to "boost::shared_ptr" for the problem cases.
Unfortunately, I'm not going to modify all my source files for this reason. I've included the boost::shared_ptr namespace explicitly to avoid cluttering the code with unnecessary qualifiers. I guess I'll just have to wait patiently...
In the meantime, take a look at this post: http://forum.wholetomato.com/forum/topic.asp?TOPIC_ID=7338 |
|
|
feline
Whole Tomato Software
United Kingdom
19020 Posts |
Posted - Mar 15 2008 : 12:02:13 PM
|
You could try editing VA's stdafx.h file, and adding:
#define shared_ptr boost::shared_ptr
I have not tried this here, so I am not sure if it will work or not, but it might.
Editing VA's "StdAfx.h" file is explained in this FAQ entry:
http://docs.wholetomato.com?W302
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 |
zen is the art of being at one with the two'ness |
|
|
support
Whole Tomato Software
5566 Posts |
Posted - Apr 10 2008 : 12:54:29 AM
|
case=11842 is fixed in build 1632 |
|
|
Topic |
|