Major bugs
Editing the toolchain may damage the project
In certain conditions, changing the toolchain for a project in the C/C++ Build → Tool Chain Editor page from another plug-in to Eclipse Embedded CDT plug-in might not work; even worse, there are cases when the project is permanently damaged. There is not known way to repair such a broken project; you have to create a new project and copy the content (this is a CDT bug, not a plug-in bug).
Annoying bugs
The Qt plug-ins fail to start with Java 15
Java 15 removed support for JavaScript, and the Qt plug-ins no longer start, throwing a message box:
An internal error occurred during: “Load QML Analyzer”. Cannot invoke “javax.script.ScriptEngine.getContext()” because “this.engine” is null
If you need the Qt plug-ins, the workaround is to downgrade to Java 14.
Otherwise, to get rid of the message box, it is possible to uninstall the Qt plugins:
- go to the Eclipse menu → (Window →) About Eclipse IDE
- click the Installation Details button
- click the Installed Software tab
- select the C/C++ Qt Support feature
- click the Uninstall button
- click Finish
Build fails after rename
Due to a problem buried deep into Eclipse, in certain conditions, immediately after renaming a project, right clicking on a project and choosing Build Configurations → Build All, will display an error window, claiming that the project that the renamed project no longer exist:
The problem is related to a caching mechanism, and is easily cured by exiting Eclipse and opening it again. Another solution is to close only the renamed project and to reopen it.
Add Global Variables… is disabled
In the J-Link or OpenOCD sessions, the Variables view does not allow to add global variables. This is a known CDT DSF bug 219040, not a plug-in bug. As a workaround, you can use watch expressions.
The internal builder fails while generating the listing
Due to a CDT bug, when using the Internal builder it is not possible to generate the additional program listing. If you need it, it is recommended to enable the External builder in the project Properties → C/C++ Build → Builder Settings tab → Builder type.
The Internal builder is long deprecated, it was no longer maintained by the CDT team for many years, and it is strongly recommended not to use it at all.
Conflict while editing tools
Due to a CDT bug, selecting tools in the toolchain editor (the project Properties → C/C++ Build → Tool Chain Editor → Select Tools… button)
complains about a tool conflict:
The message is benign, being triggered by an improper test in CDT (all these extra steps have as input the .elf generated by the linker, and this condition is flagged as error by CDT). You can safely ignore it.
Binaries not visible after build
Due to an Eclipse bug, in certain conditions, after project Build All, the generated binaries, do not show in the Project Explorer. A manual Refresh makes them visible.
References to old project name after renaming
Due to a CDT bug, after renaming a project, the Problems window will complain Invalid project path: Missing project folder or file referring to the old name. The problem can be cured by closing and reopening the project.
Other problems
The Restart button
Due to some bugs in Eclipse, the implementation of his simple button has encountered several problems. Depending on the version you are using, the first time you click this button you might get a message box informing that the button was not enabled. Ignore this message, close the message box and click the button again, this time it’ll be effective.
Tool Settings window update
Not really a bug, but sometimes perceived like an unusual behaviour, enabling/disabling the secondary tools in the C/C++ Build → Settings → Toolchains page and immediately switching to the Tool Settings tab does not show/hide the new tools. It is necessary to press the Apply button for this change to be effective.
Map and listing not removed by Clean
The linker .map
and the assembler .lst
files are not removed when
running the project Clean process. Since these are specific tool
options and not makefile targets, the build process does not know about
them and is not able to remove them when executing the clean target.
Usually these files are generated during each build, so after successful
builds they should always be up to date. If the build does not complete,
it is possible to still have some of these files around, from the previous
build, and this may be confusing. In such cases it is recommended to
manually remove them, or, even better, to completely remove the
Debug/Release build folder and start a clean build.
Advices (to avoid problems)
Toolchain path
DO NOT add the toolchain path to the system path, especially if you are using multiple toolchains (and if you do not do it yet, it is very likely that you will, as soon as new versions of the toolchains will be available). The toolchain path should be configured for each toolchain in the Toolchains tab, in the C/C++ Build → Settings page.