# 调试 Linux 用户空间问题

下图显示了可用于调试与 Linux 用户空间应用程序相关的问题的开源工具、dump 和日志。

<!--?xml version="1.0" encoding="UTF-8" standalone="no"?-->

<!-- 由 Microsoft Visio, SVG Export 生成 Tools-dumps-logs-to debug-Linux-userspace.svg Tools-dumps-logs-to debug-Lin~1 -->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="9.6276in" height="3.38542in" viewbox="0 0 693.187 243.75" xml:space="preserve" color-interpolation-filters="sRGB" class="st9"><v:documentproperties v:langid="2052"></v:documentproperties>
<style>.svg-1 .st1 { fill: #f7f8fa; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.749999 }
.svg-1 .st2 { fill: none; stroke: #3253dc; stroke-linecap: round; stroke-linejoin: round; stroke-width: 3 }
.svg-1 .st3 { fill: none; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-1 .st4 { fill: #000000; font-family: SimHei; font-size: 1.16666em; font-weight: bold }
.svg-1 .st5 { fill: #000000; font-family: Arial; font-size: 1.16666em; font-weight: bold }
.svg-1 .st6 { fill: none; stroke: #3253dc; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.5 }
.svg-1 .st7 { fill: #000000; font-family: Arial; font-size: 1.16666em }
.svg-1 .st8 { fill: #000000; font-family: Arial; font-size: 1.16666em }
.svg-1 .st9 { fill: none; fill-rule: evenodd; font-size: 12px; overflow: visible; stroke-linecap: square; stroke-miterlimit: 3 }</style>
<g v:mid="0" v:index="1" v:groupcontext="foregroundPage">	<v:userdefs></v:userdefs>	<title>Tools-dumps-logs-to debug-Linux</title>	<v:pageproperties v:drawingscale="1" v:pagescale="1" v:drawingunits="19" v:shadowoffsetx="9" v:shadowoffsety="-9"></v:pageproperties>	<g id="group1-1" transform="translate(18.375,-18.3748)" v:mid="1" v:groupcontext="group">		<title>Page-1</title>		<g id="group2-2" v:mid="2" v:groupcontext="group">			<title>shape18-1</title>			<g id="shape3-3" v:mid="3" v:groupcontext="shape">				<title>shape3-3</title>				<rect x="0" y="36.7502" width="656.437" height="207" class="st1"></rect>			</g>		</g>		<g id="group4-5" transform="translate(13.9509,-18.0001)" v:mid="4" v:groupcontext="group">			<v:userdefs></v:userdefs>			<title>shape2-3</title>			<desc>Open-source tools</desc>			<g id="shape5-6" v:mid="5" v:groupcontext="shape">				<title>shape5-6</title>				<rect x="0" y="72.7502" width="287.969" height="171" class="st2"></rect>			</g>			<g id="shape6-8" v:mid="6" v:groupcontext="shape" transform="translate(-0.825909,-133.401)">				<title>shape6-8</title>				<desc>Open-source tools</desc>				<v:userdefs></v:userdefs>				<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>				<v:textrect cx="144" cy="235.35" width="288.01" height="16.7999"></v:textrect>				<rect x="0" y="226.95" width="288" height="16.7999" class="st3"></rect>				<text x="115.89" y="239.9" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>开源工具</text>				</g>		</g>		<g id="group7-11" transform="translate(309.938,-18.0001)" v:mid="7" v:groupcontext="group">			<v:userdefs></v:userdefs>			<title>shape3-6</title>			<desc>Dumps</desc>			<g id="shape8-12" v:mid="8" v:groupcontext="shape">				<title>shape8-12</title>				<rect x="0" y="72.7502" width="162.477" height="171" class="st2"></rect>			</g>			<g id="shape9-14" v:mid="9" v:groupcontext="shape" transform="translate(57.5099,-133.401)">				<title>shape9-14</title>				<desc>Dumps</desc>				<v:userdefs></v:userdefs>				<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>				<v:textrect cx="34.9998" cy="235.35" width="70.01" height="16.7999"></v:textrect>				<rect x="0" y="226.95" width="69.9995" height="16.7999" class="st3"></rect>				<text x="-0" y="239.55" class="st5" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>Dump</text>				</g>		</g>		<g id="group10-17" transform="translate(480.459,-18.0001)" v:mid="10" v:groupcontext="group">			<v:userdefs></v:userdefs>			<title>shape4-9</title>			<desc>Logs</desc>			<g id="shape11-18" v:mid="11" v:groupcontext="shape">				<title>shape11-18</title>				<rect x="0" y="72.7502" width="162.477" height="171" class="st2"></rect>			</g>			<g id="shape12-20" v:mid="12" v:groupcontext="shape" transform="translate(0.665856,-133.401)">				<title>shape12-20</title>				<desc>Logs</desc>				<v:userdefs></v:userdefs>				<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>				<v:textrect cx="81" cy="235.35" width="162.01" height="16.7999"></v:textrect>				<rect x="0" y="226.95" width="162" height="16.7999" class="st3"></rect>				<text x="66.95" y="239.9" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>日志</text>				</g>		</g>		<a xlink:href="https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-12/using_open_source_debug_tools.html#ltrace" xlink:title="ltrace">			<g id="group13-23" transform="translate(22.7247,-93.0573)" v:mid="13" v:groupcontext="group">				<title>工作表.13</title>				<g id="group14-24" v:mid="14" v:groupcontext="group">					<v:userdefs></v:userdefs>					<title>shape10-12</title>					<desc>ltrace</desc>					<g id="shape15-25" v:mid="15" v:groupcontext="shape">						<title>shape14-24</title>						<path d="M0 234.75 A9.0002 9.0002 -180 0 0 9 243.75 L119.77 243.75 A9.0002 9.0002 -180 0 0 128.77 234.75									 L128.77 209.15 A9.0002 9.0002 -180 0 0 119.77 200.15 L9 200.15 A9.0002 9.0002 -180 0 0 0									 209.15 L0 234.75 Z" class="st6"></path>					</g>					<g id="shape16-27" v:mid="16" v:groupcontext="shape" transform="translate(47.2699,-13.4002)">						<title>shape15-26</title>						<desc>ltrace</desc>						<v:userdefs></v:userdefs>						<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>						<v:textrect cx="41.9997" cy="235.35" width="84.01" height="16.7999"></v:textrect>						<rect x="0" y="226.95" width="83.9994" height="16.7999" class="st3"></rect>						<text x="-0" y="239.55" class="st7" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>ltrace</text>						</g>				</g>			</g>		</a>		<a xlink:href="https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-12/using_open_source_debug_tools.html#debug_using_gdb">			<g id="group17-30" transform="translate(22.7247,-31.4317)" v:mid="17" v:groupcontext="group">				<title>工作表.17</title>				<g id="group18-31" v:mid="18" v:groupcontext="group">					<v:userdefs></v:userdefs>					<title>shape11-15</title>					<desc>GDB</desc>					<g id="shape19-32" v:mid="19" v:groupcontext="shape">						<title>shape17-30</title>						<path d="M0 234.75 A9.0002 9.0002 -180 0 0 9 243.75 L119.77 243.75 A9.0002 9.0002 -180 0 0 128.77 234.75									 L128.77 209.15 A9.0002 9.0002 -180 0 0 119.77 200.15 L9 200.15 A9.0002 9.0002 -180 0 0 0									 209.15 L0 234.75 Z" class="st6"></path>					</g>					<g id="shape20-34" v:mid="20" v:groupcontext="shape" transform="translate(49.2199,-13.4002)">						<title>shape18-32</title>						<desc>GDB</desc>						<v:userdefs></v:userdefs>						<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>						<v:textrect cx="20.9999" cy="235.35" width="42.01" height="16.7999"></v:textrect>						<rect x="0" y="226.95" width="41.9997" height="16.7999" class="st3"></rect>						<text x="-0" y="239.55" class="st7" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>GDB</text>						</g>				</g>			</g>		</a>		<a xlink:href="https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-12/using_open_source_debug_tools.html#debug_using_valgrind" xlink:title="Valgrind">			<g id="group21-37" transform="translate(165.152,-93.0573)" v:mid="21" v:groupcontext="group">				<title>工作表.21</title>				<g id="group22-38" v:mid="22" v:groupcontext="group">					<v:userdefs></v:userdefs>					<title>shape12-18</title>					<desc>Valgrind</desc>					<g id="shape23-39" v:mid="23" v:groupcontext="shape">						<title>shape20-36</title>						<path d="M0 234.75 A9.0002 9.0002 -180 0 0 9 243.75 L119.77 243.75 A9.0002 9.0002 -180 0 0 128.77 234.75									 L128.77 209.15 A9.0002 9.0002 -180 0 0 119.77 200.15 L9 200.15 A9.0002 9.0002 -180 0 0 0									 209.15 L0 234.75 Z" class="st6"></path>					</g>					<g id="shape24-41" v:mid="24" v:groupcontext="shape" transform="translate(38.7,-13.4002)">						<title>shape21-38</title>						<desc>Valgrind</desc>						<v:userdefs></v:userdefs>						<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>						<v:textrect cx="55.9996" cy="235.35" width="112.01" height="16.7999"></v:textrect>						<rect x="0" y="226.95" width="111.999" height="16.7999" class="st3"></rect>						<text x="-0" y="239.55" class="st7" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>Valgrind</text>						</g>				</g>			</g>		</a>		<a xlink:href="https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-12/using_open_source_debug_tools.html#debug_using_gdbserver">			<g id="group25-44" transform="translate(165.152,-31.4317)" v:mid="25" v:groupcontext="group">				<title>工作表.25</title>				<g id="group26-45" v:mid="26" v:groupcontext="group">					<v:userdefs></v:userdefs>					<title>shape13-21</title>					<desc>gdbserver</desc>					<g id="shape27-46" v:mid="27" v:groupcontext="shape">						<title>shape23-42</title>						<path d="M0 234.75 A9.0002 9.0002 -180 0 0 9 243.75 L119.77 243.75 A9.0002 9.0002 -180 0 0 128.77 234.75									 L128.77 209.15 A9.0002 9.0002 -180 0 0 119.77 200.15 L9 200.15 A9.0002 9.0002 -180 0 0 -0									 209.15 L0 234.75 Z" class="st6"></path>					</g>					<g id="shape28-48" v:mid="28" v:groupcontext="shape" transform="translate(33.26,-13.4002)">						<title>shape24-44</title>						<desc>gdbserver</desc>						<v:userdefs></v:userdefs>						<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>						<v:textrect cx="62.9996" cy="235.35" width="126.01" height="16.7999"></v:textrect>						<rect x="0" y="226.95" width="125.999" height="16.7999" class="st3"></rect>						<text x="-0" y="239.55" class="st7" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>gdbserver</text>						</g>				</g>			</g>		</a>		<a xlink:href="https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-12/using_open_source_debug_tools.html#collect_coredumps">			<g id="group29-51" transform="translate(330.188,-90.5253)" v:mid="29" v:groupcontext="group">				<title>工作表.29</title>				<g id="group30-52" v:mid="30" v:groupcontext="group">					<v:userdefs></v:userdefs>					<title>shape14-24</title>					<desc>Coredump</desc>					<g id="shape31-53" v:mid="31" v:groupcontext="shape">						<title>shape26-48</title>						<path d="M0 234.75 A9.0002 9.0002 -180 0 0 9 243.75 L119.77 243.75 A9.0002 9.0002 -180 0 0 128.77 234.75									 L128.77 209.15 A9.0002 9.0002 -180 0 0 119.77 200.15 L9 200.15 A9.0002 9.0002 -180 0 0 -0									 209.15 L0 234.75 Z" class="st6"></path>					</g>					<g id="shape32-55" v:mid="32" v:groupcontext="shape" transform="translate(31.7,-13.4002)">						<title>shape27-50</title>						<desc>Coredump</desc>						<v:userdefs></v:userdefs>						<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>						<v:textrect cx="55.9996" cy="235.35" width="112.01" height="16.7999"></v:textrect>						<rect x="0" y="226.95" width="111.999" height="16.7999" class="st3"></rect>						<text x="-0" y="239.55" class="st7" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>Coredump</text>						</g>				</g>			</g>		</a>		<a xlink:href="https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-12/using_open_source_debug_tools.html#syslogs">			<g id="group33-58" transform="translate(498.39,-95.6513)" v:mid="33" v:groupcontext="group">				<title>工作表.33</title>				<g id="group34-59" v:mid="34" v:groupcontext="group">					<v:userdefs></v:userdefs>					<title>shape15-27</title>					<desc>Syslogs</desc>					<g id="shape35-60" v:mid="35" v:groupcontext="shape">						<title>shape29-54</title>						<path d="M0 234.75 A9.0002 9.0002 -180 0 0 9 243.75 L119.77 243.75 A9.0002 9.0002 -180 0 0 128.77 234.75									 L128.77 209.15 A9.0002 9.0002 -180 0 0 119.77 200.15 L9 200.15 A9.0002 9.0002 -180 0 0 0									 209.15 L0 234.75 Z" class="st6"></path>					</g>					<g id="shape36-62" v:mid="36" v:groupcontext="shape" transform="translate(0.734851,-13.4002)">						<title>shape30-56</title>						<desc>Syslogs</desc>						<v:userdefs></v:userdefs>						<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>						<v:textrect cx="63.3172" cy="235.35" width="126.64" height="16.7999"></v:textrect>						<rect x="0" y="226.95" width="126.634" height="16.7999" class="st3"></rect>						<text x="35.32" y="239.9" class="st8" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Syslogs</text>						</g>				</g>			</g>		</a>		<a xlink:href="https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-12/using_open_source_debug_tools.html#journalctl-logs">			<g id="group37-65" transform="translate(498.39,-31.5004)" v:mid="37" v:groupcontext="group">				<title>工作表.37</title>				<g id="group38-66" v:mid="38" v:groupcontext="group">					<v:userdefs></v:userdefs>					<title>shape16-30</title>					<desc>Journalctl</desc>					<g id="shape39-67" v:mid="39" v:groupcontext="shape">						<title>shape32-60</title>						<path d="M0 234.75 A9.0002 9.0002 -180 0 0 9 243.75 L119.77 243.75 A9.0002 9.0002 -180 0 0 128.77 234.75									 L128.77 209.15 A9.0002 9.0002 -180 0 0 119.77 200.15 L9 200.15 A9.0002 9.0002 -180 0 0 -0									 209.15 L0 234.75 Z" class="st6"></path>					</g>					<g id="shape40-69" v:mid="40" v:groupcontext="shape" transform="translate(34.43,-13.4002)">						<title>shape33-62</title>						<desc>Journalctl</desc>						<v:userdefs></v:userdefs>						<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>						<v:textrect cx="69.9995" cy="235.35" width="140.01" height="16.7999"></v:textrect>						<rect x="0" y="226.95" width="139.999" height="16.7999" class="st3"></rect>						<text x="-0" y="239.55" class="st7" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>Journalctl</text>						</g>				</g>			</g>		</a>	</g></g>
</svg>

**图：用于调试 Linux 用户空间中问题的资源**

使用 `packagegroup-core-tools-debug.bbappend` BitBake 文件启用受支持的开源调试工具。BitBake 文件位于： `layers/meta-qcom-hwe/recipes-devtools/packagegroups/` 此处描述了启用和使用 ltrace 等开源工具的过程。

## 使用 ltrace 调试

默认情况下，会在版本中启用 ltrace。

**前提条件**

设置 SSH，有关说明，请参阅 [SSH](https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-254/how_to.html#use-ssh) 的使用说明。

**步骤**

请使用 SSH 运行以下命令，以便使用 ltrace 进行调试：

1. 运行进程状态命令：

ps -ef
        Copy to clipboard

    示例输出：

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. 标识待调试进程的进程 ID (PID)。
3. 运行 `ltrace` 命令：

ltrace -p 345
        Copy to clipboard

    在此示例中，`345` 为 PID。

    示例输出：

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

关于更多详细信息，请参阅 [https://man7.org/linux/man-pages/man1/ltrace.1.html](https://man7.org/linux/man-pages/man1/ltrace.1.html)。

## 使用 Valgrind 调试

Valgrind 工具可以检测 C 和 C++ 程序中常见的与内存相关的错误。这些错误会导致崩溃和不可预测的行为，例如内存泄漏和内存损坏。默认情况下，会在版本中启用 Valgrind 工具。

**前提条件**

设置 SSH，有关说明，请参阅 [SSH](https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-254/how_to.html#use-ssh) 的使用说明。

**步骤**

要使用 Valgrind 工具，请执行以下操作：

1. 将调试符号推送至设备。相关说明，可参见[配置调试符号](https://docs.qualcomm.com/doc/80-70017-12SC/topic/using_open_source_debug_tools.html#debug-symbols)。
2. 在设备上运行 Valgrind 工具。

valgrind --tool=memcheck --leak-check=yes --show-reachable=yes --num-callers=20 --track-fds=yes /usr/bin/tqftpserv
        Copy to clipboard

    示例输出：

==622== Memcheck, a memory error detector

==622== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.

==622== Using Valgrind-3.18.1 and LibVEX; rerun with -h for copyright info

==622== Command: /usr/bin/tqftpserv

==622==

^C==622==

==622== Process terminating with default action of signal 2 (SIGINT)

==622==    at 0x498EF38: select (select.c:69)

==622==    by 0x4013CB: ??? (in /usr/bin/tqftpserv)

==622==    by 0x48DB1AF: (below main) (libc\_start\_call\_main.h:58)

==622==

==622== FILE DESCRIPTORS: 4 open (3 std) at exit.

==622== Open pf-42 socket 3:

==622==    at 0x49984CC: socket (syscall-template.S:120)

==622==    by 0x4891293: qrtr\_open (in /usr/lib/libqrtr.so.1.0)

==622==    by 0x40129B: ??? (in /usr/bin/tqftpserv)

==622==    by 0x48DB1AF: (below main) (libc\_start\_call\_main.h:58)

==622==

==622==

==622== HEAP SUMMARY:

==622==     in use at exit: 0 bytes in 0 blocks

==622==   total heap usage: 0 allocs, 0 frees, 0 bytes allocated

==622==

==622== All heap blocks were freed -- no leaks are possible

==622==

==622== For lists of detected and suppressed errors, rerun with: -s

==622== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)

==622== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)

关于更多详细信息，请参阅 [https://valgrind.org/](https://valgrind.org/)。

## 使用 GDB 调试

默认情况下，GNU 调试器 (GDB) 在版本中未启用。请在 Linux 主机上执行以下操作，以便启用 GDB：

1. 导航至 `layers/meta-qcom-hwe/recipes-devtools/packagegroups/` 目录并打开 `packagegroup-core-tools-debug.bbappend` 文件。
2. 验证调试符号是否已启用。

readelf --debug-dump=decodedline <BIN_FILE>
        Copy to clipboard

    或

objdump --syms <BIN_NAME> | grep -i ‘debug’
        Copy to clipboard

    如果未启用调试符号，请使用 `-g` CFLAG 编译所有必需的可执行文件或共享库。要将调试符号推送到设备，请参阅[配置调试符号](https://docs.qualcomm.com/doc/80-70017-12SC/topic/using_open_source_debug_tools.html#debug-symbols)。
3. 修改 `packagegroup-core-tools-debug.bbappend` 文件，在包列表中添加 `gdb`。如果软件包名称在软件包列表中存在，则跳过此步骤。
4. 在设备上重新编译并刷写版本。

请在设备上运行以下命令，以便使用 GDB 进行调试：

gdb --pid 502
    Copy to clipboard

示例输出：

gdb: warning: Couldn't determine a path for the index cache directory.

GNU gdb (GDB) 11.2

Copyright (C) 2022 Free Software Foundation, Inc.

License GPLv3+: GNU GPL version 3 or later &lt;[http://gnu.org/licenses/gpl.html](http://gnu.org/licenses/gpl.html)&gt;

This is free software: you are free to change and redistribute it.

There is NO WARRANTY, to the extent permitted by law.

Type "show copying" and "show warranty" for details.

This GDB was configured as "aarch64-qcom-linux".

Type "show configuration" for configuration details.

For bug reporting instructions, please see:

&lt;[https://www.gnu.org/software/gdb/bugs/](https://www.gnu.org/software/gdb/bugs/)&gt;.

Find the GDB manual and other documentation resources online at:

&lt;[http://www.gnu.org/software/gdb/documentation/](http://www.gnu.org/software/gdb/documentation/)&gt;.

For help, type "help".

Type "apropos word" to search for commands related to "word".

Attaching to process 502

Reading symbols from /usr/bin/tqftpserv...

(No debugging symbols found in /usr/bin/tqftpserv)

Reading symbols from /usr/lib/libqrtr.so.1...

(No debugging symbols found in /usr/lib/libqrtr.so.1)

Reading symbols from /lib/libc.so.6...

Reading symbols from /lib/.debug/libc.so.6...

Reading symbols from /lib/ld-linux-aarch64.so.1...

Reading symbols from /lib/.debug/ld-linux-aarch64.so.1...

[Thread debugging using libthread\_db enabled]

Using host libthread\_db library "/lib/libthread\_db.so.1".

0x0000ffffab00ef34 in \_\_GI\_\_\_select (nfds=4, readfds=0xffffc2ec14f8, writefds=0x0, exceptfds=0x0, timeout=0x0) at ../sysdeps/unix/sysv/linux/select.c:69

69      ../sysdeps/unix/sysv/linux/select.c: No such file or directory.

(gdb)

(gdb)

(gdb)

(gdb)

下表列出了常用的GDB命令。

表：常用GDB命令

| 命令 | 说明 |
| --- | --- |
| `(gdb) bt` | 提供当前线程的回溯。 |
| `(gdb) info threads` | 列出当前已知线程的 ID。 |
| `(gdb) thread 2` | 切换到线程2。 |
| `(gdb) where` | 显示当前行号和您所在的函数。 |
| `(gdb) thread apply all bt full` | 提供所有线程的回溯。 |
| `(gdb) info sharedlibrary` | 列出所使用的共享库的名称。 |
| `(gdb) info reg` | 列出 CPU 寄存器。 |

有关详细信息，请参见 [https://man7.org/linux/man-pages/man1/gdb.1.html](https://man7.org/linux/man-pages/man1/gdb.1.html)。

## 收集 core dump

Core dump 是用户空间进程的内存快照，可用于分析进程崩溃的原因。

根据 Yocto Linux 标准针对所有用户空间进程崩溃收集 core dump。默认情况下，core dump 在版本中启用。生成的 core dump 保存在 `/var/coredump` 处的设备上。

要验证 core dump 的位置，可运行以下命令：

cat /proc/sys/kernel/core_pattern
    Copy to clipboard

示例输出：

/var/coredump/%e.core

Core dump 的大小必须大于 0（零）。要验证 core dump 的大小，可运行以下命令：

ulimit -c
    Copy to clipboard

示例输出：

unlimited

如果未启用 core dump，请使用以下文件启用它：

`layers/meta-qcom-distro/recipes-products/packagegroups/packagegroup-qcom.bb`.

RDEPENDS:packagegroup-support-utils = "\
       chrony \
       libinput \
       libinput-bin \
       libnl \
       libxml2 \
    +++ procps \
       "
    Copy to clipboard

Note

使用此补丁启用 core dump 时，必须重新编译并重新刷写设备。

### 在 core dump 上使用 GDB

要生成 core dump，需要强制终止进程。因此，请运行以下命令：

ps -ef | grep -i 'tqftp*'
    Copy to clipboard

示例输出：

root        1024       1  0 17:46 ?        00:00:00 /usr/bin/tqftpserv

root        1047     934  0 17:47 pts/0    00:00:00 grep -i tqftp\*

kill -11 1024
    Copy to clipboard

cd /var/coredump
    Copy to clipboard

ls
    Copy to clipboard

示例输出：

tqftpserv.core

`tqftpserv.core` 为 core dump 文件。

如果调试符号已推送至设备，请运行以下命令以在 core dump 上使用 GDB 工具：

cd /usr/bin/
    Copy to clipboard

gdb tqftpserv /var/coredump/tqftpserv.core
    Copy to clipboard

示例输出：

gdb: warning: Couldn't determine a path for the index cache directory.

GNU gdb (GDB) 11.2

Copyright (C) 2022 Free Software Foundation, Inc.

License GPLv3+: GNU GPL version 3 or later &lt;[http://gnu.org/licenses/gpl.html](http://gnu.org/licenses/gpl.html)&gt;

This is free software: you are free to change and redistribute it.

Type "apropos word" to search for commands related to "word"...

Reading symbols from tqftpserv...

warning: exec file is newer than core file.

[New LWP 1024]

[Thread debugging using libthread\_db enabled]

Using host libthread\_db library "/lib/libthread\_db.so.1".

Core was generated by [`](https://docs.qualcomm.com/doc/80-70017-12SC/topic/using_open_source_debug_tools.html#id2)/usr/bin/tqftpserv'.

Program terminated with signal SIGSEGV, Segmentation fault.

#0  0x0000ffff8629ef34 in \_\_GI\_\_\_select (nfds=4,

[readfds=readfds@entry=0xffffd04ccb28](mailto:readfds=readfds%40entry=0xffffd04ccb28), [writefds=writefds@entry=0x0](mailto:writefds=writefds%40entry=0x0),

--Type &lt;RET&gt; for more, q to quit, c to continue without paging--

[exceptfds=exceptfds@entry=0x0](mailto:exceptfds=exceptfds%40entry=0x0), [timeout=timeout@entry=0x0](mailto:timeout=timeout%40entry=0x0))

at ../sysdeps/unix/sysv/linux/select.c:69

69      ../sysdeps/unix/sysv/linux/select.c: No such file or directory.

(gdb) bt

#0  0x0000ffff8629ef34 in \_\_GI\_\_\_select (nfds=4,

[readfds=readfds@entry=0xffffd04ccb28](mailto:readfds=readfds%40entry=0xffffd04ccb28), [writefds=writefds@entry=0x0](mailto:writefds=writefds%40entry=0x0),

[exceptfds=exceptfds@entry=0x0](mailto:exceptfds=exceptfds%40entry=0x0), [timeout=timeout@entry=0x0](mailto:timeout=timeout%40entry=0x0))

at ../sysdeps/unix/sysv/linux/select.c:69

#1  0x00000000004013cc in main (argc=&lt;optimized out&gt;, argv=&lt;optimized out&gt;)

at tqftpserv.c:552

Backtrace stopped: previous frame identical to this frame (corrupt stack?)

(gdb)

关于更多详细信息，请参阅 [https://man7.org/linux/man-pages/man5/core.5.html](https://man7.org/linux/man-pages/man5/core.5.html)。

## 使用 gdbserver 调试

gdbserver 工具允许用户从 Linux 主机远程运行 GDB 工具。当设备上的调试符号存在存储限制时，此工具对于调试非常有帮助。

### 在设备上启用 gdbserver

默认情况下，不会在版本中启用 gdbserver。要启用 gdbserver，可执行以下操作：

1. 转至 `layers/meta-qcom-hwe/recipes-devtools/packagegroups/` 目录并打开 `packagegroup-core-tools-debug.bbappend` 文件。
2. 修改 `packagegroup-core-tools-debug.bbappend` 文件，将 `gdbserver` 添加到包列表中。
3. 在设备上重新编译并刷写版本。

### 在设备上配置 gdbserver

要在设备上配置 gdbserver，可使用 SSH 运行以下命令：

mount -o rw,remount /
    Copy to clipboard

gdbserver :8888 <path-to-binary>
    Copy to clipboard

例如：

gdbserver :8888 /usr/bin/tqftpserv
    Copy to clipboard

示例输出：

![../../_images/gdbserver-configuration-on-device.png](data:image/png;base64,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)

示例输出指示设备已准备好与 Linux 主机通信。

### 在 Linux 主机上配置 gdb

请执行以下操作，在 Linux 主机上配置 gdb 工具：

1. 安装 gdb 和 gdb-multiarch 工具。

sudo apt-get install gdb gdb-multiarch
        Copy to clipboard
2. 创建调试目录以采集版本中的所有符号。

mkdir test_gdbserver
        Copy to clipboard
3. 将具有调试符号的 rootfs 从编译位置复制到 `test_gdbserver` 调试目录中。

cp -f <ENTER_PATH>/build-qcom-wayland/tmp-glibc/deploy/images/<chipset>/qcom-multimedia-image-<chipset>-dbg.rootfs.tar.bz2  test_gdbserver
        Copy to clipboard

cd test_gdbserver
        Copy to clipboard

tar -xvf qcom-multimedia-image-<chipset>-dbg.rootfs.tar.bz2
        Copy to clipboard

Note

运行这些命令时，将 `<chipset>` 替换为下表中指定的适当值。

    | 芯片组 | 值 |
    | --- | --- |
    | QCS6490 | `qcm6490` |
    | QCS5430 | `qcm6490` |
    | QCS8275 | `qcs8300` |
    | QCS9075 | `qcs9100` |
    |  |  |

    `test_gdbserver` 现已准好这些符号。
4. 使用 `gdb-multiarch <EXECUTABLE_PATH>` 命令启动 gdb-multiarch 工具。

    例如，

gdb-multiarch test_gdbserver/usr/bin/tqftpserv
        Copy to clipboard

    gdb-multiarch 工具在 gdb 控制台上启动。
5. 在 gdb 控制台上运行以下命令：

set gnutarget elf64-littleaarch64
        Copy to clipboard

    设置 sysroot &lt;path-to-new-debug-directory&gt;。

set sysroot <ENTER_PATH>/test_gdbserver
        Copy to clipboard

target remote <target_ip>:8888
        Copy to clipboard

bt
        Copy to clipboard

b
        Copy to clipboard

info threads
        Copy to clipboard

以下屏幕截图显示了配置过程的示例输出。

![../../_images/configure-gdb-linux-host-1.png](data:image/png;base64,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)

$ gdb-multiarch /test\_gdbserver/usr/bin/.debug/tqftpserv

GNU gdb (Ubuntu 9.2-0ubuntu1~20.04.2) 9.2

Copyright (C) 2020 Free Software Foundation, Inc.

License GPLv3+: GNU GPL version 3 or later [http://gnu.org/licenses/gpl.html](http://gnu.org/licenses/gpl.html)

This is free software: you are free to change and redistribute it.

There is NO WARRANTY, to the extent permitted by law.

Type "show copying" and "show warranty" for details.

This GDB was configured as "x86\_64-linux-gnu".

Type "show configuration" for configuration details.

For bug reporting instructions, please see:

[http://www.gnu.org/software/gdb/bugs/](http://www.gnu.org/software/gdb/bugs/).

Find the GDB manual and other documentation resources online at:

[http://www.gnu.org/software/gdb/documentation/](http://www.gnu.org/software/gdb/documentation/).

Reading symbols from /test\_gdbserver/usr/bin/.debug/tqftpserv...

(gdb) set gnutarget elf64-littleaarch64

(gdb) set sysroot /test\_gdbserver

(gdb) target remote 10.92.168.78:8888

Remote debugging using 10.92.168.78:8888

warning: while parsing target description (at line 71): Vector "v8bf16" references undefined type "bfloat16"

warning: Could not load XML target description; ignoring

warning: Unable to find dynamic linker breakpoint function.

Reading symbols from /test\_gdbserver/lib/ld-linux-aarch64.so.1...

(no debugging symbols found)...done.

Reading symbols from /test\_gdbserver/lib/.debug/ld-linux-aarch64.so.1...

Loaded symbols for /test\_gdbserver/lib/.debug/ld-linux-aarch64.so.1

warning: no loadable sections found in added symbol-file system-supplied DSO at 0xfffff7ffb000

0x0000fffff7fda870 in \_start ()

from /test\_gdbserver/lib/.debug/ld-linux-aarch64.so.1

(gdb) bt

#0 0x0000fffff7fda870 in \_start ()

from /test\_gdbserver/lib/.debug/ld-linux-aarch64.so.1

#1 0x0000000000000000 in ?? ()

(gdb) b

Breakpoint 1 at 0xfffff7fda870

(gdb) info threads

Id   Target Id                     Frame

\* 1    Thread 3212                   0x0000fffff7fda870 in \_start ()

(gdb)

有关详细信息，请参见 [https://man7.org/linux/man-pages/man1/gdbserver.1.html](https://man7.org/linux/man-pages/man1/gdbserver.1.html)。

## 使用用户空间日志进行调试

以下日志可用于在设备上使用SSH调试用户空间中的问题。

### 系统日志

请运行以下命令，以便验证是否生成了系统日志：

cat /var/log/user.log
    Copy to clipboard

如果未生成系统日志，请运行以下命令：

tail -f /var/log/messages
    Copy to clipboard

示例日志：

Apr 28 17:42:30 qcm6490 daemon.info avahi-daemon[516]: No service file found in /etc/avahi/services.

Apr 28 17:42:30 qcm6490 daemon.info avahi-daemon[516]: Joining mDNS multicast group on interface lo.IPv6 with address ::1.

Apr 28 17:42:30 qcm6490 daemon.info avahi-daemon[516]: New relevant interface lo.IPv6 for mDNS.

Apr 28 17:42:30 qcm6490 daemon.info avahi-daemon[516]: Joining mDNS multicast group on interface lo.IPv4 with address 127.0.0.1.

Apr 28 17:42:30 qcm6490 daemon.info avahi-daemon[516]: New relevant interface lo.IPv4 for mDNS.

### journalctl 日志

要生成 systemd Journalctl 日志，请运行以下命令：

journalctl -ef
    Copy to clipboard

示例日志：

Apr 28 17:42:28 qcm6490 kernel: spmi-temp-alarm c440000.spmi:pmic@2:temp-alarm@2400: error -ENXIO: IRQ index 0 not found

Apr 28 17:42:28 qcm6490 kernel: qcom-spmi-adc5 c440000.spmi:pmic@2:adc@3100: Invalid dig version read -19

Apr 28 17:42:28 qcm6490 kernel: qcom-spmi-adc5 c440000.spmi:pmic@2:adc@3100: error -ENODEV: adc get dt data failed

Apr 28 17:42:28 qcm6490 kernel: qcom-spmi-adc5 c440000.spmi:pmic@0:adc@3100: error -EINVAL: adc get dt data failed

Apr 28 17:42:28 qcm6490 kernel: qcom-spmi-adc5: probe of c440000.spmi:pmic@0:adc@3100 failed with error -22

Apr 28 17:42:28 qcm6490 kernel: dwc3 a600000.usb: Adding to iommu group

Apr 28 17:42:29 qcm6490 systemd[1]: First Boot Complete was skipped because of a failed condition check (ConditionFirstBoot=yes).

Apr 28 17:42:29 qcm6490 systemd[1]: Reached target Hardware activated USB gadget.

## 配置调试符号

解析 core dump 需要调试符号；Yocto Linux 按照设计，编译一个软件包并将其拆分为多个软件包。例如，`hello_0.1.bb` 文件编译 `hello.cpp` 文件，会生成多个包。

下表列出了与 core dump 相关的软件包。

表格：解析 core dump 所需的软件包

| 软件包 | 说明 |
| --- | --- |
| `hello_0.1-r0_armv8-2a.ipk` | 此软件包包含一个 stripped 的可执行文件。它是设备映像中包含的唯一软件包。 |
| `hello-dbg_0.1-r0_armv8-2a.ipk` | 此软件包包含调试符号，永远不会在镜像中打包。调试包(-dbg)会显著增加映像大小，从而导致在映像中包含此包时出现问题。此外，除了调试之外，此软件包没有运行时值。因此，作为一种策略，Yocto 不会在图像中包含任何 -dbg 包。 |
| `hello-dev_0.1-r0_armv8-2a.ipk` | 此软件包包含相关模块编译时使用的导出头文件和导出库。 |

根据 Yocto Linux 标准，调试符号存储在版本位置路径： `tmp-glibc/deploy/ipk/armv8-2a`。例如，`tqftpserv-dbg_0.0+0+de42697a24-r0_armv8-2a.ipk` 包包含 `/usr/bin/tqftpserv` 目录的调试符号。

请使用 SSH 执行以下操作，以便将调试符号推送至设备。

1. 重新挂载 rootfs。

mount -o rw,remount /
        Copy to clipboard
2. 使用 `scp` 命令，将调试符号 (`tqftpserv-dbg_0.0+0+de42697a24-r0_armv8-2a.ipk`) 推送到设备的任何可用分区（例如 `/data/`）。

chmod 777 /data/tqftpserv-dbg_0.0+0+de42697a24-r0_armv8-2a.ipk
        Copy to clipboard

cd data
        Copy to clipboard
3. 在设备上安装调试符号。

opkg install --nodeps tqftpserv-dbg_0.0+0+de42697a24-r0_armv8-2a.ipk
        Copy to clipboard

将调试符号推送到设备后，这些符号保存在 `.debug` 目录中可执行目录的路径下。例如，关于 `/usr/bin/tqftpserv` 目录，调试符号保存在 `/usr/bin/.debug` 目录中。

请运行以下命令，以便识别设备上可用的调试符号：

cd /usr/bin/.debug
    Copy to clipboard

ls
    Copy to clipboard

示例输出：

gencat   getent  locale  pcprofiledump  sprof      zdump

getconf  iconv   makedb  pldd   tqftpserv

## 重启命令

用户空间重启框架使用内核驱动程序 (`drivers/firmware/psci/psci.c`) 触发重启。可以使用 SSH 运行以下重新启动命令：

表：重启命令

| 命令 | 说明 |
| --- | --- |
| `reboot edl` | 此命令会将设备重启为紧急下载 (EDL) 模式。有关 EDL 模式的更多信息，参见 [Qualcomm Linux 编译指南](https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-254/flash_images.html#move-to-edl-mode)。 |
| `reboot bootloader` | 此命令会将设备重启为 Fastboot 模式。有关 Fastboot 模式的更多信息，参见 [Qualcomm Linux 启动指南](https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-4/tools.html#fastboot)。 |

以下是可与 `reboot` 命令一起使用的可选参数。

![../../_images/reboot-command-options.png](data:image/png;base64,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)

Last Published: Jan 23, 2025

[Previous Topic
概述](https://docs.qualcomm.com/bundle/publicresource/80-70017-12SC/topics/Debug-overview.md) [Next Topic
调试 Linux 内核空间问题](https://docs.qualcomm.com/bundle/publicresource/80-70017-12SC/topics/debugging_linux_kernel.md)

Source: [https://docs.qualcomm.com/doc/80-70017-12SC/topic/using_open_source_debug_tools.html](https://docs.qualcomm.com/doc/80-70017-12SC/topic/using_open_source_debug_tools.html)