User space code vs. kernel code debugging

User space code in may include applications, graphical user interfaces (GUIs), and other user-level components. Debugging user space code has considerations such as usability, performance, and safety. For example, the GUI should be easy to use and provide clear feedback to the user, while also not slowing down the system.

Kernel code in HMI systems may include drivers, communication protocols, and other low-level components. Debugging kernel code requires a good understanding of the hardware and the underlying system, as well as the ability to use kernel debugging tools effectively. Additionally, safety and reliability considerations are critical, as any errors or bugs in the kernel code can have serious consequences on the operation of the system.

As already stated above the kernel is treated differently with respect to debugging. Apart from the already explained different debug agents to use, kernel debugging requires a deeper understanding of the OS aspects such as virtual memory mapping, interrupt processing etc., and is currently beyond the scope of this manual.