<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.nixos.org/w/index.php?action=history&amp;feed=atom&amp;title=Debug_Symbols</id>
	<title>Debug Symbols - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.nixos.org/w/index.php?action=history&amp;feed=atom&amp;title=Debug_Symbols"/>
	<link rel="alternate" type="text/html" href="https://wiki.nixos.org/w/index.php?title=Debug_Symbols&amp;action=history"/>
	<updated>2026-04-05T20:34:28Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.0</generator>
	<entry>
		<id>https://wiki.nixos.org/w/index.php?title=Debug_Symbols&amp;diff=29426&amp;oldid=prev</id>
		<title>Tbertels: /* nixseparatedebuginfo */ Update to nixseparatedebuginfod2</title>
		<link rel="alternate" type="text/html" href="https://wiki.nixos.org/w/index.php?title=Debug_Symbols&amp;diff=29426&amp;oldid=prev"/>
		<updated>2026-01-12T12:48:26Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;nixseparatedebuginfo: &lt;/span&gt; Update to nixseparatedebuginfod2&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 12:48, 12 January 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l132&quot;&gt;Line 132:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 132:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== nixseparatedebuginfo ====&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== nixseparatedebuginfo ====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[https://github.com/symphorien/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nixseparatedebuginfod nixseparatedebuginfod&lt;/del&gt;] is a debuginfod server that can download the relevant debug outputs and source files as needed by debuginfod-capable tools. Compared to dwarffs, it does not require root access, and handles debug outputs of derivations not built by hydra (eg locally or on a custom binary cache) and source files. Gdb is built with support for debuginfod, and valgrind has support if you additionally install the bin output of elfutils.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[https://github.com/symphorien/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nixseparatedebuginfod2 nixseparatedebuginfod2&lt;/ins&gt;] is a debuginfod server that can download the relevant debug outputs and source files as needed by debuginfod-capable tools. Compared to dwarffs, it does not require root access, and handles debug outputs of derivations not built by hydra (eg locally or on a custom binary cache) and source files. Gdb is built with support for debuginfod, and valgrind has support if you additionally install the bin output of elfutils.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Nixpkgs]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Nixpkgs]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mediawiki:diff:1.41:old-21518:rev-29426:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Tbertels</name></author>
	</entry>
	<entry>
		<id>https://wiki.nixos.org/w/index.php?title=Debug_Symbols&amp;diff=21518&amp;oldid=prev</id>
		<title>Pigs: Add category nixpkgs</title>
		<link rel="alternate" type="text/html" href="https://wiki.nixos.org/w/index.php?title=Debug_Symbols&amp;diff=21518&amp;oldid=prev"/>
		<updated>2025-05-18T16:43:58Z</updated>

		<summary type="html">&lt;p&gt;Add category nixpkgs&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 16:43, 18 May 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l133&quot;&gt;Line 133:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 133:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== nixseparatedebuginfo ====&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== nixseparatedebuginfo ====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[https://github.com/symphorien/nixseparatedebuginfod nixseparatedebuginfod] is a debuginfod server that can download the relevant debug outputs and source files as needed by debuginfod-capable tools. Compared to dwarffs, it does not require root access, and handles debug outputs of derivations not built by hydra (eg locally or on a custom binary cache) and source files. Gdb is built with support for debuginfod, and valgrind has support if you additionally install the bin output of elfutils.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[https://github.com/symphorien/nixseparatedebuginfod nixseparatedebuginfod] is a debuginfod server that can download the relevant debug outputs and source files as needed by debuginfod-capable tools. Compared to dwarffs, it does not require root access, and handles debug outputs of derivations not built by hydra (eg locally or on a custom binary cache) and source files. Gdb is built with support for debuginfod, and valgrind has support if you additionally install the bin output of elfutils.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Nixpkgs]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mediawiki:diff:1.41:old-19009:rev-21518:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Pigs</name></author>
	</entry>
	<entry>
		<id>https://wiki.nixos.org/w/index.php?title=Debug_Symbols&amp;diff=19009&amp;oldid=prev</id>
		<title>Mic92: drop 23.05</title>
		<link rel="alternate" type="text/html" href="https://wiki.nixos.org/w/index.php?title=Debug_Symbols&amp;diff=19009&amp;oldid=prev"/>
		<updated>2024-12-03T08:54:46Z</updated>

		<summary type="html">&lt;p&gt;drop 23.05&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 08:54, 3 December 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l132&quot;&gt;Line 132:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 132:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== nixseparatedebuginfo ====&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== nixseparatedebuginfo ====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[https://github.com/symphorien/nixseparatedebuginfod nixseparatedebuginfod] is a debuginfod server that can download the relevant debug outputs and source files as needed by debuginfod-capable tools. Compared to dwarffs, it does not require root access, and handles debug outputs of derivations not built by hydra (eg locally or on a custom binary cache) and source files. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Since NixOS 23.05, gdb &lt;/del&gt;is built with support for debuginfod, and valgrind has support if you additionally install the bin output of elfutils&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. On earlier releases, support must be overridden by hand, for example instead of installing &amp;lt;code&amp;gt;gdb&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;/etc/nixos/configuration.nix&amp;lt;/code&amp;gt;, you should install &amp;lt;code&amp;gt;(gdb.override { enableDebuginfod = true })&amp;lt;/code&amp;gt;&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[https://github.com/symphorien/nixseparatedebuginfod nixseparatedebuginfod] is a debuginfod server that can download the relevant debug outputs and source files as needed by debuginfod-capable tools. Compared to dwarffs, it does not require root access, and handles debug outputs of derivations not built by hydra (eg locally or on a custom binary cache) and source files. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Gdb &lt;/ins&gt;is built with support for debuginfod, and valgrind has support if you additionally install the bin output of elfutils.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mediawiki:diff:1.41:old-6260:rev-19009:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Mic92</name></author>
	</entry>
	<entry>
		<id>https://wiki.nixos.org/w/index.php?title=Debug_Symbols&amp;diff=6260&amp;oldid=prev</id>
		<title>imported&gt;Symphorien: gdb is now built with debuginfod support.</title>
		<link rel="alternate" type="text/html" href="https://wiki.nixos.org/w/index.php?title=Debug_Symbols&amp;diff=6260&amp;oldid=prev"/>
		<updated>2024-01-02T21:32:43Z</updated>

		<summary type="html">&lt;p&gt;gdb is now built with debuginfod support.&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 21:32, 2 January 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l132&quot;&gt;Line 132:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 132:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== nixseparatedebuginfo ====&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== nixseparatedebuginfo ====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[https://github.com/symphorien/nixseparatedebuginfod nixseparatedebuginfod] is a debuginfod server that can download the relevant debug outputs and source files as needed by debuginfod-capable tools. Compared to dwarffs, it does not require root access, and handles debug outputs of derivations not built by hydra (eg locally or on a custom binary cache) and source files. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;As of &lt;/del&gt;NixOS &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;22&lt;/del&gt;.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;11&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;only hotspot &lt;/del&gt;is built with debuginfod support by &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;default&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;and notably not gdb so &lt;/del&gt;instead of installing &amp;lt;code&amp;gt;gdb&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;/etc/nixos/configuration.nix&amp;lt;/code&amp;gt;, you should install &amp;lt;code&amp;gt;(gdb.override { enableDebuginfod = true })&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[https://github.com/symphorien/nixseparatedebuginfod nixseparatedebuginfod] is a debuginfod server that can download the relevant debug outputs and source files as needed by debuginfod-capable tools. Compared to dwarffs, it does not require root access, and handles debug outputs of derivations not built by hydra (eg locally or on a custom binary cache) and source files. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Since &lt;/ins&gt;NixOS &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;23&lt;/ins&gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;05&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;gdb &lt;/ins&gt;is built with &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;support for &lt;/ins&gt;debuginfod&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, and valgrind has &lt;/ins&gt;support &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;if you additionally install the bin output of elfutils. On earlier releases, support must be overridden &lt;/ins&gt;by &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hand&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;for example &lt;/ins&gt;instead of installing &amp;lt;code&amp;gt;gdb&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;/etc/nixos/configuration.nix&amp;lt;/code&amp;gt;, you should install &amp;lt;code&amp;gt;(gdb.override { enableDebuginfod = true })&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mediawiki:diff:1.41:old-6259:rev-6260:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>imported&gt;Symphorien</name></author>
	</entry>
	<entry>
		<id>https://wiki.nixos.org/w/index.php?title=Debug_Symbols&amp;diff=6259&amp;oldid=prev</id>
		<title>imported&gt;Symphorien: mention nixseparatedebuginfod</title>
		<link rel="alternate" type="text/html" href="https://wiki.nixos.org/w/index.php?title=Debug_Symbols&amp;diff=6259&amp;oldid=prev"/>
		<updated>2023-02-25T13:53:08Z</updated>

		<summary type="html">&lt;p&gt;mention nixseparatedebuginfod&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 13:53, 25 February 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l130&quot;&gt;Line 130:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 130:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== dwarffs ====&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== dwarffs ====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To avoid the need to explicitly list every dependency in &amp;lt;code&amp;gt;environment.systemPackages&amp;lt;/code&amp;gt; to have its debug output available, you can use [https://github.com/edolstra/dwarffs dwarffs]. It will create a virtual file system where gdb will be able to look for separate debug symbols for packages on-demand. The downside is that it might increase gdb start up time significantly.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To avoid the need to explicitly list every dependency in &amp;lt;code&amp;gt;environment.systemPackages&amp;lt;/code&amp;gt; to have its debug output available, you can use [https://github.com/edolstra/dwarffs dwarffs]. It will create a virtual file system where gdb will be able to look for separate debug symbols for packages on-demand. The downside is that it might increase gdb start up time significantly.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;==== nixseparatedebuginfo ====&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[https://github.com/symphorien/nixseparatedebuginfod nixseparatedebuginfod] is a debuginfod server that can download the relevant debug outputs and source files as needed by debuginfod-capable tools. Compared to dwarffs, it does not require root access, and handles debug outputs of derivations not built by hydra (eg locally or on a custom binary cache) and source files. As of NixOS 22.11, only hotspot is built with debuginfod support by default, and notably not gdb so instead of installing &amp;lt;code&amp;gt;gdb&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;/etc/nixos/configuration.nix&amp;lt;/code&amp;gt;, you should install &amp;lt;code&amp;gt;(gdb.override { enableDebuginfod = true })&amp;lt;/code&amp;gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mediawiki:diff:1.41:old-6258:rev-6259:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>imported&gt;Symphorien</name></author>
	</entry>
	<entry>
		<id>https://wiki.nixos.org/w/index.php?title=Debug_Symbols&amp;diff=6258&amp;oldid=prev</id>
		<title>imported&gt;Jtojnar: Mention dwarffs</title>
		<link rel="alternate" type="text/html" href="https://wiki.nixos.org/w/index.php?title=Debug_Symbols&amp;diff=6258&amp;oldid=prev"/>
		<updated>2022-04-17T03:18:37Z</updated>

		<summary type="html">&lt;p&gt;Mention dwarffs&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 03:18, 17 April 2022&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l126&quot;&gt;Line 126:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 126:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== NixOS ====&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== NixOS ====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;By toggling &amp;lt;code&amp;gt;environment.enableDebugInfo&amp;lt;/code&amp;gt; to &#039;true&#039; in &amp;lt;code&amp;gt;/etc/nixos/configuration.nix&amp;lt;/code&amp;gt;, all&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;By toggling &amp;lt;code&amp;gt;environment.enableDebugInfo&amp;lt;/code&amp;gt; to &#039;true&#039; in &amp;lt;code&amp;gt;/etc/nixos/configuration.nix&amp;lt;/code&amp;gt;, all separate debug info derivations in your &amp;lt;code&amp;gt;systemPackages&amp;lt;/code&amp;gt; will have their debug output linked in &amp;lt;code&amp;gt;/run/current-system/sw/lib/debug/&amp;lt;/code&amp;gt; and will be automatically available to gdb&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. Though note that this will not pick up debug symbols of dependencies – you will need to add the dependencies you want to debug to &amp;lt;code&amp;gt;environment.systemPackages&amp;lt;/code&amp;gt; explicitly&lt;/ins&gt;. If a derivation you are interested in does not have separate debug info enabled, you still have to override it with an overlay for example&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;separate debug info derivations in your &amp;lt;code&amp;gt;systemPackages&amp;lt;/code&amp;gt; will have their debug output linked in &amp;lt;code&amp;gt;/run/current-system/sw/lib/debug/&amp;lt;/code&amp;gt; and&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;will be automatically available to gdb. If a derivation you are interested in does not have separate debug info enabled, you&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;==== dwarffs ====&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;still have to override it with an overlay for example.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;To avoid the need to explicitly list every dependency in &amp;lt;code&amp;gt;environment.systemPackages&amp;lt;/code&amp;gt; to have its debug output available, you can use [https://github.com/edolstra/dwarffs dwarffs]. It will create a virtual file system where gdb will be able to look for separate debug symbols for packages on-demand. The downside is that it might increase gdb start up time significantly&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mediawiki:diff:1.41:old-6257:rev-6258:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>imported&gt;Jtojnar</name></author>
	</entry>
	<entry>
		<id>https://wiki.nixos.org/w/index.php?title=Debug_Symbols&amp;diff=6257&amp;oldid=prev</id>
		<title>imported&gt;Symphorien: /* Unstripped packages */ mention the difference between dontStrip and enableDebugging</title>
		<link rel="alternate" type="text/html" href="https://wiki.nixos.org/w/index.php?title=Debug_Symbols&amp;diff=6257&amp;oldid=prev"/>
		<updated>2018-12-02T23:51:44Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Unstripped packages: &lt;/span&gt; mention the difference between dontStrip and enableDebugging&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 23:51, 2 December 2018&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l7&quot;&gt;Line 7:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 7:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Two types of packages can provide debug symbols:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Two types of packages can provide debug symbols:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== Unstripped packages ====&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== Unstripped packages ====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;To prevent stripping of a derivation, use the option &amp;lt;code&amp;gt;dontStrip = true;&amp;lt;/code&amp;gt;. This still compiles with optimisation;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;to compile with &amp;lt;code&amp;gt;-Og -ggdb&amp;lt;/code&amp;gt; in addition to disabling stripping, you can use the function &amp;lt;code&amp;gt;enableDebugging&amp;lt;/code&amp;gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Let&amp;#039;s take the example of &amp;lt;code&amp;gt;socat&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Let&amp;#039;s take the example of &amp;lt;code&amp;gt;socat&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If you install socat, then run  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If you install socat, then run  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Commands|&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Commands|&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l30&quot;&gt;Line 30:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 31:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;you see that you have debugging symbols for neither socat itself nor for dependent libraries.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;you see that you have debugging symbols for neither socat itself nor for dependent libraries.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Now, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;to &lt;/del&gt;build an unstripped socat:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Now, build an unstripped socat:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Commands|&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Commands|&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;$ nix-build -E &amp;#039;with import &amp;lt;nixpkgs&amp;gt; {}; enableDebugging socat&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;$ nix-build -E &amp;#039;with import &amp;lt;nixpkgs&amp;gt; {}; enableDebugging socat&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mediawiki:diff:1.41:old-6256:rev-6257:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>imported&gt;Symphorien</name></author>
	</entry>
	<entry>
		<id>https://wiki.nixos.org/w/index.php?title=Debug_Symbols&amp;diff=6256&amp;oldid=prev</id>
		<title>imported&gt;Symphorien: explain how to get debug info in gdb. maybe slightly too verbose.</title>
		<link rel="alternate" type="text/html" href="https://wiki.nixos.org/w/index.php?title=Debug_Symbols&amp;diff=6256&amp;oldid=prev"/>
		<updated>2018-12-02T23:42:37Z</updated>

		<summary type="html">&lt;p&gt;explain how to get debug info in gdb. maybe slightly too verbose.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Nix packages rarely embed debugging symbols, and since the notion of &amp;quot;installing&amp;quot; a package is&lt;br /&gt;
somewhat complicated with nix, one cannot &amp;quot;just&amp;quot; install the &amp;lt;code&amp;gt;foo-dev&amp;lt;/code&amp;gt; to magically get debug symbols for &amp;lt;code&amp;gt;foo&amp;lt;/code&amp;gt;. Here are some explanations on how to get debug symbols with nix, and especially on NixOS.&lt;br /&gt;
&lt;br /&gt;
By default, packages are stripped and all (most?) debug information is irrevocably lost. If you want to debug an application&lt;br /&gt;
using a library from such a package, there is little you can do to get debug symbols.&lt;br /&gt;
&lt;br /&gt;
Two types of packages can provide debug symbols:&lt;br /&gt;
==== Unstripped packages ====&lt;br /&gt;
Let&amp;#039;s take the example of &amp;lt;code&amp;gt;socat&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you install socat, then run &lt;br /&gt;
{{Commands|&lt;br /&gt;
$ gdb socat&lt;br /&gt;
Reading symbols from socat...(no debugging symbols found)...done.&lt;br /&gt;
(gdb) start&lt;br /&gt;
(gdb) info shared&lt;br /&gt;
From                To                  Syms Read   Shared Object Library&lt;br /&gt;
0x00007ffff7dd8f50  0x00007ffff7df5080  Yes (*)     /nix/store/fg4yq8i8wd08xg3fy58l6q73cjy8hjr2-glibc-2.27/lib/ld-linux-x86-64.so.2&lt;br /&gt;
0x00007ffff7bd2220  0x00007ffff7bd4fec  Yes (*)     /nix/store/fg4yq8i8wd08xg3fy58l6q73cjy8hjr2-glibc-2.27/lib/librt.so.1&lt;br /&gt;
0x00007ffff79cde80  0x00007ffff79ce705  Yes (*)     /nix/store/fg4yq8i8wd08xg3fy58l6q73cjy8hjr2-glibc-2.27/lib/libutil.so.1&lt;br /&gt;
0x00007ffff779afa0  0x00007ffff77bb274  Yes (*)     /nix/store/z2zhmrg6jcrn5iq2779mav0nnq4vm2q6-readline-6.3p08/lib/libreadline.so.6&lt;br /&gt;
0x00007ffff752b140  0x00007ffff7569c36  Yes (*)     /nix/store/9kr8r78bwk12050ppywfbhg1vrsd6dp8-openssl-1.0.2p/lib/libssl.so.1.0.0&lt;br /&gt;
0x00007ffff717d300  0x00007ffff72b893c  Yes (*)     /nix/store/fg4yq8i8wd08xg3fy58l6q73cjy8hjr2-glibc-2.27/lib/libc.so.6&lt;br /&gt;
0x00007ffff6d66200  0x00007ffff6eabb8f  Yes (*)     /nix/store/9kr8r78bwk12050ppywfbhg1vrsd6dp8-openssl-1.0.2p/lib/libcrypto.so.1.0.0&lt;br /&gt;
0x00007ffff6adbbd0  0x00007ffff6ae9641  Yes (*)     /nix/store/fg4yq8i8wd08xg3fy58l6q73cjy8hjr2-glibc-2.27/lib/libpthread.so.0&lt;br /&gt;
0x00007ffff687fce0  0x00007ffff68b9768  Yes (*)     /nix/store/s2n99784krxl91mfw3cnn9ylbb5fjvkx-ncurses-6.1/lib/libncursesw.so.6&lt;br /&gt;
0x00007ffff6663e60  0x00007ffff6664a9e  Yes (*)     /nix/store/fg4yq8i8wd08xg3fy58l6q73cjy8hjr2-glibc-2.27/lib/libdl.so.2&lt;br /&gt;
(*): Shared library is missing debugging information.&lt;br /&gt;
}}&lt;br /&gt;
you see that you have debugging symbols for neither socat itself nor for dependent libraries.&lt;br /&gt;
&lt;br /&gt;
Now, to build an unstripped socat:&lt;br /&gt;
{{Commands|&lt;br /&gt;
$ nix-build -E &amp;#039;with import &amp;lt;nixpkgs&amp;gt; {}; enableDebugging socat&amp;#039;&lt;br /&gt;
}}&lt;br /&gt;
Let&amp;#039;s retry with gdb:&lt;br /&gt;
{{Commands|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ gdb result/bin/socat&lt;br /&gt;
Reading symbols from result/bin/socat...done.&lt;br /&gt;
(gdb) start&lt;br /&gt;
Temporary breakpoint 1, main (argc=1, argv=0x7fffffffbe38) at socat.c:84&lt;br /&gt;
84	socat.c: No such file or directory.&lt;br /&gt;
(gdb) info shared&lt;br /&gt;
From                To                  Syms Read   Shared Object Library&lt;br /&gt;
0x00007ffff7dd8f50  0x00007ffff7df5080  Yes (*)     /nix/store/fg4yq8i8wd08xg3fy58l6q73cjy8hjr2-glibc-2.27/lib/ld-linux-x86-64.so.2&lt;br /&gt;
0x00007ffff7bd2220  0x00007ffff7bd4fec  Yes (*)     /nix/store/fg4yq8i8wd08xg3fy58l6q73cjy8hjr2-glibc-2.27/lib/librt.so.1&lt;br /&gt;
0x00007ffff79cde80  0x00007ffff79ce705  Yes (*)     /nix/store/fg4yq8i8wd08xg3fy58l6q73cjy8hjr2-glibc-2.27/lib/libutil.so.1&lt;br /&gt;
0x00007ffff779afa0  0x00007ffff77bb274  Yes (*)     /nix/store/z2zhmrg6jcrn5iq2779mav0nnq4vm2q6-readline-6.3p08/lib/libreadline.so.6&lt;br /&gt;
0x00007ffff752b140  0x00007ffff7569c36  Yes (*)     /nix/store/9kr8r78bwk12050ppywfbhg1vrsd6dp8-openssl-1.0.2p/lib/libssl.so.1.0.0&lt;br /&gt;
0x00007ffff717d300  0x00007ffff72b893c  Yes (*)     /nix/store/fg4yq8i8wd08xg3fy58l6q73cjy8hjr2-glibc-2.27/lib/libc.so.6&lt;br /&gt;
0x00007ffff6d66200  0x00007ffff6eabb8f  Yes (*)     /nix/store/9kr8r78bwk12050ppywfbhg1vrsd6dp8-openssl-1.0.2p/lib/libcrypto.so.1.0.0&lt;br /&gt;
0x00007ffff6adbbd0  0x00007ffff6ae9641  Yes (*)     /nix/store/fg4yq8i8wd08xg3fy58l6q73cjy8hjr2-glibc-2.27/lib/libpthread.so.0&lt;br /&gt;
0x00007ffff687fce0  0x00007ffff68b9768  Yes (*)     /nix/store/s2n99784krxl91mfw3cnn9ylbb5fjvkx-ncurses-6.1/lib/libncursesw.so.6&lt;br /&gt;
0x00007ffff6663e60  0x00007ffff6664a9e  Yes (*)     /nix/store/fg4yq8i8wd08xg3fy58l6q73cjy8hjr2-glibc-2.27/lib/libdl.so.2&lt;br /&gt;
(*): Shared library is missing debugging information.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
You have got debugging symbols for socat, but not its dependencies. Also, gdb complains that it did not find the source files of socat.&lt;br /&gt;
For source files:&lt;br /&gt;
* download the tarball: &amp;lt;code&amp;gt;nix-build &amp;quot;&amp;lt;nixpkgs&amp;gt;&amp;quot; -A socat.src&amp;lt;/code&amp;gt;&lt;br /&gt;
* extract it: &amp;lt;code&amp;gt;tar xvf result&amp;lt;/code&amp;gt;&lt;br /&gt;
* back in gdb:&lt;br /&gt;
{{Commands|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
(gdb) dir /tmp/socat-1.7.3.2/&lt;br /&gt;
Source directories searched: /tmp/socat-1.7.3.2:$cdir:$cwd&lt;br /&gt;
(gdb) where&lt;br /&gt;
#0  main (argc=1, argv=0x7fffffffbe38) at socat.c:84&lt;br /&gt;
(gdb) l&lt;br /&gt;
warning: Source file is more recent than executable.&lt;br /&gt;
79	#endif&lt;br /&gt;
80	&lt;br /&gt;
81	bool havelock;&lt;br /&gt;
82	&lt;br /&gt;
83	&lt;br /&gt;
84	int main(int argc, const char *argv[]) {&lt;br /&gt;
85	   const char **arg1, *a;&lt;br /&gt;
86	   char *mainwaitstring;&lt;br /&gt;
87	   char buff[10];&lt;br /&gt;
88	   double rto;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
Semi-victory !&lt;br /&gt;
&lt;br /&gt;
To provide debug info for dependencies, we would have to recompile them all with &amp;lt;code&amp;gt;enableDebugging&amp;lt;/code&amp;gt; which is time consuming and tedious. The only reasonable solution would be to ship debugging information by default, but it would waste a lot of disk space. This leads to the second type of packages.&lt;br /&gt;
&lt;br /&gt;
==== Packages with a debug output ====&lt;br /&gt;
Some packages are built with &amp;lt;code&amp;gt;separateDebugInfo = true;&amp;lt;/code&amp;gt;. The debug symbols will be stripped from the normal output(s) of the derivation, but instead of being discarded they will be put in a special &amp;lt;code&amp;gt;debug&amp;lt;/code&amp;gt; output.&lt;br /&gt;
Since the library does not depend on this output, no disk space is wasted by default.&lt;br /&gt;
&lt;br /&gt;
The openssl package is such a derivation. Imagine you are debugging a live socat and suddenly want debug symbols for&lt;br /&gt;
openssl. Previous gdb output tells us the version of openssl we are interested in is &amp;lt;code&amp;gt;/nix/store/9kr8r78bwk12050ppywfbhg1vrsd6dp8-openssl-1.0.2p&amp;lt;/code&amp;gt;. We can get back to the original derivation:&lt;br /&gt;
{{Commands|&lt;br /&gt;
$ nix-store --query --deriver /nix/store/9kr8r78bwk12050ppywfbhg1vrsd6dp8-openssl-1.0.2p&lt;br /&gt;
/nix/store/i12c15d9rnz45as76s0nsa0nypl0fl6z-openssl-1.0.2p.drv&lt;br /&gt;
}}&lt;br /&gt;
Then we can get the store path for the debug output:&lt;br /&gt;
{{Commands|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ nix show-derivation /nix/store/i12c15d9rnz45as76s0nsa0nypl0fl6z-openssl-1.0.2p.drv | jq &amp;#039;.[]|.outputs.debug.path&amp;#039;&lt;br /&gt;
&amp;quot;/nix/store/xd69daaly33m7zid6g31glwmml7lk93f-openssl-1.0.2p-debug&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
This store path is probably not yet on our disk, so let&amp;#039;s download it:&lt;br /&gt;
{{Commands|&lt;br /&gt;
$ nix-store -r &amp;quot;/nix/store/xd69daaly33m7zid6g31glwmml7lk93f-openssl-1.0.2p-debug&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
And now we can tell gdb that debug symbols are in the &amp;lt;code&amp;gt;lib/debug&amp;lt;/code&amp;gt; subdirectory with &amp;lt;code&amp;gt;set debug-file-directory&amp;lt;/code&amp;gt;:&lt;br /&gt;
{{Commands|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ gdb result/bin/socat&lt;br /&gt;
(gdb) set debug-file-directory /nix/store/xd69daaly33m7zid6g31glwmml7lk93f-openssl-1.0.2p-debug/lib/debug&lt;br /&gt;
(gdb) start&lt;br /&gt;
(gdb) info shared&lt;br /&gt;
From                To                  Syms Read   Shared Object Library&lt;br /&gt;
0x00007ffff7dd8f50  0x00007ffff7df5080  Yes (*)     /nix/store/fg4yq8i8wd08xg3fy58l6q73cjy8hjr2-glibc-2.27/lib/ld-linux-x86-64.so.2&lt;br /&gt;
0x00007ffff7bd2220  0x00007ffff7bd4fec  Yes (*)     /nix/store/fg4yq8i8wd08xg3fy58l6q73cjy8hjr2-glibc-2.27/lib/librt.so.1&lt;br /&gt;
0x00007ffff79cde80  0x00007ffff79ce705  Yes (*)     /nix/store/fg4yq8i8wd08xg3fy58l6q73cjy8hjr2-glibc-2.27/lib/libutil.so.1&lt;br /&gt;
0x00007ffff779afa0  0x00007ffff77bb274  Yes (*)     /nix/store/z2zhmrg6jcrn5iq2779mav0nnq4vm2q6-readline-6.3p08/lib/libreadline.so.6&lt;br /&gt;
0x00007ffff752b140  0x00007ffff7569c36  Yes         /nix/store/9kr8r78bwk12050ppywfbhg1vrsd6dp8-openssl-1.0.2p/lib/libssl.so.1.0.0&lt;br /&gt;
0x00007ffff717d300  0x00007ffff72b893c  Yes (*)     /nix/store/fg4yq8i8wd08xg3fy58l6q73cjy8hjr2-glibc-2.27/lib/libc.so.6&lt;br /&gt;
0x00007ffff6d66200  0x00007ffff6eabb8f  Yes         /nix/store/9kr8r78bwk12050ppywfbhg1vrsd6dp8-openssl-1.0.2p/lib/libcrypto.so.1.0.0&lt;br /&gt;
0x00007ffff6adbbd0  0x00007ffff6ae9641  Yes (*)     /nix/store/fg4yq8i8wd08xg3fy58l6q73cjy8hjr2-glibc-2.27/lib/libpthread.so.0&lt;br /&gt;
0x00007ffff687fce0  0x00007ffff68b9768  Yes (*)     /nix/store/s2n99784krxl91mfw3cnn9ylbb5fjvkx-ncurses-6.1/lib/libncursesw.so.6&lt;br /&gt;
0x00007ffff6663e60  0x00007ffff6664a9e  Yes (*)     /nix/store/fg4yq8i8wd08xg3fy58l6q73cjy8hjr2-glibc-2.27/lib/libdl.so.2&lt;br /&gt;
(*): Shared library is missing debugging information.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
Victory!&lt;br /&gt;
&lt;br /&gt;
Unfortunately, it seems you must issue &amp;lt;code&amp;gt;set debug-file-directory&amp;lt;/code&amp;gt; before the library is loaded. If you already have typed &amp;lt;code&amp;gt;start&amp;lt;/code&amp;gt; or if you have attached a live &amp;lt;code&amp;gt;socat&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;gdb -p&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;set debug-file-directory&amp;lt;/code&amp;gt; won&amp;#039;t have any effect. In this case you can export &amp;lt;code&amp;gt;NIX_DEBUG_INFO_DIRS=/nix/store/xd69daaly33m7zid6g31glwmml7lk93f-openssl-1.0.2p-debug/lib/debug&amp;lt;/code&amp;gt; before launching gdb.&lt;br /&gt;
&lt;br /&gt;
==== NixOS ====&lt;br /&gt;
By toggling &amp;lt;code&amp;gt;environment.enableDebugInfo&amp;lt;/code&amp;gt; to &amp;#039;true&amp;#039; in &amp;lt;code&amp;gt;/etc/nixos/configuration.nix&amp;lt;/code&amp;gt;, all&lt;br /&gt;
separate debug info derivations in your &amp;lt;code&amp;gt;systemPackages&amp;lt;/code&amp;gt; will have their debug output linked in &amp;lt;code&amp;gt;/run/current-system/sw/lib/debug/&amp;lt;/code&amp;gt; and&lt;br /&gt;
will be automatically available to gdb. If a derivation you are interested in does not have separate debug info enabled, you&lt;br /&gt;
still have to override it with an overlay for example.&lt;/div&gt;</summary>
		<author><name>imported&gt;Symphorien</name></author>
	</entry>
</feed>