- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am debugging an application using Parallel Studio 2016 Professional in Visual Studio 2010 Professional SP1 on Windows 10 Professional 64-bit. The problem is that making a single step for simple commands takes too much time.
After pressing F10, the mouse pointer changes to the one indicating background activity. This indicator is not displayed continuously, but it flickers and changes to the standard pointer and back very quickly multiple times. This is proportional to the number of watched variables and increases time needed to make a single step to an unpleasant value that requires waiting for the background activity to be finished.
I have 5-10 scalar variables (integer, logical, real) and about 10-15 arrays (2D), usually only their parts containing up to 20 elements in the Watch window(s). Some of the array are from modules that are not used in the debugged subroutine, so I have something like Module::Array(i1:i1,j1:j2) in Watch. Is this too many variables whose updating needs so much time that it makes one debugging step unpleasantly long? I tried removing all watech variables and making steps is normal.
I tried removing those variables that are taken from modules that are not used in the debugged subroutine, and the problem persists. I have only 6 scalar variables and parts of 3 arrays, with about 50 elements in total! Debugging a complex problem requires more variables to be watched, however making steps is then very slow and time consuming...
Link Copied
- « Previous
-
- 1
- 2
- Next »
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Even though I don't think this is related to IntelliSense, I tried recommendations from your links and it did not help.
I disabled automatic adjustments of visual experience (Options - Environment - General), I also tried deleting the .suo file for my project, and I also played with debugging options (Options - Debugging - General) and disabled "Enable property evaluation and other implicit function calls", but there was no change at all.
I found following about debugging on MS website (http://blogs.msdn.com/b/visualstudioalm/archive/2015/03/03/make-debugging-faster-with-visual-studio.aspx):
Occasionally you can run into a property that takes a long time to evaluate in one of the watch windows which affects how quickly Visual Studio becomes responsive. If you suspect you may be running into this, you can try the following tips:
- Clear any properties from the Watch windows, or hide the Watch windows (by closing them or bringing another window on top of them in the same docking area). The debugger only evaluates expressions in the windows when they are visible.
- Hide the Autos and Locals windows that automatically populate
- Alternately, disable “Enable property evaluation and other implicit function calls” under Debug -> Options.
My conclusion from this is that Intel cannot probably do anything about this - Debugger simply evaluates all expressions that are visible, does this for every debugging step or run across multiple lines, no matter if the expressions were updated, and this update takes a lot of time, no matter if it is elements of a 3D array or even e.g. 20 scalar variables (I have just tested this now and the behavior is the same!).
I also tested, and I should have done this earlier, debugging in a C++ project, and the behavior is the same - the more variables I have in Watch, the more time is needed to refresh the view, and it takes roughly 2 seconds for about 20-30 variables. So, my conclusion is that VS is guilty for this; I am sorry to have bothered you with something Intel cannot do anything with.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
jirina,
I wish to thank you for your efforts. Although this did not lead anywhere useful, it will hopefully raise awareness of this issue.
(...resistance is futile, resistance is futile...)
Jim Dempsey
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
One more thing,
!DIR$ IF DEFINED(_DEBUG) DEBUG_Array_IJ = Array(I,J,:) !DIR$ ENDIF ! break on next statement, watch DEBUG_Array_IJ
That may work in a pinch
If the above is slow, then open a Memory Watch window on DEBUG_ArrayIJ and remove it (or obscure it) from the variable watch.
You may have to use LOC(DEBUG_ArrayIJ(1)) to set the memory window to the address area of interest. Also, you may need to right-click on the data, and then select the type of the data you wish to display.
Jim Dempsey
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jim, thank you for all your ideas how the problem could be resolved. I am going to try your most recent suggestion later, but I am afraid it will not help much - I mentioned in my previous post that it really does not matter wheter I have an array part or scalar variables in Watch, one the number of displayed values to be updated is higher, it takes too much time for the debugger to do so. I should probably ask about this in a VS forum.
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- « Previous
-
- 1
- 2
- Next »