Forum Replies Created
-
AuthorPosts
-
support
KeymasterHi,
This is a known issue. The GCC compiler used by VisualGDB is not 100% compatible with the Keil compiler and uses a completely different syntax for placing parts of your program at fixed addresses.
We have a detailed tutorial explaining the entire process here: https://visualgdb.com/tutorials/arm/bootloader/
It is also worth mentioning that VisualGDB can be configured to use the Keil compiler instead of GCC. Please follow this tutorial for details: https://visualgdb.com/tutorials/arm/keil/
support
KeymasterHi,
Thanks, we have noted this down and will try to include support for running tests on MinGW in the next major build.
Regarding the code coverage, VisualGDB 5.3 actually works very well with gcov. You can simply enable coverage reports via VisualGDB Project Properties (it works only for Linux projects) and it will automatically run gcov, build a searchable coverage database and map file paths so that you can view coverage information directly in the code:

support
KeymasterHi,
Please, please, please always provide more details about the errors you encounter. We would absolutely love to help you, but it is almost impossible to guess what is going on without knowing the exact error messages. VisualGDB build system is complex and it could be broken by incorrect settings in tens of different options, each one resulting in a different error message. Unfortunately we cannot provide much help without knowing the exact message shown by the build system.
support
KeymasterNo problem, we can help you get GUI to work – this is 100% supported.
VisualGDB will only include a file in the template if both of the following holds for it:
- The file resides inside the project directory (or one of its subdirectories)
- The file is explicitly included in the project in Solution Explorer
E.g. the following files won’t be included:
- Any sources outside the project directory (with relative paths starting with ..\)
- Linker scripts unless you explicitly add them to SolutionExplorer and copy under the project directory
- Any header files included from your sources, but not present in Solution Explorer or residing outside the project directory
Hope this helps. If not, please let us know which file you are trying to include, where is it located and how does it look in Solution Explorer (i.e. its item type and relative path).
support
KeymasterHi,
OK, please try this build: http://sysprogs.com/files/tmp/VisualGDB-5.3.16.1933.msi
We have added new options under C/C++->Advanced:
- Additional Options (C files)
- Additional Options (C++ files)
support
KeymasterHi,
OK, that looks very much like the cycle counter is not available on your device or is not accessible from the software (that is the case on the STM32F7 devices we tested). Please follow the tutorial linked above to add a workaround – it’s very simple and involves overriding one function that will use one of the general-purpose timers for counting the cycles.
support
KeymasterHi,
Yes, the template allows adding sub-folders, however the folders shown in Solution Explorer don’t always correspond to the physical subfolders on the disk. VisualGDB automatically preserves both when creating/restoring templates, however if you want to edit the templates manually, please ensure you understand the difference between them as confusing the paths would make the template unreadable.
To diagnose corrupt templates, please download 7-Zip and run the following command line for both working and a broken templates:
7z.exe l <template file>
This will list the contents of both files. Please carefully compare the outputs for the 2 template files (and the unpacked template.xml files) and double-check all differences.
As we may change the internal template format in the future, we don’t provide specific instructions on editing it manually and don’t guarantee that this will always work, sorry. The only officially supported way of doing this is using VisualGDB template export GUI. We made the template format easily editable (zip+xml) to make advanced tweaking possible, however this is something to do purely at your own risk. If the inconvenience from troubleshooting accidentally broken templates doesn’t outweigh the advantages of manual tweaking, please don’t use this feature and use the GUI instead.
support
KeymasterHi,
You can add subfolders to the template file as long as you don’t move other files inside it. E.g. the template.xml file needs to be always in the root directory of the template.
Generally if you are not comfortable manually editing the templates, please rely on VisualGDB to generate them automatically – add all necessary files to the Visual Studio project and then create a template. Hacking the template files manually is possible, however is more error-prone than generating them automatically and we generally don’t recommend doing it unless you are ready to troubleshoot errors caused by unexpected modifications.
support
KeymasterHi,
Sorry for the confusion. The “diagnostics” page is shown in the “Live Profiling” window, not “Ream-time watch”.
Based on your last description, it looks like something is interfering with the instruction counter used by VisualGDB. Please try disabling the Chronometer (normally it should be disabled automatically when doing profiling or real-time watch). If it doesn’t help, your device may block the software from resetting the instruction count register (e.g. STM32F7 devices have this issue). In this case you would need to use a general-purpose timer instead (we have a detailed tutorial showing how to do that).
support
KeymasterHi,
Normally the –start-group and –end-group arguments should handle this automatically – force the linker to automatically reorder the libraries between those 2 statements. Perhaps you are using some very old version of the linker that doesn’t handle it properly? If this is the case, simply updating it may solve the problem.
If this doesn’t help, could you confirm that specifying -ludev just before –end-group still causes the problem?
support
KeymasterHi,
Normally printf() should work. E.g. below is the output from the “Hello, World” sample project created by VisualGDB with no further modifications:

If you don’t see the green “cpu_start” text, your program might not be launching properly. We actually have a detailed tutorial on diagnosing ESP32 startup issues here: https://visualgdb.com/tutorials/esp32/flashdiag/. Please feel free to follow it and let us know if you have any further questions.
Attachments:
You must be logged in to view attached files.support
KeymasterHi,
VisualGDB always shows full paths on the IntelliSense Directories page and substitutes various internally used variables there. The actual .vcxproj file should actually contain relative paths. You can check this via VS (not VisualGDB) project properties or by looking into the .vcxproj file directly.
support
KeymasterHi,
The attached template file is indeed broken (has contents inside a subdirectory). To troubleshoot this type or problems please try creating a new template, rename it to .zip and compare its contents with your edited template side-by-side.
support
KeymasterHi,
Thanks, looks like our bug. Please try this build: http://sysprogs.com/files/tmp/VisualGDB-5.3.16.1925.msi
support
KeymasterHi,
We have managed to reproduce the problem from the template file you attached in another thread and it looks like the the problem is caused by the extra comma after some arguments in your command line, e.g.:
-Wl,--defsym,_stack=0x20006000,
should be
-Wl,--defsym,_stack=0x20006000
We agree that the error message shown by gcc is not very informative and extremely cryptic, although it would be beyond our capacity to maintain and ship a special fork of GCC resolving such issues. Our best advice would be to try contacting the GCC mailing lists to see if anyone there is willing to fix this.
-
AuthorPosts