Forum Replies Created
-
AuthorPosts
-
support
KeymasterThanks for the clarification. How do you import those examples into VisualGDB? Are you using the New Project -> Samples -> Use STM32CubeMX Examples setting, or a different mechanism?
support
KeymasterHi,
The examples like “Audio Record and Playback” come directly from ST, so we are usually not able to provide much insights into them (you might be able to get some hints from ST via their support forums) . That said, if it looks like VisualGDB is not automatically importing a file that is a part of the example, please let us know the exact example name and the device name and we will double-check this.
support
KeymasterThanks for confirming this. The issue might be caused by a recent change in the VisualGDB’s behavior when it cannot compute the full path to a source file on the windows side.
In version 5.3, VisualGDB would report the original path as shown by gdb and Visual Studio would show a prompt allowing you to locate the file manually. In one of the recent VS2017 updates, Microsoft changed their logic to display an error message instead, so we updated VisualGDB to simply ignore the frames referencing non-existing files.
Please try this build: http://sysprogs.com/files/tmp/VisualGDB-5.4.100.2733.msi
It will show the details about the frames with missing source files via View->Other Windows->VisualGDB Diagnostics Console. If you could share the output from the diagnostics console, we should be able to see what is going on and fix it.
You can also disable the new behavior via Tools->Options->VisualGDB->Common->Debug->Hide Missing Source Files.
support
KeymasterNo problem. The option is located under Embedded Frameworks -> Framework Configuration -> Profiler -> When running without debugger.
If you don’t see this setting, please update to VisualGDB 5.4 Beta 2 and install the latest version of the profiler framework via the VisualGDB Package Manager.
January 13, 2019 at 19:18 in reply to: Advanced CMake: Adding remote directories for IntelliSense #23406support
KeymasterNo problem. Let us know if you encounter any further issues and we will be happy to help.
support
KeymasterHi,
Sorry, this isn’t supported fully automatically, however there are a few workarounds.
First of all, you can configure the profiler framework (via the Embedded Frameworks page of VisualGDB Project Properties) to ignore semihosting calls when the debugger is physically not connected.
Second of all, please consider selecting the framework source files in Solution Explorer and setting the “excluded from build” flag (don’t confuse it with “Exclude from project” command). This will effectively exclude the semihosting-related logic from the release build.
support
KeymasterJust a separate UART port won’t be sufficient for live variables. Some logic on the BMP side would need to handle the “read memory at address XXX” commands via this port, do the actual reading via JTAG/SWD and return the result.
Alternatively, we can add an API similar to the custom real-time watch that will let your program report arbitrary values via a connection such as a COM port, so VisualGDB will plot them.
support
KeymasterHi,
There is no VisualGDB-specific command for this, however you might be able to use the mon flash erase_address command via the GDB Session window if the Espressif’s port of OpenOCD supports it properly (we haven’t tested it yet, sorry).
support
KeymasterHi,
This is actually supported through a different mechanism – custom per-user variables (see this tutorial and also host aliases). You will still need to check in the .vgdbcmake file into source control, but you won’t need to hardcode any per-user settings there. If this doesn’t work, please let us know and we will try to suggest a better way to achieve this.
support
KeymasterHi,
Yes, the Linux edition includes all of the features of the Embedded edition.
You can find a list of VisualGDB editions and features here: http://visualgdb.com/buy/
January 12, 2019 at 19:07 in reply to: Advanced CMake: Adding remote directories for IntelliSense #23391support
KeymasterYou can try using the Synchronized Directories page of VisualGDB Project Properties (Custom edition and higher). It allows linking a specific Linux directory to a specific Windows directory and defining the exact files that will be synchronized and the conditions for it.
However, the “go to definition” will only work for files that are a part of the project (VisualGDB cannot find a definition of a function in the .cpp file unless it knows the flags the file is built with so it can fully parse it). The easiest way to fix that would be to import the SDK sources into another VisualGDB-based project in the same solution (it doesn’t have to be fully buildable; as long as the source files are included into it and you specified the correct header directories, or let VisualGDB discover them with header discovery, it will be able to index the file contents).
support
KeymasterHi,
The importing settings look correct, so the macros should get imported properly. Please send your project file via our support form and we will check what is going on.
support
KeymasterHi,
Please use the context menu in Solution Explorer (right mouse click on the project name in the right part of the Visual Studio window). You can open Solution Explorer via View->Solution Explorer.
If you still cannot find it, please attach a screenshot of the entire VS window showing your project and we will highlight it for you.
support
KeymasterHi,
Sorry for the delay. We have fixed the SSH console problem (and many other stability issues) in this build: http://sysprogs.com/files/tmp/VisualGDB-5.4.100.2728.msi
Regarding the source files, please try closing the disassembly window and double-click in the call stack. Is the source shown correctly? If not, could you please attach a gdb log so that we could see what is going on?
support
KeymasterHi,
The behavior you are describing might have several different causes, so we would advise simplifying the project as much as possible in order to pinpoint this:
- First of all, try creating a fresh “LEDBlink” project for the same MCU/RTOS/compiler and check if the problem persists. If not, recheck your linker script, hardware settings (e.g. the use of timers) and special initialization functions.
- If you are using the Keil compiler, try checking if the problem persists with GCC.
- If you are using a RTOS (e.g. RTX), try checking if a similar project with no RTOS still has the problem.
- Try creating a single test() function that will wait for a second, call it in a loop and disable instrumentation of ALL other functions.
Let us know your findings and we will help you fix this.
-
AuthorPosts