Forum Replies Created
-
AuthorPosts
-
support
KeymasterHi,
Sorry for the delay with updating IntelliSense. In the past year we have been working on a new software tracing engine that allows recording the values of various variables at arbitrary moments without disrupting the program. It allows easily debugging issues that would otherwise be impossible to reproduce under debugger, or that would require excessive amount of stepping and note-taking. So, we prioritized it over the IntelliSense engine update.
We have recently released VisualGDB 6.0 Beta 1 introducing the tracing engine, and are working on another update to it.
IntelliSense update is the next thing on our plan and we expect to release another Beta using the latest Clang in September.
As a workaround until then, please consider adding “-std=c++17” to VisualGDB Project Properties -> IntelliSense Settings -> Additional flags for C++ files. It will allow IntelliSense to recognize C++17 features even if the underlying build system reports that it’s using C++20.
support
KeymasterHi,
You might be able to get VisualGDB running under the local system account by manually copying the files and registry keys, however it is not officially supported. There is some information here, however it may not work, or may work differently dependent on your configuration.
A better approach would be to use a floating license for the build server. It will count the number of simultaneously active machines instead of concurrent installations, so you can have as many computer/user combinations as you need without needing to activate them separately. Feel free to contact our sales if you would like to switch your license into a floating one.
support
KeymasterHi,
We are not aware of this issue. It can be caused by a VS bug, interference with another plugin or something else.
Please try checking if the problem persists on a clean project created from scratch. If no, please try to understand the differences between the clean project where the issue happens. It could be triggered by a specific setting.
You can also try recording a video showing the problem on an existing project – if it’s something obvious, we will point it out.
support
KeymasterHi,
This sounds like a very specific task. You should be able to do it via some clever scripting and custom CMake targets, but it’s not something VisualGDB has a direct GUI for.
support
KeymasterHi,
The –set-section-alignment argument is used by MSBuild projects to align the embedded bootloader to the specified boundary. You can find the implementation details in the <VisualGDB directory>\MSBuild\Targets\binary.targets file.
If you are using an older toolchain that doesn’t support it, you can either try patching binary.targets to remove the -set-section-alignment part, or simply copy arm-none-eabi-objcopy.exe from a newer toolchain. Objcopy is only used for translating between various file formats (ELF/HEX/binary) and won’t affect the output of the compiler.
support
KeymasterHi,
@GeneM, it is hard to say why you would end up with 2 copies of the same BSP. VisualGDB has a mechanism for relocating the BSPs, leaving links to the new location behind, so it could be that you somehow triggered that one. Either way, the best way to get a clean BSP would be to close VS, delete %LOCALAPPDATA%\VisualGDB\EmbeddedBSPs\arm-eabi\com.sysprogs.arm.stm32, and install the BSP again.As for the old VisualGDB versions, you can download them here: https://visualgdb.com/download/oldversions
@bjornharink, thanks for the screenshot. It looks like you are using the Advanced CMake subsystem (that is the recommended way) that uses the toolchain path to cache toolchain-specific directories. If you installed the new toolchain in the same directory, it would indeed try to use old cached paths. The workaround is very straight-forward: just delete the <project directory>\.visualgdb subdirectory and reopen the solution. We have also fixed it on our side, so VisualGDB will now check both the toolchain version and the toolchain directory when deciding whether to reuse the cache.support
KeymasterHi,
Thanks for sharing your feedback.
Most ESP-IDF releases indeed require a specific toolchain version and show an error message otherwise. This is exactly the reason why have separate prepackaged toolchains, each bundled together with a compatible version of ESP-IDF. The “debug methods” package (which is actually just OpenOCD) is usually backwards-compatible with older ESP-IDFs, hence it is shipped and installed separately (under %LOCALAPPDATA%\VisualGDB\EmbeddedDebugPackages\com.sysprogs.esp32.core).
We also have a documentation page explaining how different components of the ESP32 tooling work together, and how to troubleshoot (and avoid) most common problems. If you keep running into issues with every ESP32 update, please take your time to look through it – we made it based on the most common issues our users ran into, and it will save you a lot of troubleshooting time.
As for the project rebuild, normally just doing a “Build->Rebuild Solution” should automatically clean up the references to the old toolchain. This will work even if the project fails to load and shows an error message in Solution Explorer (unless the project was modified to reference specific things from the old toolchain). If you had to remove the build directory multiple times, something else (e.g. antivirus) might be interfering with the build.
support
KeymasterHi,
Thanks for renewing your license.
VisualGDB sets the IDF_PATH value based on the toolchain and ESP-IDF version selected in VisualGDB Project Properties -> ESP-IDF Project.
If your existing project stopped working after switching to a new toolchain, we would advise creating a new project for the new toolchain/ESP-IDF, making sure it works, and then using a diffing tool to compare the settings files (.vgdbcmake, sdkconfig, etc.) between the 2 projects.
You can also find detailed overview of the ESP-IDF project structure and troubleshooting tips here: https://visualgdb.com/documentation/espidf/
support
KeymasterUpdate: the BSP has passed all our internal tests and has been released. You can download it via VisualGDB Package Manager as usual.
support
KeymasterThanks, we have rechecked stddef.h on Advanced CMake, but it looked just fine. Could you please attach a screenshot of the entire Visual Studio window, showing the error and the Solution Explorer window as well?
Regarding the “not implemented” warnings, it appears to be a feature of the new toolchain to warn you about these functions, however it does not indicate any actual error. We have updated our documentation here, explaining what causes it, and known workarounds.
support
KeymasterHi,
Could you please let us know the build subsystem you are using? Is it GNU Make, CMake or MSBuild?
support
KeymasterHi,
It looks like your technical support period has expired. We would be happy to help you, however we would kindly ask you to renew your technical support on the following page first: https://sysprogs.com/splm/mykey
July 24, 2023 at 10:22 in reply to: VisualGDB fails to upload compiled sketch using Picoprobe CMSIS-DAP #34509support
KeymasterHi,
Good to know it works. The exact path of platform.txt depends on how the package was installed (different Arduino IDE variants use different directories), but as long as you found the file, it should work just fine.
The Program and Start without Debugging is not a setting in VisualGDB Project Properties, it’s a command under the Debug menu in Visual Studio.
July 23, 2023 at 10:07 in reply to: VisualGDB fails to upload compiled sketch using Picoprobe CMSIS-DAP #34505support
KeymasterHi,
Thanks for reporting this. It looks like the RP2040 platform definition uses a slightly unexpected syntax for the upload command template: program {{build.path}/{build.project_name}.elf} expecting it to expand to program {full-path.elf}.
Other platform definitions we checked used the “{{” to escape the “{” character, i.e. program {{{build.path}/{build.project_name}.elf}}.
Normally, you should not need this command at all – simply configure OpenOCD via VisualGDB Project Properties -> Debug Settings, and use Debug -> Program and Start without Debugging to program the FLASH memory using the VisualGDB-level commands.
If you would like to use the Arduino-level commands, you can also patch the C:\Users\<user>\Documents\ArduinoData\packages\rp2040\hardware\rp2040\<version>\platform.txt file by inserting the extra “{” and “}” to make it consistent with other platforms:
tools.picoprobe_cmsis_dap.upload.pattern="{cmd}/bin/openocd" -f "interface/cmsis-dap.cfg" -f "target/rp2040.cfg" -s "{cmd}/share/openocd/scripts" -c "adapter speed 5000" -c "program {{{build.path}/{build.project_name}.elf}} verify reset exit"
Please make sure you reload the project after patching the file.
We will consider updating VisualGDB to handle it automatically, however as we want to minimize the chance of breaking other platforms, and as there are 2 easy workarounds, we will wait for feedback from other users before updating it on VisualGDB side.
support
KeymasterHi,
Sure, you can use the per-user variables as shown below
- Set the default value to the normal location.
- Try redefining it for your own user account and check the <Project>-<Configuration>.vgdbsettings.<User name>.user file where VisualGDB would store the per-user value.
- Update the Jenkins build script to generate a similar .user file (with the user account name used by Jenkins, try “echo %USERNAME%” if not sure) with the correct per-build value.
If you are not planning to use any other per-user settings, you can also use the following syntax when generating the .user file (instead of XML):
#comment VariableName1 := VariableValue1 VariableName2 := VariableValue2
-
AuthorPosts