Forum Replies Created
-
AuthorPosts
-
September 29, 2021 at 08:38 in reply to: error "multiple definition" in a project with type GNU Make #31416
support
KeymasterHi,
If you prefer using GNU Make, you can always patch the Makefile to change its layout and support multiple folders, however it is something for you to setup and test.
On our side, we have designed the MSBuild-based and CMake-based projects specifically to address numerous shortcomings of GNU Make, and advise using them instead.
MSBuild is fully compatible with CI/CD – you can simply generate a batch file with all commands: https://visualgdb.com/documentation/projects/msbuild/#standalone (although you would need to programmatically replace absolute paths in it and in the .rsp files).
support
KeymasterHi,
The IsRunningUnitTests() function is a run-time check, rather than a compile-time one. If you have trouble finding it, please try following our unit test tutorial with exactly the same device and framework as shown (you don’t need to run the code) and use Go-to-definition to locate it. You will then get a reference point that can be easily compared against your project.
If following the tutorial doesn’t work, please attach the relevant screenshots showing the difference, and we will try to help you.
support
KeymasterHi,
This means that VisualGDB is working as expected – it is resetting the device. It is hard to say why a particular program would not be working after a soft reset. You can try ensuring that the reset works for a basic “Blinking LED” program, and then comparing it side-by-side with your one, until you find what is causing the difference. If you prefer, we can also gladly do it for you via a screen sharing session billed at our consulting rate. Feel free to contact our sales if you would like to get more details.
support
KeymasterHi,
Most likely, your program has a non-trivial structure, and injecting the instrumenting logic in it breaks something. You can troubleshoot it by configuring VisualGDB to stop directly at the entry point (VisualGDB Project Properties -> Embedded Debug Tweaking -> Step into new instance) and then stepping through the initialization code to see what is going on.
Another option would be to compare the <ProjectName>_instrumented.elf with the original ELF file produced by the project (e.g. using objdump) and double-check that the inserted instrumentation-related sections don’t overwrite anything.
You can see the log explaining the placement of the instrumentation sections by enabling View->Other Windows->VisualGDB Diagnostics Console before launching a debug session.
September 29, 2021 at 08:16 in reply to: Your Visual Studio installation appears to be missing Visual C++. #31412support
KeymasterHi,
VisualGDB indeed requires the Visual C++ for Desktop Development in order to create most project types, as shown in the documentation page you linked. If you are not able to install it, please consider contacting Visual Studio support for help.
September 28, 2021 at 13:08 in reply to: error "multiple definition" in a project with type GNU Make #31397support
KeymasterHi,
This is not supported for Makefile-based projects. Please consider using CMake or MSBuild instead.
support
KeymasterHi,
No problem. You can review what is going on by enabling the gdb logging as shown here. Normally, if you do not program the device each time, VisualGDB will simply reset it using the “mon reset init” command.
Please try checking the gdb log file and make sure it contains the reset command. If not, please ensure one of the reset checkboxes is set in VisualGDB Project Properties -> Debug Settings.
If the reset command is present in the log file, please try running it manually and checking if it manages to reset the device correctly.
support
KeymasterHi,
Indeed, the MSBuild-level properties are separate from the VisualGDB variables and are not automatically inherited.
The easiest way to achieve what you have described is to programmatically generate an MSBuild property sheet defining the necessary variables. You can reference the property sheet from one or more projects, and can invoke the tool generating it as a custom pre-build step.
Another option would be to simply generate a header file with the relevant definitions, and include it from the projects.
support
KeymasterUnfortunately, it is hard to suggest anything specific based on the description you provided.
In order for us to provide any help with this, we need to be able to reproduce the problem on our side.
Please provide complete and detailed steps to reproduce the issue as described below:- The steps should begin with launching Visual Studio. They should include every step necessary to create the project from scratch and reproduce the issue.
- Please make sure the steps do not involve any 3rd-party code as we will not be able to review it. If the problem only happens with a specific project, please make sure you can reproduce it on a clean project created from scratch.
- The steps should include uncropped screenshots of all wizard pages, VisualGDB Project Properties pages and any other GUI involved in reproducing the problem. This is critical for us to be able to reproduce the problem on our side.
You can read more about the best way to report VisualGDB issues in our problem reporting guidelines, If you do not wish to document the repro steps and save the screenshots, please consider recording a screen video instead and sending us a link to it.
Please note that many VisualGDB issues are caused by selecting an incompatible combination of settings at some point. We are generally not able to review specific projects and find the specific settings that were set incorrectly. We recommend checking the projects into source control and keeping a track of all changed settings to avoid breaking the projects.
support
KeymasterThanks for clarifying this. If the toolchain is not based on GCC, you can simply create a custom Makefile for building your code and import it into VisualGDB as an externally built project. This way VisualGDB will simply invoke make with the specified arguments to build the project and won’t care that the underlying tools are not based on GCC. If the tools report error messages in a non-typical way, you can tweak VisualGDB to recognize them by editing %VISUALGDB_DIR%\Rules\RegularExpressions.xml.
On the debugging side, if the vendor provides a gdb executable for their platform, you can use VisualGDB to debug the code by overriding the gdb path via VisualGDB Project Properties. If they use a completely proprietary debugging protocol, we can still add support for it as a custom paid feature, but it would be a rather complex one.
support
KeymasterHi,
We provide out-of-the-box integration for mainstream devices with many active users, however this looks like a much more niche device with a smaller user base. Hence, we will not be supporting it directly unless some of our users agrees to directly cover the cost of integrating VisualGDB with it.
That said, VisualGDB is designed to be very flexible. If the device vendor provides a GCC-based toolchain, you can simply import it into VisualGDB by using the import link in the toolchain selector. Then, you can follow this tutorial to manually specify the compiler flags and locate the driver files necessary for that device. This way you can enjoy most of the VisualGDB functionality even if the device is not directly supported by us.
support
KeymasterHi,
Thanks, we have confirmed the issue and released an updated toolchain resolving this (R5).
Regarding OpenOCD, our build is indeed based on a slightly later Git revision than the official binary release, so it might work a bit better. Although the credit goes to Espressif – our changes to OpenOCD are related to better integration with VisualGDB and don’t affect the device-specific part at all.
support
KeymasterHi,
Sorry it took longer than expected with the CC3220 update, as the amount of changes to the SDK was a bit more than we anticipated. We have just released an updated BSP based on the latest SDK 5.20. You can install it conveniently via VisualGDB Package Manager.
September 24, 2021 at 08:05 in reply to: GDB Timeout with commands break-insert and stack-list-frames #31371support
KeymasterHi,
No problem, please refer to the following page for more details: https://visualgdb.com/documentation/gdb/frozen/
support
KeymasterNo problem. Please try this build: VisualGDB-5.6.5.4379.msi
The regular outline still shows the hierarchical structure of the source file, but you can now switch the detail view to show a plain list of all symbols, rather than local references or structure.
BTW, the Globals view in Code Explorer is extremely optimized. It can show a huge number of symbols, and allows quickly filtering them by names or types. It can also track things like references between types (e.g. all types that have fields of type X) or functions allocating/deleting types (i.e. recognizing patterns like (Type *)malloc(…)). If you haven’t checked it out yet, it’s worth a try.
-
AuthorPosts