Author |
Topic |
|
Dan Forever
Junior Member
10 Posts |
Posted - May 24 2019 : 09:51:57 AM
|
I've had this problem for a while now, but only now managed to come across a reproducible instance of it.
I'm not sure how to reproduce it outside of my codebase however, but the shutdown (not quite a crash) simply happens when I right click somewhere on the code window. Before the context menu appears, visual studio exits (occasionally it attempts to restart, so sometimes it knows it wasn't a "clean" shutdown). If I'm debugging at the time, I'm asked if I want to stop debugging, but regardless as to whether I hit yes or no, it happens anyway. Normally I might get this once or twice a day.
My 100% repro is quickly left and then right clicking on a particular word in the code window after visual studio starts. I've attached a couple of logs, hopefully they can give a better picture of what's going on.
Let me know if there's anything I can do to help narrow the bug down.
https://drive.google.com/drive/folders/1c0-pqrvwdbdxg0ORckFhm2ja252gxnMG?usp=sharing |
Edited by - Dan Forever on May 24 2019 09:53:18 AM |
|
feline
Whole Tomato Software
United Kingdom
19020 Posts |
Posted - May 24 2019 : 11:08:48 AM
|
Thank you for the logs. My first thought is that somehow the IDE / VA is running out of memory. The IDE is only a 32bit process, so only gets access to 4gig of RAM at absolute maximum, so this can happen.
Now you have reproduced this on demand, how long is the IDE open for before the problem happens? Since this is happening on demand, is it happening as soon as you load the IDE and VA has finished parsing? If so this suggests it might not be a memory problem, but more of a "this specific code confuses us" problem.
Do you have IDE intellisense enabled or disabled? If it is enabled, could you try disabling it, via:
IDE tools menu -> Options -> Text Editor -> C/C++ -> Advanced -> Disable Database = True
and see if this has an effect? This might fix it if it is a memory exhausted problem, or a problem partly related to the IDE's symbol database information on the problem symbol. If it has no effect then its probably a "purely" VA problem.
The word that is the problem, is this a symbol in your code, or in a comment block / literal string? I am assuming it is a symbol in your code, but want to check this assumption.
Assuming it is, when you left click on it, what if anything, is showing in VA's navigation bar, which is normally shown at the top of the editor window, and is where the alt-m list appears from? I am wondering if VA understands this symbol, and is thus showing you something valid. Or if nothing is shown at all, which normally means that VA does not understand the symbol. |
zen is the art of being at one with the two'ness |
|
|
Dan Forever
Junior Member
10 Posts |
Posted - May 27 2019 : 05:16:33 AM
|
It happens as soon as I open the editor.
With IDE intellisense enabled: The navigation bar appears to be correct nothing happens when I press Alt-G with the caret on the symbol.
With IDE intellisense disabled: I wasn't able to reproduce it. Even when I turned it back on again. (I restarted visual studio when I changed the option, to be sure). However, I was able to bring the repro back by first closing the cpp where the repro happened, VAX options->Performance->Clear History, Cache and temporary files, restart Visual studio, then go back to the problem cpp using alt-g or f12 on a reference of the problem symbol.
Visual studio is using about 519MB of memory after it's been opened and all the extensions and systems have finished initialising.
For more context, the problem symbol Is any of these "EventEntity*" class members:
(As you can see the Event type name appears to be unrecognised.
And the Event type definition itself:
|
|
|
feline
Whole Tomato Software
United Kingdom
19020 Posts |
Posted - May 29 2019 : 10:33:44 AM
|
Thank you for the clear details. 512meg of memory used, it seems safe to say this is not a running out of memory problem.
Can you please close all instances of the IDE, and then look in the root directory of your solution, the directory where your .SLN file is located. Inside this directory there should be a sub-directory called ".vs", which is where the IDE stores its intellisense database for this solution.
The next time you load the IDE with IDE intellisense enabled this database will be rebuilt. It is possible that there is some form of problem with the IDE intellisense database, and if so, forcing a rebuild like this might help.
I am not sure why Alt-g is not doing anything though. Are you trying to use Alt-g on the actual overload operator? Or on a "normal" named class member? If VA understands the symbol well enough to put something sensible into its navigation bar then I would expect Alt-g to take you to the definition of this symbol. |
zen is the art of being at one with the two'ness |
|
|
|
Topic |
|
|
|