Known issues

  • Kanzi Monitor disables the local console of the Command Processor when running in Kanzi Studio Preview. You can use the remote console in Kanzi Studio Preview.

  • Kanzi can load plugins from dynamic libraries in an unpredictable order. If other plugins depend on Kanzi Monitor during their initialization, explicitly load Kanzi Monitor from the application during startup. This lets the application make sure that the Kanzi Monitor plugin loads first.

  • When you enable the remote console, Kanzi Monitor attempts to open a remote console and bind to a socket port. This can fail if another application or another Kanzi Monitor instance already uses that port. To resolve this issue, choose a different port number, or avoid running another Kanzi Monitor instance with the remote console enabled at the same time.

  • When you enable the serial console, Kanzi Monitor attempts to open the configured serial port. This can fail if the port does not exist, another application uses it, or it requires elevated privileges. On Windows, virtual COM port drivers (such as com0com) can require test-signed driver mode.

  • On Android, Kanzi Monitor resolves the trace output directory at startup via JNI (Context.getFilesDir()). If the resolution fails (for example, when the plugin loads before any Java entry point has run), the log records Could not resolve Context.getFilesDir() via JNI; leaving SampleCollector output directory unchanged. and trace files land in whichever directory the SampleCollector defaults to instead of the app’s internal files directory. If trace files don’t appear where you expect on Android, check the log for this warning.

  • The perfetto-producer trace writer requires the plugin to be built with -DKZMONITOR_PERFETTO_PRODUCER=ON (pre-built Android binaries already are) AND a platform tracing daemon (Android traced or Linux perfetto). On Windows and platforms without a daemon, the writer is silently a no-op — use the in-process capture mode via PerfettoProducerCaptureSeconds to drive a session yourself, or stay on chrometrace / perfetto for offline output.

  • Android Studio Profiler (Iguana 2023.2 and later) does not expose the Perfetto track_event data source in its “Capture System Activities” task. As a result, a System Trace captured from inside AS Profiler does not show the kanzi.* tracks even when Kanzi Monitor is streaming them through the perfetto-producer writer. Workaround: capture the trace externally with adb shell perfetto -c <config> --txt -o <trace>.pftrace, then open the resulting file in AS Profiler with File → Open — the kanzi.* track-event categories render normally. Android Performance Analyzer (a separate tool) does expose track_event configuration and works as expected. See Using the Profiling Trace service for an example perfetto config.

  • On Android, the kzTrace subsystem (the overwatch.kztrace command, also exposed by the Monitor Web UI Trace tab when “kzTrace (Engine)” is selected and by the MCP server’s capture_kztrace tool) writes to /sdcard/ independently of Kanzi Monitor’s own trace output directory. The Kanzi engine’s logTraceToFile() ignores the path Kanzi Monitor passes and uses its own destination on Android. Capturing a kzTrace from any of these surfaces therefore requires the host application to declare WRITE_EXTERNAL_STORAGE (SDK below 30) or MANAGE_EXTERNAL_STORAGE (SDK 30 and later) in AndroidManifest.xml and to request the runtime permission. If the permission is missing, overwatch.kztrace returns a JSON error of the form {"error":"kzTrace file was not written","hint":"...AndroidManifest..."} and the trace file is not written. The example application under examples/monitor_example/ does not declare these permissions because the Monitor plugin itself no longer needs them; add them to your own host app if you want kzTrace on Android. The Monitor profiling trace (chrometrace, perfetto, and perfetto-producer writers) continues to work on Android without any storage permissions.

  • The 1.41.0 distribution packages (the plugin package, the platform CPack archives, and the Conan package) do not include the vendored Perfetto SDK’s LICENSE / attribution files, even though the Perfetto producer (Apache 2.0, with bundled BSD-licensed components) is compiled into the pre-built binaries. This is a packaging omission with no functional impact — the complete license text is available in Third-party libraries used in Kanzi Monitor and in the Kanzi Monitor source tree at third_party/perfetto/LICENSE.

  • The 1.41.0 source distribution packages do not include the vendored Perfetto SDK sources (third_party/perfetto/), so the perfetto-producer trace writer cannot be built from them. Configuring with -DKZMONITOR_PERFETTO_PRODUCER=ON fails because third_party/perfetto/perfetto.cc and perfetto.h are absent. The default build (with the producer disabled) and every other trace writer are unaffected — in particular the perfetto writer (native .perfetto-trace output) is self-contained, needs no SDK, and builds normally. To build the perfetto-producer writer from 1.41.0, copy third_party/perfetto/ from the Kanzi Monitor source repository into the package first.

  • The 1.41.0 CMake-built platform packages for Linux and QNX do not include the plugin source (src/) or the RemoteConsoleClient / SerialConsoleClient executables, although these packages are intended to be source-inclusive. The Windows and source-only packages (produced by a different packager) are unaffected and contain both. To build Kanzi Monitor from source, or to use the console clients, on Linux or QNX with 1.41.0, obtain the sources and clients from the Kanzi Monitor source repository or from the Windows / source-only package.

See also

Release notes

Migration guides