> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs.qualcomm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Configure debug symbols

You need debug symbols to parse coredumps. By design, Yocto Project compiles a package and splits it into several packages. For example, if the `hello_0.1.bb` file compiles the `hello.cpp` file, it generates several packages.

The following table lists the packages that are relevant to the coredump.

**Table: Packages required for parsing coredumps**

|           **Package**           |                                                                                                                                                      **Description**                                                                                                                                                     |
| :-----------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
|   `hello_0.1-r0_armv8-2a.rpm`   |                                                                                                             This package includes a stripped executable and is the only package included in the device image.                                                                                                            |
| `hello-dbg_0.1-r0_armv8-2a.rpm` | This package includes the debug symbols and is never packed in the image. The debug package (-dbg) significantly increases the image size, causing problems when including it. Apart from debugging, this package has no runtime value. Therefore, as a strategy, Yocto doesn't include any `-dbg` package in the image. |
| `hello-dev_0.1-r0_armv8-2a.rpm` |                                                                                                          This package includes the exported headers and libraries that dependent modules use during compilation.                                                                                                         |

According to Yocto Project standards, the build location path `tmp/deploy/rpm/armv8-2a` stores the debug symbols. For example, `tqftpserv-dbg_0.0+0+de42697a24-r0_armv8-2a.rpm` package includes the debug symbols for the `/usr/bin/tqftpserv` directory.

To push the debug symbols to the device, do the following using SSH:

1. Remount the rootfs.
   ```text theme={null}
   mount -o rw,remount /
   ```
2. Using the `scp` command, push the debug symbols (`tqftpserv-dbg_0.0+0+de42697a24-r0_armv8-2a.rpm`) to the device at any available partition such as `/data/`.
   ```text theme={null}
   chmod 777 /data/tqftpserv-dbg_0.0+0+de42697a24-r0_armv8-2a.rpm
   ```
   ```text theme={null}
   cd data
   ```
3. Install debug symbols on the device.
   ```text theme={null}
   dnf install tqftpserv-dbg_0.0+0+de42697a24-r0_armv8-2a.rpm
   ```
   After you push the debug symbols to the device, the system saves the symbols at the path of the executable directory in the `.debug` directory. For example, if the executable is in the `/usr/bin/tqftpserv` directory, then the system saves the debug symbols in the `/usr/bin/.debug` directory.
4. To identify the debug symbols that are available on the device, run the following commands:
   ```text theme={null}
   cd /usr/bin/.debug
   ```
   ```text theme={null}
   ls
   ```

**Sample output:**

```text theme={null}
gencat getent locale pcprofiledump sprof zdump

getconf iconv makedb pldd tqftpserv
```
