Forum Replies Created
-
AuthorPosts
-
support
KeymasterHi,
Thanks for the detailed overview. Offline disassembly viewer is a feature we are planning to add to next major VisualGDB release (preview is expected mid-Fall 2017). We have done some preliminary experiments with Visual Studio functionality for advanced code annotations (used by Code Lens) and will experiment with displaying useful per-function information (like memory footprint, stack sizes, etc) with it directly in the code.
Regarding ReSharper, most of the troubles come from the fact that ReSharper comes with its own IntelliSense engine that expects to work on top of the regular VS engine. So you simply cannot use ReSharper and Clang IntelliSense at the same time unless ReSharper is modified to check for a different underlying engine (that most likely won’t be the case as VisualGDB projects are a tiny fraction of the projects they are targeting). You can try disabling Clang IntelliSense globally or for a specific project, but then ReSharper would encounter trouble parsing GCC-specific extensions like “struct foo bar = {.field1 = 1, .field2 = 2}”. Some of those issues could be worked around by redefining problematic keywords with #define-s via an IntelliSense-only header file, although the only 100% working solution would be to ship special versions of all SDKs (like STM32CubeMX) specifically edited to remove any incompatible extensions and this is unfortunately beyond what we can reasonably provide.
If you would like to use ReSharper for your projects, we could provide more insight on how VisualGDB handles include paths and defines to ensure ReSharper can find them, although reliable and seamless operation won’t be possible due to the fundamental incompatibility between ReSharper and GCC-specific syntax and there’s not much for VisualGDB to do here other than offer an independent IntelliSense engine that is specifically designed to work with that syntax. Sorry.
Regarding other features:
- Our code formatter includes a lot of advanced options on top of what VS offers, so usually you can customize it easily. If not, just let us know what tweaks you are missing and we will help you locate them or will add them.
- If you are using J-Link, you can easily enable SWO viewing by adding “monitor SWO EnableTarget” to the GDB startup commands and configuring VisualGDB to connect to the J-Link SWO port via telnet (see the Raw Terminal page of VisualGDB Project Properties). It won’t display anything beyond simple text output, however if you have a few scenarios in mind where visualization could make sense of the SWO data, we will definitely appreciate them and will consider supporting them.
- VisualGDB does provide a way to analyze the memory footprint of your program. It’s called Embedded Memory Explorer and can show detailed information on memory usage. E.g. see this tutorial. It doesn’t display stack usage yet, although we will consider supporting it in the next VisualGDB version.
Hopefully this helps. Let us know if you have any further questions.
support
KeymasterHi,
We are sorry about the inconvenience you are experiencing. We do actually provide a basic reference on the type visualizer-related API: http://visualgdb.com/SDK/reference and the documentation XML files are shipped with VisualGDB, so Visual Studio should automatically display the help for all common methods and types when you are viewing them via IntelliSense.
Either way, we will try to help you pinpoint this by sharing some insight into how the filters work.
VisualGDB uses two-step matching to find expression filters. First it checks if the expression type contains any of the triggers exported by the filters. Trigger matching is a simple case-sensitive substring search. I.e. masks like “Vector<*>” won’t work when entered in the triggers.
The second step of the matching is calling the Probe() method so that the filter can check the expression against an arbitrary set of conditions (e.g. regular expressions). This step is easy to debug by placing a breakpoint inside your Probe() implementation and stepping through it to see why it is not succeeding.
If you experience troubles with getting your filters loaded, the problem could happen in one of the 3 places:
- Your filter is being filtered out due to triggers
- Your filter’s Probe() method does not return a valid value
- Your filter successfully attaches, but does not actually filter the expression correctly
You can easily pinpoint the location of the problem by reducing the triggers to something trivial (or just an empty string to get triggered for every variable) and stepping through the Probe() method. Please also check the outer Visual Studio’s Output log for information on thrown exceptions. If your filter accidentally throws an exception during initialization, VisualGDB would simply skip using the filter.
If this does not help, please let us know what you observe (i.e. which methods of your filter are called and what do you observe in VS) and we will help you sort it out.
support
KeymasterHi,
This could happen if some files were in use. Please try deleting the toolchain manually and then installing it again.
August 19, 2017 at 23:18 in reply to: STM32F407 Discovery Board, Debugging & Programming Problem #12117support
KeymasterHi,
Thanks for reporting this, please try this build: http://sysprogs.com/files/tmp/VisualGDB-5.3.6.1733.msi
August 19, 2017 at 19:58 in reply to: How do you enable the 64-bit version of CppEngineHost.exe in Preview 2? #12115support
KeymasterHi,
We might have been able to pinpoint and fix this. Please try this build: http://sysprogs.com/files/tmp/VisualGDB-5.3.6.1733.msi
-
This reply was modified 8 years, 1 month ago by
support. Reason: new build link
August 19, 2017 at 19:44 in reply to: STM32F407 Discovery Board, Debugging & Programming Problem #12114support
KeymasterHi,
Please update to the latest VisualGDB 5.3 Preview 6. It includes new API that lets the OpenOCD package report the FLASH programming progress, so the previous preview builds won’t work with the latest OpenOCD package.
support
KeymasterHi,
Good to know it works. If you ever encounter other issues, feel free to start another topic and we will help.
support
KeymasterPlease try changing MSBuild verbosity via Tools->Options->Projects and Solutions->Build and Run.
If it does not help, please attach a screenshot of the Output window and we will help you diagnose this.
support
KeymasterHi,
We have just released it yesterday, so you can download it and give it a try.
August 17, 2017 at 05:47 in reply to: How do you enable the 64-bit version of CppEngineHost.exe in Preview 2? #12092support
KeymasterHi,
The Clang engine is actually unchanged since Preview 3, so if you are experiencing different behavior, most likely it’s caused by the intermittent nature of the bug. What we usually do internally when investigating intermittent issues is try repeating the same operation 10 times and, how many times this leads to a certain outcome and then compare this number between different setups. We understand this is annoying, however as this bug looks to be specific to your codebase, we cannot offer much other help unless we could reproduce it on our side.
We would advise narrowing down the scope:
- Reduce the solution to just 1 source file (e.g. make a backup of the .vxcproj file and manually remove other <ClCompile> statements from it). Don’t forget to delete the CodeDB folder.
- If the problem still persists, this is very good as it’s most likely not caused by race conditions in the multi-threaded parser and could be isolated. In that case please try reprocessing the file by enabling “Generate preprocessor output” in the file properties and then replacing the original .cpp file with the preprocessed file (it will have all the #include<> statements expanded). Can the problem be still reproduced on a preprocessed file?
support
KeymasterHi,
That could do as well. Either way, if you decide to give MSBuild a try, let us know and we will help you set it up.
support
KeymasterHi,
That actually looks like our bug (the feature got disabled on non-Custom licenses). We have re-uploaded the preview 6 build, please update your installation.
August 16, 2017 at 22:34 in reply to: .cpp has changed since last build. Doing full analysis… #12082support
KeymasterHi,
Are you using VisualGDB 5.3? The previous version (v5.2) had a bug that considered every file with auto-discovered directories out-of-date and it caused very similar behavior.
support
KeymasterHi,
Please try downloading the latest VisualGDB 5.3 Preview 6. It supports importing STM32CubeMX projects automatically as shown in this tutorial: https://visualgdb.com/tutorials/arm/stm32/cube/
We may support out-of-the-box Keil importing in the next VisualGDB version (after 5.3), however we would not promise any timelines yet. Instead we made our project importer framework open-source and published to code for the STM32CubeMX and IAR importers, so any project formats not currently supported could be added easily (VisualGDB takes care of all the heavy lifting with synchronizing the changes and updating project files).
support
KeymasterHi,
It’s actually a bit more complex. If you are not familiar with the STM32 clock settings, please try using the STM32CubeMX tool to specify them graphically (see this tutorial for details). You can also try contacting Olimex for examples that work with their board.
-
AuthorPosts