T O P I C R E V I E W |
rryk |
Posted - Mar 07 2012 : 3:27:59 PM Hi,
VA X hangs Visual Studio for indefinitely long when an existing project is added to the large solution. In my situation it is also more complicated scenario as I regenerate the solution from GYP and VA X can have outdated info about it. Essentially my actions are as following:
- Open a large solution
- Add an existing project to it
- Let VA X fully parse solution and build symbol database
- Close solution
- Regenerate solution (which removes additional project)
- Load solution and add the project
- VA X hangs Visual Studio
I always create a new solution folder and add additional project into it. Here are call stacks of the various threads in Visual Studio:
|
9 L A T E S T R E P L I E S (Newest First) |
rryk |
Posted - Jun 09 2012 : 06:14:16 AM I found a workaround - disable Visual Assist X from the menu before adding new project and re-enable afterwards. |
feline |
Posted - Mar 13 2012 : 6:36:05 PM If you disable the IDE's intellisense, what problems, if any, does this cause? As far as we can tell this "hang" is actually the IDE waiting while its own intellisense parser is delayed, then starts up, and when the IDE's intellisense parser has finally finished running the IDE should start responding again.
VA should never be falling back and relying on the IDE's intellisense for Alt-g in C++. VA has to have finished parsing the relevant files before Alt-g will work, but other than this, Alt-g should work the same whether the IDE intellisense is enabled or disabled. |
rryk |
Posted - Mar 09 2012 : 3:48:37 PM quote: Thankfully this is not a constant problem, and hopefully the mini dump will offer some clues.
It is constant problem with deterministic hang. It happens every time I add the external project to the newly generated solution. However, I do not regenerate solution very often (1-2 times a day) and there is a workaround. It's not a blocker, but a major bug.
quote: When trying to reproduce this, since I am working with a different test solution, and I don't have the option to regenerate the solution, I manually copied the origional .SLN file to a backup directory, and added a new .SLN to the large solution. The .SLN I added contains several projects, and makes up a good sized test solution.
My solution has more than 300 projects, which I would call as many rather than several. Thus I do not know if your solution is big enough.
quote: After letting both the IDE and VA finish parsing, saving the changes and closing the IDE, I copied the origional .SLN back into place, to emulate regenerating the solution. Does this sound like a fair test, or is there some extra aspect to regenerating the solution that this might not capture?
Try using GYP and (re)generate Chromium yourself. Instructions are also provided on the web-site (http://www.chromium.org/developers/how-tos/build-instructions-windows#TOC-Building-Chromium) and they are fairly easy. Just follow steps 1-3 in build instructions, there is no need to install all the patches mentioned in previous section. Unfortunately I can not provide you with the project that I am adding, but you can try adding a project that contains 700-800 C++ files.
Also I regenerate solution in place, so user files (.user) and IntelliSense symbol database (.ncb) remain untouched. Exactly the inconsistency between the symbol database and the solution may be a reason for the problem. I do not know where does VA stores it's symbol info but it is certainly not modified by the GYP, thus it would be also inconsistent with solution. Moreover, it symbol database contains info on a solution with the added project and when it faces a solution without one it starts to update the database. However, when suddenly I add the project back again it get's confused and hangs. That's my theory about it, but it could be far from truth. |
feline |
Posted - Mar 08 2012 : 3:28:15 PM We have the mini dump, thank you for this:
case=65214
Thankfully this is not a constant problem, and hopefully the mini dump will offer some clues.
When trying to reproduce this, since I am working with a different test solution, and I don't have the option to regenerate the solution, I manually copied the origional .SLN file to a backup directory, and added a new .SLN to the large solution. The .SLN I added contains several projects, and makes up a good sized test solution.
After letting both the IDE and VA finish parsing, saving the changes and closing the IDE, I copied the origional .SLN back into place, to emulate regenerating the solution. Does this sound like a fair test, or is there some extra aspect to regenerating the solution that this might not capture? |
rryk |
Posted - Mar 08 2012 : 02:40:27 AM quote: Originally posted by feline
So far I cannot reproduce this problem here. I don't have a test solution this large for VS2008, but I do have a similar sized VS2010 test solution on hand. I have emulated your steps here, but I cannot reproduce this hang here.
Can you please install VA 1901 and then capture a mini dump of VS2008 in this hung state. This FAQ entry explains how to do this:
http://docs.wholetomato.com?W303
You can get procdump to save out a mini dump when a CPU spike happens, which might help you capture this effect.
I have uploaded the dump based on hang (-h). When checking VA 1901 I've noticed that it doesn't hang when I add new solution folder anymore (or hangs but for less than 1 second), but it still hangs when I add an existing project.
quote:
Do you have to add, remove and re-add projects to the solution often? This does not sound like something you would have to do very often.
I have to add it every time after I regenerate the solution. I do not do it all the time, but it happens once in a while. Especially considering that I am working on two different branches of the same project, I often switch between them and need to regenerate the solution. I am considering integrating this additional project into GYP so it's generated together with the solution, but I would rather prefer to see this bug fixed. |
feline |
Posted - Mar 08 2012 : 12:14:25 AM So far I cannot reproduce this problem here. I don't have a test solution this large for VS2008, but I do have a similar sized VS2010 test solution on hand. I have emulated your steps here, but I cannot reproduce this hang here.
Can you please install VA 1901 and then capture a mini dump of VS2008 in this hung state. This FAQ entry explains how to do this:
http://docs.wholetomato.com?W303
You can get procdump to save out a mini dump when a CPU spike happens, which might help you capture this effect.
Do you have to add, remove and re-add projects to the solution often? This does not sound like something you would have to do very often. |
rryk |
Posted - Mar 07 2012 : 4:37:44 PM quote: Originally posted by feline
Which IDE and version of VA are you using? Which OS are you using? Is this a 32bit or 64bit OS?
Visual Studio 2008. VA 10.6.1862.0, build 2011.12.13. Windows 7 64-bit.
quote: What do you mean by "Regenerate solution"? Is this an IDE command that you are using? If so, which command? This is not a command I recognise.
I use Generate Your Projects (GYP) system from Google for Chromium package. It is not part of the IDE and I execute it externally.
quote: When you say a large solution, how large is large? How many files do you have in your solution?
I work with a modified version of a Chromium project. Overall it has over 100000 files, 29473 of them being C++ source and header files.
quote: If you open VA's Open File in Solution dialog (Alt-Shift-O) the title bar contains two numbers. The first number is the number of files currently listed, which changes as you filter the list. The second number is the total number of files in the list, which is normally the number of files in your solution. What is this second number?
With an added project it is 27129 (added using a workaround described in my previous post). Without it - 26389.
When tried to open Open File in Solution dialog immediately after adding an additional project it has reported "Parsing..." in the title of the dialog. The dialog itself is active, but nothing changes. Also when clicking on "Cancel" button the VS is unresponsive.
Also when adding a solution folder VS hangs for a short time (under 15 seconds). I have managed to have a look what it's doing and found out that this short hang is also related to VA X:
|
feline |
Posted - Mar 07 2012 : 4:04:08 PM Which IDE and version of VA are you using? Which OS are you using? Is this a 32bit or 64bit OS?
What do you mean by "Regenerate solution"? Is this an IDE command that you are using? If so, which command? This is not a command I recognise.
When you say a large solution, how large is large? How many files do you have in your solution?
If you open VA's Open File in Solution dialog (Alt-Shift-O) the title bar contains two numbers. The first number is the number of files currently listed, which changes as you filter the list. The second number is the total number of files in the list, which is normally the number of files in your solution. What is this second number? |
rryk |
Posted - Mar 07 2012 : 3:53:41 PM I have found a temporary workaround. I add the project and hit Save All button on toolbar (or Ctrl+Shift+S) immediately (under 1 second) after adding. Then solution is saved before IDE becomes unresponsive. I can then kill IDE and start it again having additional project added. |
|
|