Forum Replies Created
-
AuthorPosts
-
November 10, 2023 at 07:27 in reply to: VisualGDB trial not setting up ESP32 environment correctly? #34957
support
KeymasterHi,
VisualGDB does not update the system-level variables in order to avoid interfering with other tools. Instead, it sets them for just the process it’s launching to configure and build the project.
You can actually dump the configuration and build command lines to batch files, that show all the environment set by VisualGDB, and can be executed manually in order to simplify troubleshooting things. See this page for details.
If changing the variable globally fixed the project, it could have been hardcoded somewhere else (e.g. by editing the Python scripts) and the value set by VisualGDB was conflicting with it. If in doubt, we always suggest doing a clean toolchain installation, using a clean Python environment and a clean ESP-IDF checkouts. We test them before releasing our toolchains, so they should work just fine out-of-the-box.
support
KeymasterHi,
Thanks for reporting this, looks like a bug on our side. Please try this build: VisualGDB-6.0.4.5003.msi
support
KeymasterHi,
Looks like something about your project breaks the linker. As far as VisualGDB is concerned, it starts the build, sees the error message and reports it as expected.
You can try enabling verbose mode, getting the exact gcc/linker command lines, and asking in the binutils mailing lists if you need further help.
support
KeymasterThanks, the assemblies on your machine do match our test setup, however, it looks like you are using a couple of extra VS extensions that could be interfering with the WPF.
Please try disabling all other extensions via the Extensions->Manage Extensions command in Visual Studio. If it solves the problem, please try checking if enabling a particular extension triggers the problem, so that we could try installing it on our side and reproducing this.
Edit: for what it’s worth, you can try this build: VisualGDB-6.0.3.4994.msi. It has RemoteHostSelector.Mode renamed to RemoteHostSelector.HostSelectorMode, so if the old name was triggering some strange name collision, it should not happen anymore.
support
KeymasterThanks for confirming this. It looks like a rather strange assembly load issue. Please try this build: VisualGDB-6.0.3.4993.msi
If the problem persists, please click Help->About VisualGDB while holding the Shift key. The About window will show one extra button called “Troubleshoot Assembly Errors”.
Once you click on it, VisualGDB will generate a detailed report showing possible conflicts. Please attach the report together with the updated call stack from the error message, and we will look further into it.
support
KeymasterHi,
Based on a quick look, the CCOUNT is indeed not mapped to memory, so reading it would involve patching the ESP32 OpenOCD to allow reading it via special command.
If you would like to get it working, we can offer 2 options:
- You can try convincing Espressif to add an OpenOCD monitor command for reading CCOUNT (it should be runnable via gdb), or implementing it yourself. If you can get it working, we can help you configure VisualGDB to use it, as long as you have an active VisualGDB license.
- If we see sufficient interest in this feature from other paid users, or if someone orders it as a custom feature, we can do the OpenOCD patching on our side. If you would like to get a quote for this as a custom feature, feel free to contact us via the support form.
support
KeymasterHi,
Sorry, had a typo in the path. The correct path to DWT.xml would be C:\Program Files (x86)\Sysprogs\VisualGDB\TimestampProviders\DWT.xml.
November 1, 2023 at 19:23 in reply to: Add new project file – start folder is always the root folder of the project #34915support
KeymasterHi,
Sorry, it’s hard to suggest anything definitive based on the description you provided. Please try attaching screenshots of the entire uncropped Visual Studio window showing the project you created, the menus you are using to add files, and the folder that is shown in the “Open file” dialog, and we can try to suggest how to alter it.
support
KeymasterHi,
This is correct. The chronometer relies on the DWT_CYCCNT register, that is only available on ARM Cortex cores.
The Xtensa cores have a similar register called CYCCNT, so you can try copying the %VISUALGDB_DIR%\DWT.xml file under a new name and changing it to use the Xtensa CYCCNT address, but we have not tested it on our side and cannot guarantee that it will work.
support
KeymasterHi,
A reasonable strategy would be to get it working outside VisualGDB first (e.g. with PuTTY), make sure it works the way you expect it, and then describe your setup so that we could help you replicate something similar in VisualGDB.
support
KeymasterThanks for verifying your license. This problem would normally be caused by a bug in the .Net image rendering logic that is triggered by some color profiles, although we have fixed it in the latest 6.0 branch.
You can try reverting to the default color profile via Windows Color Management -> Advanced -> Device Profile = System Default.
If it doesn’t help, please try creating a new project selecting the “full-custom” debug mode in the wizard. Does it show the Debug Settings page correctly? If yes, does switching to OpenOCD immediately show an exception?
support
KeymasterStrange. Could you please share a screenshot of the Help->About VisualGDB window?
support
KeymasterThanks, we have fixed it on our side and will include the fix in the upcoming VisualGDB 6.0 Beta 3.
If you do not want to wait, you can patch it on your side in the %VISUALGDB_DIR%\MSBuild\PropertyPages\armclang\compiler.xml file.
support
KeymasterHi,
This behavior was added because the recent versions of the ARMClang toolchain have deprecated the armasm executable, recommending to build them with armclang instead.
You can always restore the old behavior via VS Project Properties -> Configuration Properties -> Keil Settings -> General => Build assembly files with the C compiler = false.
support
KeymasterHi,
These options should not affect the compiled program. The exact -MD -MP -MF <dep file> combination tells the compiler to produce a dependency file (.dep) for tracking the headers used by this source file (so that VisualGDB would know which files to rebuild if a header changes). If you omit the -MF option, the compiler will try to automatically derive the dependency file name from the object name (which could be different between different compiler types/versions), so VisualGDB uses it to explicitly tell where the dependency file should be created.
The -MP option adds extra Make targets for the header files themselves. They are not directly used by VisualGDB, but they won’t affect the code produced by the compiler either.
You can read more about these options in the GCC documentation. Clang/ARMClang reuses the same syntax.
That said, if you can confirm that changing these options does change the actual code produced by ARMClang, we can gladly investigate it further.
-
AuthorPosts