Forum Replies Created
-
AuthorPosts
-
September 22, 2018 at 04:46 in reply to: Project items are lost during VisualGDB project template export #22045
support
KeymasterHi,
Sorry, this is by design. The “Device-specific files” filter is reserved for the files from the BSP that are automatically managed by VisualGDB. E.g. when you change the MCU type or add/remove frameworks, VisualGDB may replace the entire contents of that filter with the files specified by the current BSP version. The template logic also follows this convention – it stores the device ID and settings and re-creates the contents of device-specific files based on the BSP definition. I.e. if you use the same template with a later version of the BSP, it will still use the correct list of files from the new BSP.
Unfortunately it is somewhat confusing as the “Device-specific files” filter is not shown differently from other filters due to the limitations of the VC++ project subsystem. Long-term we are planning to switch our embedded projects to the Advanced CMake Project Subsystem, so VisualGDB will have fine-grain control over the contents of the Solution Explorer and will be able to clearly show which files are automatically managed by VisualGDB.
support
KeymasterHi,
Thanks, this looks like a problem that was recently fixed internally. Please try this build: http://sysprogs.com/files/tmp/VisualGDB-5.4.4.2443.msi
support
KeymasterHi,
Strange, the log looks like exactly the same error that was fixed previously is triggering again. Please try again with this build and let us know if the issue is still present: http://sysprogs.com/files/tmp/VisualGDB-5.4.4.2443.msi
support
KeymasterHi,
We have rechecked this and it looks like VS overrides the line endings passed to it by VisualGDB. We will investigate further and will try to add a workaround, however this will be done after the upcoming Preview 5.
As a temporary workaround, please let Visual Studio normalize the line endings when you open the files (or configure git to always commit the specified line ending style if you are using it).
Update: we have found the root cause of it and it traces back to one of the components used internally by Visual Studio [details]. We have tried several workarounds, however they all have considerable negative side effects due to the way VS handles the snippets internally. Hence unfortunately we won’t be able to add any VisualGDB-level workaround for this and would advise relying on Visual Studio or your source control system to automatically normalize line endings, sorry.
-
This reply was modified 6 years, 9 months ago by
support. Reason: Pinpointed the root cause
support
KeymasterHi,
Thanks for reporting this. We have rechecked the VS2015 setting exporting logic and it indeed looks like it skips the custom language service settings (such as VisualGDB) by default. As fully fixing this would require a relatively large investigation/change on our side, we would instead suggest using one of the workarounds below:
- First of all, you can change the values via registry (HKEY_CURRENT_USER\SOFTWARE\Microsoft\VisualStudio\14.0\ApplicationPrivateSettings\TextEditor\C/C++ (VisualGDB))
- Alternatively, if you are using the VisualGDB’s team settings engine, we could extend it to share the common Clang IntelliSense settings
Let us know if you would like us to extend the team settings engine to handle this.
support
KeymasterHi,
This looks like a known OpenOCD issue – some combination of section sizes and alignment causes it to fail the FLASH programming on STM32L4 devices. Please try checking the section sizes/alignments in Embedded Memory Explorer and see if increasing the alignment via the linker script (e.g. aligning every section to 16 or 64 bytes) solves the problem.
Another option would be to use Segger J-Link instead of OpenOCD. The J-Link comes with its own highly optimized gdb stub that handles memory programming better than OpenOCD, works faster and supports software breakpoints in FLASH memory.
support
KeymasterHi,
This might be caused by VisualGDB not determining the variable address correctly, or by the target simply not supporting memory breakpoints.
Please try running the gdb’s watch command manually via the GDB Session window. If it doesn’t work either, your target may not support it. Feel free to let us know the target type (Embedded/Linux/Android) and the debugger configuration (direct/gdbserver) you are using so we could suggest a few other things to try.
If watchpoints work when created manually, but don’t when created with VisualGDB, please try setting them using both ways and send us a diagnostic GDB log showing both the commands entered manually (that work) and the commands issued by VisualGDB (that don’t) so we could see what could be causing the difference.
support
KeymasterHi,
This is likely caused by a missing setting, or an incompletely imported project. We can help you get it to work if you could share the details we requested.
support
KeymasterHi,
This is likely caused by a missing setting, or an incompletely imported project. We can help you get it to work if you could share the details we requested.
support
KeymasterHi,
It looks like you are using the “Cortex-M7 with MPU (memory protection unit)” port of FreeRTOS. If this is intended, you would need to provide implementations for MPU-related functions and linker-level symbols setting boundaries between protected and unprotected regions (VisualGDB doesn’t provide any default implementation for this, so the best starting point would be the STM32 examples).
If this is not intended, please simply select the regular M7 (not M7 with MPU) port via VisualGDB Project Properties -> Embedded Frameworks.
support
KeymasterHi,
The ESP32 app trace feature is already supported out-of-the-box. As long as you are using OpenOCD and enable it on the Embedded Debug Tweaking page, VisualGDB will display the output from the ESP32 apptrace inside Visual Studio.
support
KeymasterHi,
Good to know it works and sorry for the delay: this got triaged as an issue requiring a complex repro on our side, that results in slightly higher turnaround times as we need to recheck everything from scratch. Normally if you are actively working on a solution, please consider sharing more details on your setup and specific problems you encounter and we should be able to answer much faster as we will have more context on the problem.
support
KeymasterThe configuration shown on your screenshots should be normally supported out-of-the-box.
Could you please share the exact settings that contain hardcoded paths (either the .vgdbproj file, or a screenshot) and also describe what exactly happens if you remove the settings with those paths?
support
KeymasterThanks for your feedback. We will try to clarify the reasoning behind various supported device families below.
VisualGDB comes with out-of-the-box support for many popular devices and also device families that are getting increased traction. This effectively splits the cost of maintaining support for those device families between many users, helping us offer high product quality at a competitive price.
Unfortunately this also means that we cannot offer support for less popular device families like LPC24xx as a part of our regular products without considerably raising the prices, hence we offer several workarounds:
- First of all, you can easily create a project manually by following the legacy device tutorial: https://visualgdb.com/tutorials/arm/legacy/.
- Second of all we publish sources for our tools responsible for generating BSPs for supported devices, so you can create your own BSP generator based on them.
- Finally, we could do if for you as a part of our paid consulting services. Feel free to write an email to our sales to get a quote.
support
KeymasterHi,
The error message looks like something shown by Visual Studio itself, not VisualGDB. It might indicate that IntelliSense is not properly initialized for the source file you are editing.
Are you using the Clang IntelliSense? If not, does the problem get solved if you enable it? If yes, please share a screenshot of the entire VS window showing the source file you opened (including any navigation bars on top) so we could check which IntelliSense engine is handling it.
-
This reply was modified 6 years, 9 months ago by
-
AuthorPosts