Forum Replies Created
-
AuthorPosts
-
support
KeymasterHi,
Sorry, that would not work currently, as the ESP-IDF is not directly compatible with MSBuild (it depends on hardcoded file order and a few other constraints). We realize that ESP-IDF is frequently updated and are working on an experimental project subsystem similar to the Advanced CMake Project Subsystem that will be able to map native ESP-IDF projects directly into Visual Studio GUI, instead of importing ESP-IDF sources to MSBuild.
We expect to release a preview build with this subsystem in the next 2-3 weeks.
support
KeymasterHi,
Unfortunately this is also a known limitation of the ESP32 debugging that comes from the Xtensa toolchain (the ESP32 devices are not based on the ARM core; this helps reducing the price, however makes impossible to use the mature ecosystem of the ARM tools). Please feel free to look through the post covering other limitations of the ESP32 toolchain and known workarounds: https://sysprogs.com/w/limitations-of-the-esp32-debugging/
The recommended workaround is to always have a top-level wrapper function in every thread.
support
KeymasterHi,
Thanks, yes, if you could send us a repro case, we should be able to fix it easily.
BTW, please try deleting the ImplicitCompilerFlags.xml file and reopening the project – unless you do that, VisualGDB will reuse the incorrect flags cached by the previous version.
support
KeymasterHi,
Please ensure you are using the latest VisualGDB 5.3R8. It includes special logic for handling this – if you run any command that output “Loaded symbols for <…>” via the GDB session window, it will automatically re-query and update the call stack.
support
KeymasterHi,
Normally you don’t need to specify anything manually if you use the new “Debug a crash dump” command. If you still get the error when using this command, please let us know.
support
KeymasterHi,
This looks like VisualGDB fails to initialize and the service configuration is preventing it from displaying the error message properly (likely due to missing per-user configuration files). Please try temporarily configuring the service as an interactive service so that you can see the VisualGDB error messages). Please also ensure you run VisualGDB from the same user account that you used to configure it (toolchain definitions and other settings are stored separately for each user).
support
KeymasterHi,
You do need to use the same target-specific gdb that you use for regular debugging. If you are using VisualGDB 5.3, you can actually open a core dump file by right-clicking on the project and selecting Debug->Debug a Crash Dump. This will automatically reuse the GDB and other settings from your project settings.
support
KeymasterHi,
Sorry, we didn’t mean to make it confusing. The lightning icon is actually a standard VS icon for events, so we reused it in VisualGDB.
You can also use the Debug->Exceptions menu (VisualGDB displays Linux signals there), although the VisualGDB-specific window provides more control over the way signals are handled.
support
KeymasterHi,
The ESP32 flashing is unfortunately indeed unreliable. It is provided by the Espressif’s ESP32 OpenOCD port, so we would advise double-checking with Espressif whether they have a hotfix for this.
We have rebuilt the OpenOCD executable using the latest patches from them here: http://sysprogs.com/files/tmp/openocd.exe; feel free to try replacing the OpenOCD binary in the toolchain directory with it (we have not fully tested it yet).
The issue with the variables is caused by the optimization. Using any other optimization level than -O0 makes GCC optimize out some variables, however using -O0 to build ESP-IDF code results in crashes during startup. As a workaround please try setting the optimization level to -O0 for specific files you want to debug (via the regular MSBuild File Properties). This should keep the ESP-IDF framework in a usable state, while providing full debug functionality for your code.
If you encounter any further problems, feel free to contact us again and we will help you resolve them.
support
KeymasterHi,
GCC and Keil compilers are indeed not 100% compatible, so switching your project to a different compiler might require non-trivial adjustments. We only recommend using Keil with VisualGDB if you are trying to build existing Keil-specific code. For all other cases we recommend using our GCC-based toolchain that is fully supported by all project types and works out-of-the-box.
support
KeymasterHi,
You can set the linker script via the MSBuild Settings page of VisualGDB Project Properties (the last setting on that page).
support
KeymasterHi,
Please use the “Signals & Exceptions” button in the GDB Session window. It allows overriding which of the signals are passed to the program.
Please note that disabling stops on SIGINT may stop breakpoints in your program from working, as they internally rely on catching this signal.
support
KeymasterHi,
Thanks for confirming this. Most likely the template was created from a stand-alone project and hence all projects created from this template will also be stand-alone.
You can turn semihosting off for stand-alone projects by manually editing the LDFLAGS, although the exact options to add or remove depend on the toolchain version you are using, although it might be non-trivial to find the right combination of flags. Normally we would advise re-creating the template from a non-standalone project. Then VisualGDB will let you conveniently change all settings via simple GUI menus for all projects created from this template (it will also automatically update the settings when you upgrade to a newer toolchain).
Also normally you don’t need to disable the semihosting – as long as your code doesn’t call printf() and other similar functions, the semihosting-related functionality will be automatically excluded from the project by the linker.
support
KeymasterHi,
Thanks for clarifying this. We have double-checked the advanced CMake projects with yocto-based toolchains and it indeed looks like VisualGDB might ignore the environment file for some of the tests.
Please try this build: http://sysprogs.com/files/tmp/VisualGDB-5.4.1.2062.msi
support
KeymasterHi,
Thanks for clarifying this. The project structure of the VS cross-platform projects is different from the Win32 projects, so simply adding the VisualGDB platform to them would unfortunately produce unpredictable results.
We would advise importing the project using the VisualGDB project wizard. This will re-create the project file with all the necessary constructs and will discover and add the source files from the project directory.
-
AuthorPosts