Author |
Topic |
|
swinefeaster
Tomato Guru
310 Posts |
Posted - Nov 04 2019 : 5:03:33 PM
|
I've seen this sporadically before, but lately it's been getting worse. I have the latest VS 16.3.7.
When I type the period key, instead of it being entered into the current window, it appears to not get entered at all. Until I hit Ctrl+Tab to go to the next code window tab in VS, and I see a bunch of dots.
I can make the bug go away if I close a tab.
Known issue? It's really annoying...
thanks |
|
feline
Whole Tomato Software
United Kingdom
19014 Posts |
Posted - Nov 05 2019 : 05:13:48 AM
|
Can you please look and see if you have the IDE option:
IDE tools menu -> Options -> Environment -> Documents -> Show Miscellaneous files in Solution Explorer
turned On or Off. If this is turned On, can you please try turning it Off and see if this makes any difference? This setting has been known to trigger this problem in earlier versions of the IDE, so it is a possible trigger.
If this does not make any difference, does this problem seem to be file or solution specific? Or does it seem to happen in any file? |
zen is the art of being at one with the two'ness |
|
|
craigw1701
New Member
5 Posts |
Posted - Nov 05 2019 : 07:56:21 AM
|
Hey, I also have this problem happening randomly for the last little while (and another person on my team also has it happen). I do *not* have "Show Miscellaneous files in Solution Explorer" ticked, but I have just enabled it, just in case.
I don't have a repro, but I can try to give some information. I believe happens when opening up a file from a search window (like the "VA Find References Results"). The file I was just typing into was a normal .cpp file, however, the "." was being typed into a *generated* .h file.
I'm not sure if it's related, but it also got a bit confused when I tried to jump to the generated file in a "#include" statement using Ctrl+G and even F12, but it didn't work. I think it was because it was trying to jump to the "release" version of the generated file, but only the "debug" version had been generated (however, as an aside, the "release" versions of all the generated files appear in the "Open File In Solution" window, but with a blank "Modified", and it errors that it doesn't exist when trying to open)
|
|
|
feline
Whole Tomato Software
United Kingdom
19014 Posts |
Posted - Nov 05 2019 : 10:22:25 AM
|
craigw1701 which IDE are you using? Assuming you are using VS2019, which version are you using?
Can you please keep the "Show Miscellaneous files in Solution Explorer" setting turned Off? When this is turned On in earlier versions of the IDE we can encounter an IDE bug that reports the wrong active file, so we think we are sending characters to the correct file, but are actually sending them to the wrong file.
But it sounds like this is not the problem here.
When this starts happening, can you try having only 2 or 3 files open as tabs in the IDE, and make sure none of the files are modified, no * showing on the file name / tab name.
When you now reproduce the problem, does the tab for the other file show a *, to indicate it has become modified? I am trying to get a sense of if the IDE its self is aware of what is happening.
In the code, where you typed the dot, was this in code or in a comment? If in code, was it supposed to be converted to -> by VA? I am looking for any clues to help us understand what is going on here. |
zen is the art of being at one with the two'ness |
|
|
craigw1701
New Member
5 Posts |
Posted - Nov 05 2019 : 10:42:28 AM
|
Yeah we are using VS2019 Professional - version 16.2.3 I've got Visual Assist version 10.9.2341.2
Ok, I will keep it off :)
Sure, I can give it a try :) Normally I end up with 20, 30 or 40 open tabs (I also have multiple instances of VS2019 open with different solutions), but IIRC, none of the other tabs had edits when it happened... I'm not 100%, but maybe the first time it happened it was adding it to a file that was not even checked out in P4, but don't quote me on that :)
Yeah, the other tab instantly gets the * when I type the "."
The last time it happened it was on a templated class that is templated on a generated class, but there shouldn't have been any pointers or v-tables to worry about. Also, I could just keep hitting "." and it would keep printing it in the other file. I would just type random keys and they would all display correctly, but every "." would go to the other file :)
I (and other people here) had been having a lot of crashes for a long time, we think due to a conflict between VisualAssist, Intellisense and our own in-house extension. Since I set "Disable Database" to True in C/C++ -> Advanced, it has stopped crashing. So maybe there is some setting that is helping cause this? Not sure if there are any logs or anything I can upload for you if it happens again? :)
|
|
|
feline
Whole Tomato Software
United Kingdom
19014 Posts |
Posted - Nov 05 2019 : 11:27:00 AM
|
It is possible that the crashes are related, or they could be a completely separate problem. The fact that disabling the IDE's intellisense parser fixes the crashing problem is interesting. Do you know if your in-house extension makes use of the IDE's intellisense database? Or to put it another way, is it interested in parsing and understanding your code?
This does need to be looked into, and a mini dump of the crash, if we can get one, would be a good place to start here. This page explains how to save out a mini dump if you are not sure:
https://support.wholetomato.com/default.asp?W303
When you are having the problem with dot being sent to the wrong file, if you type in a comment block what happens to the dot character?
What about if you add a very simple test function, to the very top of the file, something like:
void felineTestDotEnter()
{
std::string *pStringForDot;
// type dot in this comment, and after "pStringForDot" below
pStringForDot;
}
At the top of the file will let us check if something in the file is a factor. This simple test also eliminates any template complexity.
The obvious reason for dot to be the only effected character is VA is watching for dot, so do you have either of the options:
VA Options -> Editor -> Convert dot to -> in C/C++ Convert dot to -> if operator -> is overloaded
turned On? If so, does turning these Off have any effect when this is happening?
If this has no effect, can you please open the VA Snippet editor, and set the "Type" filter to "Surround With". Do you have any snippets where you have set dot as the character to trigger the snippet to surround selected code? |
zen is the art of being at one with the two'ness |
|
|
sean
Whole Tomato Software
USA
2817 Posts |
Posted - Nov 05 2019 : 2:17:58 PM
|
Does disabling the VS Preview Tab (Tools | Options | Environment | Tabs and Windows | Preview tab) address the problems? If so, fix will be available in a matter of days (case=141374). |
Edited by - sean on Nov 05 2019 2:21:01 PM |
|
|
swinefeaster
Tomato Guru
310 Posts |
Posted - Nov 05 2019 : 8:56:25 PM
|
>> Does disabling the VS Preview Tab (Tools | Options | Environment | Tabs and Windows | Preview tab) address the problems? If so, fix will be available in a matter of days (case=141374). nope, still repros
>> turning off Convert dot to -> if operator -> is overloaded nope, still repros
>> Do you have any snippets where you have set dot as the character to trigger the snippet to surround selected code? nope, nothing crazy like that
>> if you type in a comment block what happens to the dot character? same thing, dot character is piped to the wrong tab
>> void felineTestDotEnter() still repros in comment, and after pStringForDot
also, the VA suggestions drop down box renders on the left side of the other monitor (my non-primary monitor). maybe it has something to do with me having VS on a non-primary monitor. the only way to get this to stop happening is to close the previous tab.
thanks swine |
|
|
feline
Whole Tomato Software
United Kingdom
19014 Posts |
Posted - Nov 06 2019 : 04:53:37 AM
|
Happening even in a comment is a little concerning, since this tends to rule out some of my theories.
Do you have any utilities or tools installed that might effect how the dot key is handled? What about WindowBlinds by Stardock? Keyboard shortcut utilities?
How many monitors are you working with? Are they all set to the same DPI, or are you working with different DPI monitors? E.g. one 4k monitor and one non 4k monitor?
Does the VA listbox always appear on the wrong monitor? When the listbox is appearing on the wrong monitor, is this anywhere near where your caret is? Or does it seem quite disconnected from the caret? I often test with multiple monitors, and I am not familiar with the listbox appearing on the wrong monitor.
How often does this problem happen? I am wondering how easily triggered it is.
One possibility is an interaction with another extension, since craigw1701 seems to be seeing some problems with another extension. One way of testing this theory is to close all instances of the IDE, and then run the command:
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\devenv.exe" /RootSuffix VATest
you will need to change the path to VS2019 if you are using a different edition. This will create and launch a new, default profile, with only the default IDE extensions installed, and none of your personal IDE settings. You would then need to install Visual Assist from the dialog:
IDE Extensions menu -> Manage Extensions
since the VA installer does not install VA for extra profiles.
This would allow you to test a "clean" version of the IDE with VA installed, but if this problem only happens occasionally, it may be hard to tell if this makes any difference or not.
To return to your normal, default profile just launch the IDE normally, without any command line switches. |
zen is the art of being at one with the two'ness |
|
|
craigw1701
New Member
5 Posts |
Posted - Nov 06 2019 : 07:55:31 AM
|
Hey, I just got it again, and tried to do all the things you mentioned :)
First, I am currently debugging, so have been adding breakpoints, watches and jumping around in the "Call Stack".
I clicked on a symbol and hit "Ctrl+G" to jump to it, but it didn't work. I tried a few times, and even tried F12, but nothing. So I thought to try the "." and, yup, it added it into a different tab (one I had recently stepped into, but was not checked out in perforce, so had the lock icon still, and now the *)
I first just clicked inside a random class type name and hit random characters which worked, but when I hit the "." the other tab got the "*" AND the popup results window appeared in the very top left of my main monitor (the one VS was on). I tried typing in a few places, and I wrote a single line comment and multi-line comments, but it still didn't work.
I disabled the "Convert dot to -> in C/C++" and tried again, still the same result.
I then scrolled to the top of the file and started typing out what you had sent, however, I couldn't type the "()" either! So I had to Ctrl+Drag them from someplace else. Once I finished typing, and added the final "}" I thought *something* changed then I tried the "." in the comment and it worked, and I tried it after the "pStringForDot" and it also worked.
I started writing this message and going to try the next thing, when I clicked back onto something (maybe the callstack) and VS hung then went away (crashed). Unfortunately I didn't have another VS attached and I had ran the wrong startup command so it didn't have the /Log either :( Sorry!
Oh, and I just see the other messages... I'll try the Tab Preview next time it happens, but if it's already tested as not fixing it :/
I don't think I have any keybinding things, but there are a lot of in-house application we use, so there is no guarantee.
I have two monitors set up, but the list box normally displays correctly. I have a Dell P4317Q 43" at 3840x2160 and a Dell Up2516D 1440x2560 on Portrait (flipped), both at 125% scaling.
I can try the command you suggested, and see if that does anything. And I can try disabling our in-house extension as well, but if it's happening to someone else then maybe it's not related (unless swinefeaster is also in my office! haha :))
BTW! Thanks for getting back to us so quickly! :)
p.s. here is the crash information from Computer Management, it's probably pretty useless, but maybe it will help :)
Faulting application name: devenv.exe, version: 16.2.29215.179, time stamp: 0x5d560adf Faulting module name: KERNELBASE.dll, version: 10.0.17763.802, time stamp: 0x936e7d37 Exception code: 0xe0434352 Fault offset: 0x00121932 Faulting process ID: 0xa010 Faulting application start time: 0x01d59484be93a5c5 Faulting application path: C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\devenv.exe Faulting module path: C:\windows\System32\KERNELBASE.dll Report ID: 65cef04c-9e97-4f18-a2c4-fa6d406b30e4 Faulting package full name: Faulting package-relative application ID: |
|
|
feline
Whole Tomato Software
United Kingdom
19014 Posts |
Posted - Nov 06 2019 : 10:40:59 AM
|
For the crash, can you please set Windows Error Reporting to save out a mini dump when it detects that the IDE has crashed, as explained here:
https://support.wholetomato.com/default.asp?W303#wer
this will then give you a mini dump to send to us, which will hopefully help to explain what is going on here, and does not require you to attach a debugger to the IDE before hand.
For the listbox appearing on the wrong monitor, I have a theory. If you type a dot that should trigger a listbox, and the dot is sent to the wrong file, then the listbox that the dot triggers appears on the wrong monitor, or on the same monitor but in the wrong place.
However if the dot that triggers the listbox is entered correctly into the current file then the listbox appears next to the dot, as normal. This is based on the theory that if the dot is "invisible", going to the wrong file, we don't know where to place the listbox, so it ends up defaulting to a corner of a monitor, quite possibly the other monitor.
Does this seem to fit the patter of what you are seeing when the listbox appears on the wrong monitor?
A quick test, next time the dot starts going to the wrong file, can you please try disabling VA via the menu entry:
VAssistX -> Enable/Disable Visual Assist X
this will take effect immediately, and stops most VA actions in the IDE. Does this have any effect on the problem? I am trying to work out if VA is actively triggering this problem or not. |
zen is the art of being at one with the two'ness |
|
|
swinefeaster
Tomato Guru
310 Posts |
Posted - Nov 06 2019 : 10:58:56 AM
|
I can confirm that disabling VA does indeed make the problem go away.
I don't have any weird let binding utilities. I have 5 monitors, one has giver res than the rest. When the pop-up appears on the wrong monitor, it's on the left edge of that monitor. |
|
|
feline
Whole Tomato Software
United Kingdom
19014 Posts |
Posted - Nov 06 2019 : 11:58:46 AM
|
Thank you for confirming that VA is causing this.
Are you only seeing the pop-up appear on the wrong monitor when the dot is sent to the wrong file, or is this happening at other times as well? I am wondering if it seems to be directly connected, or if it is a separate problem that also needs to be looked into. |
zen is the art of being at one with the two'ness |
|
|
swinefeaster
Tomato Guru
310 Posts |
Posted - Nov 06 2019 : 1:48:32 PM
|
i think it's directly connected, but i will confirm |
|
|
feline
Whole Tomato Software
United Kingdom
19014 Posts |
Posted - Nov 06 2019 : 2:50:33 PM
|
Thank you.
Assuming you have the time, and are seeing this problem fairly often / quickly, would you be able to test the "/RootSuffix VATest" command above? I just want to see if this happens with a default profile with VA installed or not.
At least two different people seeing the same problem at the same time, it suggests there is a common factor at work here that helps the problem to happen. But I am not sure what that common factor could be. |
zen is the art of being at one with the two'ness |
|
|
swinefeaster
Tomato Guru
310 Posts |
Posted - Nov 06 2019 : 6:20:19 PM
|
havent had a chance yet to try VATest, but i hit it again and noticed this in the ActivityLog.xml. Maybe it's a VS bug that's causing the VAX bug.
<entry> <record>1399</record> <time>2019/11/06 23:18:31.400</time> <type>Error</type> <source>Editor or Editor Extension</source> <description>System.NullReferenceException: Object reference not set to an instance of an object.#x000D;#x000A; at CColorState.GetColorStateAtStartOfLine(CColorState* , lexer_state_t* , Int32 iLine)#x000D;#x000A; at Microsoft.VisualC.CppColorer.GetClassificationsForLine(SnapshotSpan classifySpan, Int32 iCurrentLine, IVCTextEdit* pVCTextEdit)#x000D;#x000A; at Microsoft.VisualC.CppColorer.GetClassificationSpans(SnapshotSpan classifySpan)#x000D;#x000A; at Microsoft.VisualStudio.Text.Classification.Implementation.ClassifierTagger.<GetTags>d__5.MoveNext()#x000D;#x000A; at Microsoft.VisualStudio.Text.Tagging.Implementation.TagAggregator`1.<GetTagsForBuffer>d__47.MoveNext()</description> </entry>
|
|
|
craigw1701
New Member
5 Posts |
Posted - Nov 08 2019 : 04:19:42 AM
|
Hey, quick update :)
I changed some VA settings (also clearing the cache and rebuilding the database) and disabling our in-house extension, but I've not done a lot of C++ coding in the last few days, so I haven't seen it happen again. I'll probably be coding more on Monday, so I'll see if happens again and will let you know :) |
|
|
feline
Whole Tomato Software
United Kingdom
19014 Posts |
Posted - Nov 08 2019 : 10:28:18 AM
|
An IDE bug is certainly possible, thank you for finding and posting this information.
We have just released the new build 2353 of VA, can you please try upgrading to it, to see if this has any effect on this bug:
https://support.wholetomato.com/default.asp?W404#2353
it contains the fix for the Preview tab problem in VS2019, so it is possible this will have an effect. If nothing changes, it is still useful, since it is easiest to debug the current / latest version. |
zen is the art of being at one with the two'ness |
|
|
craigw1701
New Member
5 Posts |
Posted - Nov 11 2019 : 07:42:46 AM
|
Hey,
We still haven't seen the bug again, but VS has crashed twice this morning, but not sure if it's related. Unfortunately I haven't updated to the latest VA yet, and I wasn't running RootSuffix either, sorry :(
I did set up the minidump, but even compressed it's still 400mb... :/
Looking at the dump, I don't think it is related, but you can double check :) Here are the main details:
Exception: System.InvalidOperationException: 'BuildWindowCore failed to return the hosted child window handle.'
[External Code] [Managed to Native Transition] > PresentationFramework.dll!System.Windows.Interop.HwndHost.BuildWindow(System.Runtime.InteropServices.HandleRef hwndParent) Unknown PresentationFramework.dll!System.Windows.Interop.HwndHost.BuildOrReparentWindow() Unknown PresentationFramework.dll!System.Windows.Interop.HwndHost.OnSourceChanged(object sender, System.Windows.SourceChangedEventArgs e) Unknown PresentationCore.dll!System.Windows.SourceChangedEventArgs.InvokeEventHandler(System.Delegate genericHandler, object genericTarget) Unknown PresentationCore.dll!System.Windows.RoutedEventArgs.InvokeHandler(System.Delegate handler, object target) Unknown PresentationCore.dll!System.Windows.RoutedEventHandlerInfo.InvokeHandler(object target, System.Windows.RoutedEventArgs routedEventArgs) Unknown PresentationCore.dll!System.Windows.EventRoute.InvokeHandlersImpl(object source, System.Windows.RoutedEventArgs args, bool reRaised) Unknown PresentationCore.dll!System.Windows.UIElement.RaiseEventImpl(System.Windows.DependencyObject sender, System.Windows.RoutedEventArgs args) Unknown PresentationCore.dll!System.Windows.UIElement.RaiseEvent(System.Windows.RoutedEventArgs e) Unknown PresentationCore.dll!System.Windows.PresentationSource.UpdateSourceOfElement(System.Windows.DependencyObject doTarget, System.Windows.DependencyObject doAncestor, System.Windows.DependencyObject doOldParent) Unknown PresentationCore.dll!System.Windows.PresentationSource.OnVisualAncestorChanged(System.Windows.DependencyObject uie, System.Windows.Media.AncestorChangedEventArgs e) Unknown PresentationCore.dll!System.Windows.UIElement.OnVisualAncestorChanged(object sender, System.Windows.Media.AncestorChangedEventArgs e) Unknown PresentationCore.dll!System.Windows.Media.Visual.ProcessAncestorChangedNotificationRecursive(System.Windows.DependencyObject e, System.Windows.Media.AncestorChangedEventArgs args) Unknown PresentationCore.dll!System.Windows.Media.Visual.ProcessAncestorChangedNotificationRecursive(System.Windows.DependencyObject e, System.Windows.Media.AncestorChangedEventArgs args) Unknown PresentationCore.dll!System.Windows.Media.Visual.FireOnVisualParentChanged(System.Windows.DependencyObject oldParent) Unknown PresentationCore.dll!System.Windows.Media.Visual.AddVisualChild(System.Windows.Media.Visual child) Unknown PresentationFramework.dll!System.Windows.FrameworkElement.TemplateChild.set(System.Windows.UIElement value) Unknown PresentationFramework.dll!System.Windows.Controls.ContentPresenter.UseContentTemplate.BuildVisualTree(System.Windows.FrameworkElement container) Unknown PresentationFramework.dll!System.Windows.StyleHelper.ApplyTemplateContent(System.Windows.UncommonField<System.Collections.Specialized.HybridDictionary[]> dataField, System.Windows.DependencyObject container, System.Windows.FrameworkElementFactory templateRoot, int lastChildIndex, System.Collections.Specialized.HybridDictionary childIndexFromChildID, System.Windows.FrameworkTemplate frameworkTemplate) Unknown PresentationFramework.dll!System.Windows.FrameworkTemplate.ApplyTemplateContent(System.Windows.UncommonField<System.Collections.Specialized.HybridDictionary[]> templateDataField, System.Windows.FrameworkElement container) Unknown PresentationFramework.dll!System.Windows.FrameworkElement.ApplyTemplate() Unknown PresentationFramework.dll!System.Windows.FrameworkElement.MeasureCore(System.Windows.Size availableSize) Unknown PresentationCore.dll!System.Windows.UIElement.Measure(System.Windows.Size availableSize) Unknown PresentationCore.dll!System.Windows.ContextLayoutManager.UpdateLayout() Unknown PresentationCore.dll!System.Windows.ContextLayoutManager.UpdateLayoutCallback(object arg) Unknown PresentationCore.dll!System.Windows.Media.MediaContext.InvokeOnRenderCallback.DoWork() Unknown PresentationCore.dll!System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks() Unknown PresentationCore.dll!System.Windows.Media.MediaContext.RenderMessageHandlerCore(object resizedCompositionTarget) Unknown PresentationCore.dll!System.Windows.Media.MediaContext.RenderMessageHandler(object resizedCompositionTarget) Unknown WindowsBase.dll!System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate callback, object args, int numArgs) Unknown WindowsBase.dll!System.Windows.Threading.ExceptionWrapper.TryCatchWhen(object source, System.Delegate callback, object args, int numArgs, System.Delegate catchHandler) Unknown WindowsBase.dll!System.Windows.Threading.DispatcherOperation.InvokeImpl() Unknown WindowsBase.dll!System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(object state) Unknown WindowsBase.dll!MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(object obj) Unknown mscorlib.dll!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx) Unknown mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx) Unknown mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) Unknown WindowsBase.dll!MS.Internal.CulturePreservingExecutionContext.Run(MS.Internal.CulturePreservingExecutionContext executionContext, System.Threading.ContextCallback callback, object state) Unknown WindowsBase.dll!System.Windows.Threading.DispatcherOperation.Invoke() Unknown WindowsBase.dll!System.Windows.Threading.Dispatcher.ProcessQueue() Unknown WindowsBase.dll!System.Windows.Threading.Dispatcher.WndProcHook(System.IntPtr hwnd, int msg, System.IntPtr wParam, System.IntPtr lParam, ref bool handled) Unknown WindowsBase.dll!MS.Win32.HwndWrapper.WndProc(System.IntPtr hwnd, int msg, System.IntPtr wParam, System.IntPtr lParam, ref bool handled) Unknown WindowsBase.dll!MS.Win32.HwndSubclass.DispatcherCallbackOperation(object o) Unknown WindowsBase.dll!System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate callback, object args, int numArgs) Unknown WindowsBase.dll!System.Windows.Threading.ExceptionWrapper.TryCatchWhen(object source, System.Delegate callback, object args, int numArgs, System.Delegate catchHandler) Unknown WindowsBase.dll!System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority priority, System.TimeSpan timeout, System.Delegate method, object args, int numArgs) Unknown WindowsBase.dll!MS.Win32.HwndSubclass.SubclassWndProc(System.IntPtr hwnd, int msg, System.IntPtr wParam, System.IntPtr lParam) Unknown [Native to Managed Transition] [External Code] user32.dll![Frames below may be incorrect and/or missing, no symbols loaded for user32.dll] Unknown
|
Edited by - feline on Dec 28 2019 05:58:29 AM |
|
|
sean
Whole Tomato Software
USA
2817 Posts |
Posted - Nov 12 2019 : 8:50:42 PM
|
@craigw1701 Please send a message to [email protected] so that we can send you ftp info to upload the crashdump. |
|
|
foxmuldr
Tomato Guru
USA
411 Posts |
Posted - Dec 26 2019 : 2:53:28 PM
|
I also have this problem. It began manifesting with Visual Studio 16.4.0 for me. I had not seen the bug in prior versions. It also seemed to be fixed in 16.4.2 for a time, but today it's come back and is introducing extremely odd behavior. Not only are periods going to the wrong editor window, but editor files are being duplicated, such as a myprog.cpp tab here, and another myprog.cpp tab there. And where there are single files still shown, sometimes they show up as "myprog.cpp:1" on the tab name. Pop-ups appear in the far upper-left of the VS window and don't go away when you hit escape. You have to click on an area up by the tabs to get them to go away.
It seems to manifest itself when switching between debugging mode and editing mode, or when applying code changes with Alt+F10, or when moving to a new line of source code with Ctrl+Shift+F10, or some combination thereof, because as I make changes and do those things that's when it manifests.
Has it been fixed in the newer versions? I don't have a license for versions beyond August 2019. I installed the latest version with a 7-day trial and will see.
Microsoft techs at Visual Studio's Developer Community threads have suggested I disable VAssist X.
|
Edited by - foxmuldr on Dec 26 2019 3:57:57 PM |
|
|
feline
Whole Tomato Software
United Kingdom
19014 Posts |
Posted - Dec 27 2019 : 09:14:16 AM
|
Does disabling VA have any effect on these problems?
Are you working just in C++, or in different languages as well? When you say moving between debugging and editing mode, are you getting the IDE to apply code edits without doing a full recompile?
Can you please look and see if you have the setting:
IDE tools menu -> Options -> Environment -> Documents -> Show Miscellaneous files in Solution Explorer
turned On or Off?
If this is turned On can you please try turning it Off, and see if this makes any difference?
Also, do you have the Incredibuild IDE extension installed? This could also be a factor.
I am not aware that we have "fixed" this problem in the last few months, but I was not aware this problem had come back again to be fair. |
zen is the art of being at one with the two'ness |
|
|
foxmuldr
Tomato Guru
USA
411 Posts |
Posted - Dec 27 2019 : 10:13:43 AM
|
quote: Originally posted by feline
Does disabling VA have any effect on these problems?
Am debugging right now and haven't seen anything in an hour's use. I will let you know. When debugging yesterday it took about an hour for it to manifest the first time, and then it plagued me all day long even with IDE restarts until I found VAssist X may be the issue, and downloaded the new version. It was end-of-day so I never had a chance to test it.
quote: Are you working just in C++, or in different languages as well? When you say moving between debugging and editing mode, are you getting the IDE to apply code edits without doing a full recompile?
Just C++. I'm in the IDE developing code. I press F5 to run, which auto-launches the compiler and starts the debugger if no errors. Sometimes I manually choose Build. Other times manually Rebuild, but generally just F5 to do a Build as I am changing / developing in stages, testing, continuing. In the debugger I step through code at various points, make changes, Alt+F10 apply, often Ctrl+Shift+F10 to go back to a line I've corrected to re-run it to get the proper values.
It's my typical pattern of development.
quote: Can you please look and see if you have the setting:
IDE tools menu -> Options -> Environment -> Documents -> Show Miscellaneous files in Solution Explorer
turned On or Off?
Off.
quote: If this is turned On can you please try turning it Off, and see if this makes any difference?
Also, do you have the Incredibuild IDE extension installed? This could also be a factor.
No. Have never heard of Incredibuild, but now I'm intrigued. :-)
quote: I am not aware that we have "fixed" this problem in the last few months, but I was not aware this problem had come back again to be fair.
I'm currently using the new version 2358 built 2019.12.19. I will see if it comes up today.
FWIW, I've also noticed in VS2019 more instances of Shift+Alt+R not working. It gives me the "doong" music sound when I press it. Sometimes pressing it two or three times will eventually bring it up. Other times I have to seek other refactoring solutions. Almost always exiting the IDE at that point and restarting brings it back.
Just now I went to the IDE and pressed Shift+Alt+R on an "lnCount" variable that's in a function that's 30 lines long. It's declared at the top as "int lnCount;" but it "doong"ed me the first time. The second time it brought up the refactor dialogue.
It seems that there are some stability issues with whatever Microsoft's been doing to change the internals of how plug-in extensions work. They moved the VAssist X menu to its own Extensions -> VAssist X slot, and who knows what else they've done under the hood?
Fortunately I use VS2008 for nearly all of my personal development during development, dipping into VS2019 only for final compiles. :-) It's only for my job, and in some other rare cases, where I have to use the more modern tools for all phases of development. Visual Assist X has worked flawlessly in VS2008 as I recall. I've been very impressed with VS2019 as well, until the 16.4.x series.
|
Edited by - foxmuldr on Dec 27 2019 10:15:30 AM |
|
|
feline
Whole Tomato Software
United Kingdom
19014 Posts |
Posted - Dec 28 2019 : 05:56:46 AM
|
Let's focus first on Alt-Shift-R not working reliably, since this is something you can trigger on demand.
Is this still mapped to VA's Rename refactoring, or have you changed the keyboard mapping?
Assuming this is still mapped to VA's Rename refactoring, can you please place the caret into a comment block, and into a word in a comment, and press Alt-Shift-R again. You should get the same warning tone from your computer, to tell you that the command is not available here. I just want to check that we are seeing the same basic behaviour in a normal situation.
When Alt-Shift-R is failing to trigger the VA Rename dialog on a symbol in your code, what, if anything, is VA showing in its Context and Definition fields? These are normally found at the top of the editor, and are where the Alt-M list appears from.
VA should be showing you information about the symbol that the caret is placed into. However, if VA is showing you nothing, or the wrong information, it would explain why Alt-Shift-R is not working. This should only happen if our parser is confused by something in your code, or we have not had time to finish parsing your latest edits. In either case, if VA does not know what the current symbol is, we cannot offer to rename it.
If this is what is happening, instead of restarting the IDE, can you please just move the caret to a different symbol, and see if Alt-Shift-R works there? Also please try Alt-Shift-F for Find References. This should show a message box stating that "Find References is not available because the symbol is unrecognized" if it is not available.
After testing this, move the caret back to the "problem" function name, and try again. Are the VA context and definition field being updated correctly? Is either command working on this function name? |
zen is the art of being at one with the two'ness |
|
|
foxmuldr
Tomato Guru
USA
411 Posts |
Posted - Dec 30 2019 : 08:18:06 AM
|
quote: Originally posted by feline
Let's focus first on Alt-Shift-R not working reliably, since this is something you can trigger on demand.
Is this still mapped to VA's Rename refactoring, or have you changed the keyboard mapping?
No re-mapping. I've only re-mapped Ctrl+W to close the current editor window. And also the numpad-5 key to scroll to center.
quote: Assuming this is still mapped to VA's Rename refactoring, can you please place the caret into a comment block, and into a word in a comment, and press Alt-Shift-R again. You should get the same warning tone from your computer, to tell you that the command is not available here. I just want to check that we are seeing the same basic behaviour in a normal situation.
Correct. Same tone.
quote: When Alt-Shift-R is failing to trigger the VA Rename dialog on a symbol in your code, what, if anything, is VA showing in its Context and Definition fields? These are normally found at the top of the editor, and are where the Alt-M list appears from.
In this function, there's an iterate variable "lnI" that I place the caret on. AT the top it shows the line's context "function_name.for" and then the type "u32 lnI" (u32 is typedef'd to uint32_t).
quote: VA should be showing you information about the symbol that the caret is placed into. However, if VA is showing you nothing, or the wrong information, it would explain why Alt-Shift-R is not working. This should only happen if our parser is confused by something in your code, or we have not had time to finish parsing your latest edits. In either case, if VA does not know what the current symbol is, we cannot offer to rename it.
This morning, before I started debugging, everything I placed the caret on worked immediatley with Alt-Shift-R. Nothing made the unknown sound except content in comments.
quote: If this is what is happening, instead of restarting the IDE, can you please just move the caret to a different symbol, and see if Alt-Shift-R works there? Also please try Alt-Shift-F for Find References. This should show a message box stating that "Find References is not available because the symbol is unrecognized" if it is not available.
I used Alt-Shift-F quite often. It works along the lines of Alt-Shift-R, in that sometimes it won't find the symbol and makes the sound.
quote: After testing this, move the caret back to the "problem" function name, and try again. Are the VA context and definition field being updated correctly? Is either command working on this function name?
FWIW, this is a significantly lower-priority error than VAX causing Visual Studio to become completely unusable and unstable. I would really like to address that issue first. If you think the two are related, I'm content to continue pursuing why Alt-Shift-R isn't working all the time, but otherwise I need to get VS2019 stable for development. I don't really care if Alt-Shift-R isn't working when the bigger issue of the entire IDE being usuable with VAX enabled exists. |
Edited by - foxmuldr on Dec 30 2019 08:19:00 AM |
|
|
feline
Whole Tomato Software
United Kingdom
19014 Posts |
Posted - Dec 31 2019 : 07:39:47 AM
|
Apologies, I got side tracked by trying to pin down something that sounded easier to track. I don't recognise the symptoms and problems you are seeing here, which suggests there is something unusual about your situation.
Can you please close all instances of the IDE and then run the command:
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\devenv.exe" /RootSuffix VATest
If you are not running the Professional version of VS2019 you will need to edit the path to the version you are using. This will create and load a new, default IDE profile. This new default profile will only have the default extensions installed, and none of your settings. After loading this you can install VA from the online extension store:
IDE Extensions menu -> Manage Extensions
just doing this, using the default IDE and VA settings, can you see if you still get the same problems?
To return to your normal, default profile, just close the IDE and load it again normally.
To return to this test profile just re-run the command line above, with the command line switch.
You can export your IDE settings from your main profile and import them into the test profile if you want as well, which will be an interesting test, to see if the problem reappears. |
zen is the art of being at one with the two'ness |
|
|
foxmuldr
Tomato Guru
USA
411 Posts |
Posted - Dec 31 2019 : 2:15:09 PM
|
quote: Originally posted by feline
Apologies, I got side tracked by trying to pin down something that sounded easier to track. I don't recognise the symptoms and problems you are seeing here, which suggests there is something unusual about your situation.
Can you please close all instances of the IDE and then run the command:
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\devenv.exe" /RootSuffix VATest
If you are not running the Professional version of VS2019 you will need to edit the path to the version you are using. This will create and load a new, default IDE profile. This new default profile will only have the default extensions installed, and none of your settings. After loading this you can install VA from the online extension store:
IDE Extensions menu -> Manage Extensions
just doing this, using the default IDE and VA settings, can you see if you still get the same problems?
To return to your normal, default profile, just close the IDE and load it again normally.
To return to this test profile just re-run the command line above, with the command line switch.
You can export your IDE settings from your main profile and import them into the test profile if you want as well, which will be an interesting test, to see if the problem reappears.
I don't know if I'll be able to test it before my 7-day trial runs out. I have 3 days left. I'll try as you suggest if I'm able to on Thursday.
I have done development but not debugging + development for about four hours only. During that time I didn't have any issues. I'll see what I can figure something out. I have a few more hours of development before I can begin debugging. |
|
|
foxmuldr
Tomato Guru
USA
411 Posts |
Posted - Jan 03 2020 : 07:56:35 AM
|
My 7-day trial license expired on the newer version.
I was able to use VS2019 and VAX all day yesterday and never had any issues. My dev cycle was creating a DLL used by another program with constant start / restart cycles as it would not apply code changes for some reason. It kept reporting something in a static section of code was changing, so I assume a compiler bug.
I had observed previously that when I would apply code changes, and Ctrl+Shift+F10 to go back to a previous line and run the new code, that's what seemed to break it and would be when it began having issues. Exiting VS would remedy it for a time, but it would come back fairly quickly and repeat the same errors. I never did find the precise trigger, but something relating to apply code changes, move to another line, etc. |
|
|
|
Topic |
|
|
|