NotePublic/Software/Development/Environment/Qt/Embedded/Qt_Remote_Debug.md

64 lines
2.9 KiB
Markdown
Raw Normal View History

# [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 <IP_address>:<port>
set remote exec-file <path_to_executable>
```
## 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:<port>,host:<IP_address>,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)