Known issues | web-jekyll

# Known issues

Issues already known, but without immediate solutions.

## 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.