# Debug using ltrace

By default, the build incorporates ltrace. ltrace executes an application and traces its dynamic library calls and signals at runtime. This makes it easier to identify library‑related failures and unexpected behavior.

## Prerequisite

Set up SSH to establish a secure channel between the host computer and the remote server. For instructions, see [Sign in using SSH](https://docs.qualcomm.com/bundle/publicresource/topics/80-70029-254/how_to.html#use-ssh).

## Debug with ltrace

To debug with ltrace, run the following commands using SSH:

1. Run the process status command:

ps -ef
        Copy to clipboard

    **Sample output:**

339 rpc 0:00 /usr/sbin/rpcbind -w -f

345 root 0:00 /lib/systemd/systemd-journald

373 root 0:00 [kworker/3:6-mm\_]
2. Identify the process ID (PID) of the process that you want to debug.
3. Run the `ltrace` command:

ltrace -p 345
        Copy to clipboard

    In this example, `345` is the PID.

    **Sample output:**

journal\_file\_close(0x25e30170, -1, 0, 0 &lt;unfinished ...&gt;

sockaddr\_un\_unlink(0x25e30170, -1, 0, 0

&lt;unfinished ...&gt;

sd\_journal\_close(0x25e31c00, 1, 3, 0x409e70) = 0

sd\_journal\_close(0x25e31d50, 1, 0, 1) = 0

&lt;... sockaddr\_un\_unlink resumed&gt; ) = 1

&lt;... journal\_file\_close resumed&gt; ) = 1

journal\_file\_close(0x25e30170, -1, 0, 0 &lt;unfinished ...&gt;

sockaddr\_un\_unlink(0x25e30170, -1, 0, 0 &lt;unfinished ...&gt;

sd\_event\_now(15, 0x41ed20, 10, 64) = 10

openat64(2, 0x41ed20, 10, 64 &lt;unfinished ...&gt;

clock\_gettime(2, 0x41ed20, 10, 64) = 6

For more information, see [Linux manual page](https://man7.org/linux/man-pages/man1/ltrace.1.html).

Last Published: Mar 15, 2026

[Previous Topic
Debug Linux user-space issues](https://docs.qualcomm.com/bundle/publicresource/80-70029-12/topics/using_open_source_debug_tools.md) [Next Topic
Debug using Valgrind](https://docs.qualcomm.com/bundle/publicresource/80-70029-12/topics/debug_using_valgrind.md)