
At least for me it was a challenge to get the debugger properly configured to allow debugging fwupd when built in tree. This should allow very simple debugging.
1.5 KiB
Using Visual Studio Code to debug
This directory contains a collection of scripts and assets to make debugging using Visual Studio Code easier.
Preparing
First install the following applications locally:
- GDB Server
- GDB
- Visual Studio Code
In Visual Studio code, visit the extension store and install C/C++ which is an extension provided by Microsoft. Configure Visual Studio code to open the folder representing the root of the fwupd checkout.
Building
Run ./contrib/debugging/build.sh
to build fwupd with all default options and create helper scripts pre-configured for debugger use.
The application will be placed into ./dist
and helper scripts will be created for fwupdtool
, fwupdmgr
, and fwupd
.
Running
To run any of the applications, execute the appropriate helper script in ./dist
.
Debugging
To debug any of the applications, launch the helper script with the environment variable DEBUG
set.
For example to debug fwupdtool get-devices
the command to launch would be:
sudo DEBUG=1 ./dist/fwupdtool.sh get-devices
This will configure gdbserver
to listen on a local port waiting for a debugger to connect.
Using Visual Studio code
During build time a set of launch targets will have been created for use with Visual Studio Code.
Press the debugging button on the left and 3 targets will be listed at the top.
- gdbserver (fwupdtool)
- gdbserver (fwupd)
- gdbserver (fwupdmgr)
Select the appropriate target and press the green arrow to connect to gdbserver
and start debugging.