diff --git a/Software/Development/Environment/Qt/Embedded/Qt_Remote_Debug.md b/Software/Development/Environment/Qt/Embedded/Qt_Remote_Debug.md new file mode 100644 index 0000000..b1da7aa --- /dev/null +++ b/Software/Development/Environment/Qt/Embedded/Qt_Remote_Debug.md @@ -0,0 +1,63 @@ +# [Qt Remote Debug](https://doc.qt.io/qtvstools/qtvstools-how-to-debug-on-linux.html) + +Set up Qt VS Tools for cross-compilation on Linux, to debug applications running on Linux devices. First launch the application using gdbserver and then configure GDB to connect to the device and start a remote debugging session. + +![qtvstools-remote-debugging](./img/Qt_Remote_Debug/qtvstools-remote-debugging.jpg) + +For this to work, the GDB installed in the WSL must support the target device architecture. A simple way to achieve this is to install gdb-multiarch. To ensure that Visual Studio uses the correct debugger, create a symbolic link from gdb to gdb-multiarch. + +## Set up remote debugging + +To set up the remote debugging session in Visual Studio, you must pass additional commands to GDB: + +1. Select a project in the Solution Explorer. +2. Go to Project > Properties > Configuration Properties > Debugging. + + ![qtvstools-project-properties-debugging](./img/Qt_Remote_Debug/qtvstools-project-properties-debugging.webp) + +3. In Debugger to launch, select GDB Debugger. +4. In Additional Debugger Commands, add the following commands: + + ```bash + target extended-remote : + set remote exec-file + ``` + +## Set environment variables + +Before starting the remote debugging session: + +1. Set the required environment variables: + + - LD_LIBRARY_PATH specifies the path to the directory where you installed Qt binaries. + - QT_QPA_PLATFORM specifies the platform plugin, such as EGLFS, LinuxFB, DirectFB, or Wayland + - QT_QPA_PLATFORM_PLUGIN_PATH specifies the path to the directory where you installed the platform plugin. + - For the EGLFS platform, QT_QPA_EGLFS_PHYSICAL_WIDTH and QT_QPA_EGLFS_PHYSICAL_HEIGHT specify the screen width and height in millimeters. + - QML2_IMPORT_PATH specifies the path to the directory where you installed QML modules. + +2. Launch gdbserver on the device. + +## Start remote debugging + +Press F5 to start the remote debugging session. + +## Set up debugging on Linux devices + +To debug Qt Quick applications on Linux devices: + +1. Enable QML debugging for the project. +2. Go to Project > Properties > Configuration Properties > Debugging to set up program arguments for starting a QML debugging session. +3. In Debugger to launch, select GDB Debugger. +4. In Additional Debugger Commands, add the following command: + + ```bash + -qmljsdebugger=port:,host:,block + ``` + +See also Tutorial: + +- [Qt Quick debugging](https://doc.qt.io/qtvstools/qtvstools-tutorial-debug-qt-quick.html) +- [Cross-compile](https://doc.qt.io/qtvstools/qtvstools-how-to-cross-compile.html) +- [Debug applications](https://doc.qt.io/qtvstools/qtvstools-how-to-debug-apps.html) +- [Enable QML debugging](https://doc.qt.io/qtvstools/qtvstools-how-to-enable-qml-debugging.html) +- [Debugging Qt Quick applications](https://doc.qt.io/qtvstools/qtvstools-explanation-debugging-qt-quick.html) diff --git a/Software/Development/Environment/Qt/Embedded/img/Qt_Remote_Debug/qtvstools-project-properties-debugging.webp b/Software/Development/Environment/Qt/Embedded/img/Qt_Remote_Debug/qtvstools-project-properties-debugging.webp new file mode 100644 index 0000000..da859d5 Binary files /dev/null and b/Software/Development/Environment/Qt/Embedded/img/Qt_Remote_Debug/qtvstools-project-properties-debugging.webp differ diff --git a/Software/Development/Environment/Qt/Embedded/img/Qt_Remote_Debug/qtvstools-remote-debugging.jpg b/Software/Development/Environment/Qt/Embedded/img/Qt_Remote_Debug/qtvstools-remote-debugging.jpg new file mode 100644 index 0000000..ca683a9 Binary files /dev/null and b/Software/Development/Environment/Qt/Embedded/img/Qt_Remote_Debug/qtvstools-remote-debugging.jpg differ