Forum Replies Created
-
AuthorPosts
-
support
KeymasterHi,
Please follow our Semihosting tutorial to get familiar with the related settings and mechanisms.
BTW, we have over 300 different tutorials showing various aspects of VisualGDB and the supported targets, so if you don’t feel comfortable with some VisualGDB features or settings, feel free to search and follow other relevant tutorials to get back on track.
support
KeymasterHi,
Please try switching the GDB Session window to the “All GDB Interaction” mode and then enable the timing view (clock icon). It will show how much time each gdb command took. Please try locating the command responsible for the delay and let us know if you need help understanding its role.
You can also configure VisualGDB to create a diagnostic log of all commands (including their timing) as shown here: http://visualgdb.com/support/logsubmit
support
KeymasterThe older versions of VisualGDB would indeed only show updates to packages (e.g. OpenOCD), but not the updates to VisualGDB itself. Either way, downloading and installing VisualGDB 5.4 manually should work perfectly fine (there is no need to uninstall the previous version – the installer will update it automatically).
support
KeymasterHi,
The reset button would normally issue a reset command to the device, but if it was stopped in a debugger before, it would not take effect until the debug session is resumed by pressing F5.
Please try this build: VisualGDB-5.5.1.3257.msi
We have added an option that allows resuming the session automatically after issuing a reset: Tools->VisualGDB->Embedded->Other->Resume Target After ManualReset.
September 16, 2019 at 02:12 in reply to: Embedded Memory explorer uncorrect memory name visualization #25811support
KeymasterHi,
Please ensure you are using the VisualGDB Project Properties -> External Memories page for defining the external memories. This mechanism automatically updates the memory layout definition used by the Embedded Memory Explorer.
We are also working on experimental support for parsing the linker scripts and detecting custom modifications to the memory list, however it will take a few weeks before we release a preview build with this functionality.
September 15, 2019 at 16:16 in reply to: ESP32: Not possible to create valid empty esp32 arduino project #25810support
KeymasterThanks for checking this. It looks like the low-level Arduino tools fail to build the project due to some missing components, and hence VisualGDB fails to load the code model (leading to the missing Arduino.h).
We have just rechecked everything on a clean machine (re-downloading Arduino ESP32 package 1.0.1) and the build had succeeded, so the issue is caused by some broken component on your computer. Please consider temporarily moving out the Arduino directory (and removing all directories mentioned in the command line from the output window) to fully reset the Arduino-related state.
If nothing helps, please ensure you can build a newly created sketch with Arduino IDE. If this is the case, please follow the steps below to pinpoint the difference between the 2 IDEs causing the issue:
- Please try running the build command line shown in the output window manually (from the Command Prompt window) and confirm that the problem still exists.
- Then try creating/building a basic sketch using the Arduino IDE and check the command line used by it (you can capture it using Process Monitor).
- Try running the working command line from the same command prompt window and ensure it results in a successful build.
- Adjust the successful command line to use VisualGDB’s version of the arduino-builder.exe and ensure it works.
- Try comparing the 2 command lines and running combinations of them to pinpoint a specific argument that causes the problem.
If it still doesn’t help, please share your findings (e.g. the exact command lines and their outcomes) and we will advise you further.
support
KeymasterHi,
Please try using VisualGDB Project Properties -> Embedded Frameworks. This page allows automatically referencing many commonly used frameworks from the STM32 ecosystem (the corresponding sources and settings will be automatically added to the project). Note that the filter on that page also allows searching for frameworks providing a specific source file or a preprocessor macro.
For libraries that are not available as embedded frameworks, VisualGDB offers 2 mechanisms:
- Right-click in Solution Explorer -> Add -> Import Folder Recursively. This will import the entire folder into the project, and optionally add directories of all header files to the header search path.
- Header discovery can semi-automatically locate the headers as you reference them and update the project settings accordingly.
If it doesn’t help, please let us know more details on what you are trying to accomplish and we will suggest a better technique.
September 14, 2019 at 15:55 in reply to: ESP32: Not possible to create valid empty esp32 arduino project #25803support
KeymasterHi,
Please try temporarily removing the package directories and creating a new project via the VisualGDB Arduino Project Wizard. This should re-download the necessary packages and get everything to work.
If not, please check the Output window (not just error list) – it should contain a detailed build log, providing more details about the cause of it (most likely some other component is missing or corrupt and the Arduino builder tool should mention it in the log).
support
KeymasterHi,
No problem. VisualGDB actually provides a few mechanisms specifically aimed at simplifying the workflow for multiple users:
- In order to remove the user-specific host/user names from the settings files, please consider defining host aliases (e.g. “Main build machine”) referencing them from the project settings instead (see this tutorial).
- Please consider moving other user-specific settings to custom per-user variables (see this tutorial). The values of the variables will be stored separately in the .vgdbsettings.<username>.user files, so you can avoid checking them into source control.
You may also find the team settings useful for quickly deploying common configuration parameters to multiple computers in your team.
That said, this will address the settings in the .vgdbsettings files. If you believe the .vcxproj files also contain some user-specific values, please let us know the details and we will try to suggest a way to handle them as well.
September 13, 2019 at 04:03 in reply to: Calling to FastSemihosting from interrupts before initialization finished loops #25797support
KeymasterHi,
No problem, we have published an update to the profiler framework that introduces a new setting: Disable interrupts during semihosting operations.
Please try updating the framework and then set the new option to “Yes” in order to automatically disable interrupts during the execution of WriteToFastSemihostingChannel().
September 12, 2019 at 17:13 in reply to: "When running without debugger" option doesn't work as intended #25794support
KeymasterNo problem and thanks for checking this.
Looks like the default implementation of CanInvokeSemihostingCalls() will indeed not work in this scenario, however you should be able to work around it using some advanced scripting:
- Define a global variable (e.g. int g_DebuggerAttached).
- Create an implementation of CanInvokeSemihostingCalls() that will check the global variable and set the “When running without debugger” setting to “Use a custom function to decide”.
- Create a noinline function with a “nop” statement and call it from main()
- Create a GDB script file that will add a breakpoint in the empty function and run the “set g_DebuggerAttached 1” command when the breakpoint is hit (see this page for details).
- Add “source <gdb script file>” to VisualGDB Project Properties -> GDB Commands -> Commands after selecting target.
This won’t be as flexible as using the ARM Cortex registers (e.g. it won’t detect when a debugger is detached after starting the program), however it should allow distinguishing between starting a new debug session and just resetting the device without a debugger.
support
KeymasterHi,
This looks like a question specific to the ESP-IDF implementation and not VisualGDB itself. Please check the ESP-IDF documentation and/or contact Espressif for further help with ESP-IDF-specific issues.
support
KeymasterHi,
You can use the Debug->Windows->Registers command to show the CPU registers window.
The peripheral registers shown by VisualGDB are ordered according to their physical address (i.e. exactly the same order as they appear in the memory space). If you would like to quickly locate a set of specific registers, please try using the filter field and then marking the registers as favorite.
support
KeymasterGood to know it works. We are also planning to release a fully integrated version of this toolchain (including ESP-IDF 4.0) together with the upcoming VisualGDB 5.5 Preview 1 (the internal structure of ESP-IDF 4.0 has changed compared to 3.x, so we are updating VisualGDB to accommodate those changes).
support
KeymasterHi,
This is something managed by the ESP-IDF itself rather than VisualGDB. Please check with Espressif whether the ESP-IDF version you are using supports C++17 and whether there is a configuration option that enables it.
-
AuthorPosts