Skip to content

Troubleshoot the GUI workflow

Symptom Check
Header SHA mismatch or missing file Exact source pins, local edits, sparse checkout and literal-case paths
Duplicate SDK overload declarations _UNICODE and the genuine target compilation command
CMake requests GUI SDK or import proxies Run preparation; check both include cache and manifest proxy paths
Unresolved __aeabi_* or C++ runtime symbol Newly added code may require compiler-rt, allocation or a library not yet ported
Converter rejects data, TLS or constructors Check supported section/relocation forms; general TLS and local-static guards are unsupported
.exe unchanged after an incremental CMake build Rerun symbian build to convert and publish it
Empty device list or failure before boot Matching ROM/Z is missing or the selected instance/storage root is wrong
Executable not found Correct mounted C path, exact virtual path and installed-device selection
DLL/ordinal rejection Compare actual matched EUSER/WS32 exports with manifest proxies; do not fabricate system implementations
Panic before drawing Heap/thread-create/process startup or SDK ABI mismatch; retain log and mapping
No redraw or pointer response Window Server event/client handles, focus, pending request status and target service compatibility
No application-menu icon Check the project-relative SVG path, package file list and AppArc icon path; physical Belle rendering still needs verification
SIS packaging fails Check experimental UIDs, translated captions, SVG XML and bounded file sizes; DLL payloads and scripts are unsupported; check signing identity and key when signing
Breakpoint never hits Stub enabled on supported backend, correct current code slide, ARM/Thumb state and exact ELF/executable pair
Source files not found in debugger Apply prefix substitutions rather than removing reproducibility maps

IDE Run and Debug

The prepared GUI project now has GUI Run and GUI Debug configurations. Open examples/gui_app in its own IDE window and select clion-arm. GUI Run publishes the current E32, copies the golden and launches the emulator. GUI Debug uses CLion Remote Debug plus the separately selected native Symbian GUI GDB profile; its supervisor publishes/starts a halted copy and automatically relocates symbols after connection. Set source breakpoints before Resume. The GUI example must run in the emulator; the CMake ELF is an ARM build product.

CLion Run and Debug guide gives the installed settings, regeneration command, logs, Stop behavior and toolchain caching caveat. Inputs/binaries, logs and fresh instances live under .symbian/gui-runs; source inputs remain unchanged. Debug the guest with ARM GDB; a host debugger attached to the launcher inspects the launcher or emulator process.