Forum Replies Created
-
AuthorPosts
-
October 12, 2023 at 08:57 in reply to: cmake not building corretly when used outside of my visualGDB project #34831supportKeymaster
Sorry, there is no quick fix. If you would like to port a CMake-based project to run outside VisualGDB, you will have to learn CMake. If you do not wish to do it, just keep using VisualGDB so that it will handle it for you 🙂
supportKeymasterThis means that at some point some settings in the project were changed to hardcode the toolchain paths, and regenerating the MCU files reset those settings. Without knowing what exact settings were changed, it is not viable to suggest anything meaningful.
supportKeymasterHi,
The embedded unit test projects are completely separate from other projects. So just including a header file from a different project will not work in most cases. You would need to also have the correct preprocessor macros, include paths, sources, libraries and other relevant settings.
It is not specific to VisualGDB or unit tests – a good starting point would be to create a new embedded application (non-test) from scratch, move the relevant sources there and fix the build errors. Once you get it working, the same steps will work for a unit test project.
October 11, 2023 at 10:35 in reply to: cmake not building corretly when used outside of my visualGDB project #34817supportKeymasterHi,
The easiest way to get it working would be to use exactly the same CMake command line that is used by VisualGDB. You can export it into a batch file (together with the relevant environment) as shown here.
supportKeymasterHi,
Different GCC versions use slightly different optimization logic, so it’s fairly common for a GCC update to trigger previously dormant bugs in the code.
You can try using the new Live Tracing functionality in VisualGDB 6.0 – it can record various function calls on both old and new versions of the firmware into trace files, where you can compare them side-by-side. It won’t directly show the root cause, but it will point to the moment in time when the behavior starts being different.
supportKeymasterHi,
Please let us know the email address associated with your license key so that we could check your support status.
supportKeymasterHi,
All we can see from this error message is that a legacy project (non-MSBuild and non-Advanced-CMake) did not build.
Normally, the errors window or the build log should contain other error messages that should explain what is going on.
supportKeymasterHi,
In our environment, the Raspberry Pi just automatically picked up the date via NTP, so no adjustment was necessary.
If the time sync doesn’t work for you, we would advise investigating and fixing it first. Changing target system time during builds could cause much more problems than it would solve, so we would not advise doing that.
supportKeymasterHi,
If it is a generic Eclipse project (not STM32CubeIDE), VisualGDB won’t be able to import it automatically. Instead, we would advise using the generic import mode of the Embedded Project Wizard to pull all the project sources into a new Visual Studio project. Then, you would need to manually transfer the build settings (list of include directories, preprocessor macros, and device-specific flags).
When importing the project, you can select “specify flags manually” on the MCU selection page (see this tutorial) and later use the first page of VisualGDB Project Properties to specify the device-specific settings. If you use Advanced CMake, you can later export the custom BSP into a reusable package and use it to create new projects easier.
With J-Link, VisualGDB caches the device list in the %LOCALAPPDATA%\VisualGDB\EmbeddedDebugPackages\com.sysprogs.arm.segger-dmsp\DeviceList.txt file. You can either delete it to have VisualGDB re-query the device list, or just patch it manually. You can also bypass it completely and edit the J-Link command line manually via the Advanced view in the VisualGDB Settings.
supportKeymasterHi,
Please try updating to the latest VisualGDB 6.0 Beta 2. If the problem persists, please let us know.
supportKeymasterHi,
VisualGDB supports 2 types of custom build steps:
- First of all, you can add custom build steps by editing the build files of the underlying build system (e.g. Makefiles for GNU Make or CMakeLists.txt for CMake). The exact way to do it depends on the underlying build system (Make, CMake, MSBuild, Arduino, etc).
- You can also use the VisualGDB GUI to add custom pre-build/post-build actions. I.e. VisualGDB will execute arbitrary command lines, transfer files, etc. before or after build. These are defined globally (not per-file) and can be configured via VisualGDB Project Properties -> Custom Build Steps. This feature requires the Custom edition or higher, so if you are using a lower edition, you can upgrade it here.
supportKeymasterHi,
Such behavior is usually configured via the sdkconfig parameters. VisualGDB provides a GUI for editing them on the first page of VisualGDB Project Properties, although the exact settings are defined by the ESP-IDF and do not come from VisualGDB.
If you need help locating a specific sdkconfig setting, feel free to ask on the Espressif forums. If you can confirm that the setting works when edited manually but is not working with the VisualGDB GUI, feel free to let us know and we will investigate.
supportKeymasterHi,
It could be related to paths or missing libraries on the target. You can use the View->Other Windows->VisualGDB Diagnostics Console window to see the exact gdbserver command line used by VisualGDB (e.g. cd <directory> && gdbserver <…>).
Then, try running it remotely via SSH from another machine:
ssh <username>@<deployment machine> <gdbserver command line>
If you get a similar error, please double-check that the executable is compatible with the target and included in the PATH.
supportKeymasterHi,
VisualGDB tries to use gdbserver if the project is built on one machine and deployed to another one. You can double-check it on the first page of VisualGDB Project Properties.
supportKeymasterSorry, works just fine on our side, after removing references to the headers you didn’t attach.
Such issues are practically always caused by something very subtle in some very rare place (e.g. a specific overridden #define or edited file) and are impossible to troubleshoot without pulling them apart as we described earlier.
Attachments:
You must be logged in to view attached files. -
AuthorPosts