Forum Replies Created
-
AuthorPosts
-
support
KeymasterHi,
Looks like you forgot the “\n” symbol at the end of the printed line. With the default settings, this will cause the C library to buffer the output internally until either a newline is sent, or fflush() is called explicitly.
As a workaround, please simply add “\n” at the end of the line you print.
support
KeymasterHi,
No problem and thanks for reporting this. We have fixed it in the following build: http://sysprogs.com/files/tmp/VisualGDB-5.4.7.2519.msi.
support
KeymasterHi,
Thanks very much for sharing this!
support
KeymasterHi,
No problem. Let us know if you encounter any issues and we will try to help.
Normally the importing process described in the tutorial should work, however it looks like it does trigger a gcc bug on particularly large projects.
support
KeymasterHi,
Yes, please try using variables like $(ProjectDir). You can see the full list of variables by clicking the link at the bottom of the project properties window.
support
KeymasterHi,
Just to ensure we are on the same page, could you please summarize the current state of the problem with NMake paths? I.e. what you are trying to achieve and what you are observing.
We have also rechecked variable expansion in both path mappings and gdb commands and could not reproduce any errors. Please let us know the exact steps to reproduce the behavior you are observing and we will help you get it to work.
support
KeymasterHi,
The post-build steps can run on any machine of your choice – they are fully customizable. If you are currently using VisualGDB trial, this feature should be already enabled. If you have already purchased a Linux edition key, please contact our sales to get a trial extension voucher so you could try out the Custom edition features.
Supporting “make uninstall” out-of-the-box would be tricky. As CMake scripts run on the Windows machine, it would involve running it locally, recording the exact steps it does trying to replay them on a remote machine (or simply removing all files previously installed by VisualGDB). We might be able to eventually support it, but given the complexity and the limited scope of this, it won’t be included in v5.4, sorry.
That said, we can help you setup the correct custom actions to do the uninstallation as a custom shortcut. Let us know if you run into any difficulties and we will help.
October 26, 2018 at 19:00 in reply to: Print Memory usage report in function of linker sections #22442support
KeymasterHi,
Thanks for clarifying it. Unfortunately it would’t work to not count the space between the symbols, as in most of the cases such space is wasted due to alignment constraints, or contains unnamed data from assembly files, and hence should be counted towards the used space.
Instead, please consider one of the following approaches:
- Instead of having fixed-size sections extended until the end of the 62K block, have a variable-size section followed by a dummy section marked with the NOLOAD attribute filling the rest of the space. The NOLOAD sections will be automatically excluded from the memory usage statistics.
- Simply place sections non-sequentially. You can use the “. = <address>” syntax in the linker script to place the next section at a fixed address.
- Split the FLASH memory in your linker script into 3 separate memories and place the sections accordingly. Again, ensure that the sections are not extended beyond the actual end of the last symbol.
support
KeymasterHi,
Normally this should be sufficient. As a quick check, please try creating a new “LEDBlink” project, calling printf() from it and referencing the fast semihosting framework. If it does work, please recheck the differences between the test project and your original project.
Another option is to try setting a breakpoint in the WriteRawFastSemihostingData() function and stepping through it to see if s_FastSemihostingState gets modified properly.
support
KeymasterHi,
Sorry, the assembly file syntax used by IAR and GCC is completely different, so most of the assembly files would need to be heavily rewritten. It should not be related to using Make or MSBuild, just the syntax inside the assembly file.
That said, if the files come from the ST’s SDK, there should be equivalent versions of them for the GCC compiler. If you are not sure, please let us know what exact assembly files do not build (i.e. full path to the file and its contents, if possible) and we can advise on finding a GCC-compatible replacement.
support
KeymasterHi,
You should be able to add it via VisualGDB Project Properties -> Build Customization -> Post-Build Steps (requires the Custom edition).
Although CMake itself doesn’t support uninstalling targets (and it won’t work for the deployed files), you can add a custom shortcut (will appear under the Project menu when your project is active) via VisualGDB Project Properties that will run arbitrary commands of your choice (e.g. deleting a specific set of directories).
With the forum subscription, we had issues with it before due to email servers treating the notification emails as spam. We have re-enabled it for now, but we may have to turn it off again if the problem with the mail servers returns.
support
KeymasterHi,
Good to know it works. Sorry, our interface for viewing the tutorials doesn’t show the changes, as the old steps won’t be relevant for the users that started with the new version of the tutorial.
We have modified the publishing date to make it explicit that the tutorial was updated.
support
KeymasterHi,
If the project is msbuild-based, the static library project can be built without a .vgdbsettings file, hence you can simply keep the original files and not change anything.
support
KeymasterHi,
Thanks for confirming the bug with the solution folder. We have fixed it in this build (please note that it contains an incomplete experimental feature of Clang IntelliSense that might cause random crashes).
Regarding the VS configurations manager, please double-check that you are using the correct platform. We have a detailed tutorial showing various supported combinations here: https://visualgdb.com/tutorials/porting/multiplatform/
Normally just editing multiple projects at once via VS project properties should work.
Also if this is remotely possible, please consider switching your projects to use CMake. The VisualGDB’s Advanced CMake Project Subsystem supports multiple targets per project and can automatically edit the CMake scripts for you, while providing familiar MSBuild-like property pages for common CMake properties. It also eliminates the need to maintain VC++ projects duplicating the underlying Linux projects, as it queries the precise project structure from CMake and renders it in Solution Explorer. It will also store common build/debug settings for all targets in one .vgdbcmake file, while letting you specify per-target settings (e.g. deployment options). Finally, it comes with a CMake script debugger, so if your projects involve custom build steps, you can easily troubleshoot them by literally stepping through the build scripts in debugger. You will also enjoy faster build times if you are using it with the Ninja build tool (it’s much more heavily optimized than GNU Make).
We do realize that switching the build system is a considerable effort, however based on the issues you have described so far, it may actually pay off as it will eliminate most of the problems you have mentioned.
You can find a quick overview of the Advanced CMake Subsystem workflow here: https://visualgdb.com/tutorials/linux/cmake/
support
KeymasterHi,
Thanks for sharing the 100% repro steps. We have managed to reproduce it on our side and it looks like a bug in the Visual Studio itself.
We have submitted a bugreport with the narrowed down repro steps to the Visual Studio Developer Community. Please feel free to upvote it there if you find the bug annoying.
-
AuthorPosts