Forum Replies Created
-
AuthorPosts
-
support
KeymasterHi,
We understand your frustration and agree that this is important, so we will try to give more context on this.
There are 2 popular low-level debug tools for modern ARM devices: OpenOCD and Segger J-Link.
- OpenOCD is free and works with many inexpensive debug probes like ST-Link, however it has some glitches and is not as user-friendly.
- Segger J-Link software requires a more expensive J-Link probe, but its low-level gdb stub is fully supported by the probe manufacturer, explicitly tested with many devices and is generally much more reliable.
With VisualGDB we don’t aim to replace any of those 2 low-level methods. Instead we build on top of them, focusing on usability features like easy project configuration, profiler, real-time watch, live variables, etc. We also provide easy setup GUI for OpenOCD that automatically detects and configures common setups, but this approach still inherits various glitches for advanced scenarios like the one you are encountering. We could address it by making a “bulletproof” fork of OpenOCD, however making it as reliable as J-Link would raise the product costs accordingly. Instead of doing that, we maintain out-of-the-box support for both debug methods and let our users choose between more reliable J-Link and free OpenOCD.
Hopefully this explains.
Thanks.
support
KeymasterHi,
No problem, we have submitted a ticket to the OpenOCD bugtracker: https://sourceforge.net/p/openocd/tickets/165/
support
KeymasterHi,
We have managed to reproduce the problem with the Eigen natvis file. It is caused by VisualGDB not supporting the $Tx syntax and the multi-dimensional ArrayItems.
We have added support for the $Tx syntax to the upcoming maintenance release, however we currently don’t have any plans for supporting multi-dimensional arrays. As a workaround we would advise creating a basic visualizer using our managed visualizer API described here. It allows using arbitrary logic for analyzing visualized expressions and would support multi-dimensional arrays as well.
support
KeymasterHi,
VS IntelliSense has its own logic for defining __cplusplus that is hard to control from the VisualGDB level. You could try overriding it by adding the following code to some common shared header:
#ifdef _MSC_VER #define __cplusplus <value> #endif
However this may cause strange IntelliSense errors as the VC++ IntelliSense is not 100% compatible with GCC-specific extensions. We generally recommend using Clang IntelliSense as it is specifically designed for better compatibility with GCC extensions.
support
KeymasterHi,
We actually have a detailed tutorial showing how to import 3rd-party Linux projects build with command line: https://visualgdb.com/tutorials/linux/import/ (it features an older VisualGDB version though).
Please try following it and let us know if you encounter any problems.
support
KeymasterHi,
This indeed looks strange. Please try saving and deleting the following registry key:
Computer\HKEY_CURRENT_USER\Software\Sysprogs\VisualGDB\Settings\CppEngine
It should reset VisualGDB settings related to code formatting & indentations.
support
KeymasterHi,
OK, there are actually 3 different preprocessor macros related to the standard:
- __cplusplus
- __cpp_attributes
- __STDC_ISO_10646__
Please double-check that you are actually comparing the values of the same macro between the actual IntelliSense, IntelliSense.props and the gcc output. Also if you are using the Visual C++ IntelliSense (not Clang), it will set its own value of __cplusplus and modifying it would break IntelliSense (as it would include code paths using features that are not implemented by the VC++ IntelliSense).
Please also attach a screenshot showing the incorrect IntelliSense behavior, so we could check if it could be caused by anything else.
support
KeymasterHi,
This could happen if the gdb stub you are using did not report the registers correctly or if VisualGDB did not parse them properly (our plugin for Segger J-Link had a bug with the registers, but it got fixed years ago). Please let us know which gdb stub you are using and also attach:
- A screenshot of the registers window with the right-click menu
- Your VisualGDB version and build number
- The full GDB log from the debug session as described here
Thanks.
support
KeymasterHi,
Please try running the following command manually in the GDB session window:
dump binary memory <file> <start address> <end address>
support
KeymasterHi,
Please try using #ifdef DEBUG.
support
KeymasterHi,
Most likely some of your headers defines #unix if it detects GCC/clang being used.
Please try checking this on a clean project and/or using ‘go to definition’ on the ‘unix’ macro to locate where it is defined.support
KeymasterHi,
Please try right-clicking there and selecting the register groups you need.
support
KeymasterHi,
If you are using a Custom edition or higher, you can simply add a custom pre-build action.
Another option would be to add a custom Makefile target or a cutsom MSBuild target. We don’t have an example specific to protobuf, however you can try following our tutorial for building Qt projects with MSBuild for a detailed example on creating custom MSBuild rules and targets.
support
KeymasterHi,
You could have a look at our open-source BSP generators. However please note that they come with absolutely no support of any kind. Newer SDK releases often include breaking changes that stop the BSP generators from working. We usually address them when we release the updated BSP, however we cannot provide any support if you want to try doing this before we start supporting that SDK officially.
support
KeymasterHi,
This looks pretty strange. Perhaps some code above is confusing VisualGDB? Can you reproduce the same behavior in an empty file? If not, could you reduce the problem to a specific statement above the cursor that causes this?
-
AuthorPosts