Add option environment.enableDebugInfo
This makes the debug outputs of packages that have them available to programs like gdb.
This commit is contained in:
parent
c20403631d
commit
d9d5c98c56
4 changed files with 52 additions and 4 deletions
46
nixos/modules/config/debug-info.nix
Normal file
46
nixos/modules/config/debug-info.nix
Normal file
|
@ -0,0 +1,46 @@
|
|||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
{
|
||||
|
||||
options = {
|
||||
|
||||
environment.enableDebugInfo = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Some NixOS packages provide debug symbols. However, these are
|
||||
not included in the system closure by default to save disk
|
||||
space. Enabling this option causes the debug symbols to appear
|
||||
in <filename>/run/current-system/sw/lib/debug/.build-id</filename>,
|
||||
where tools such as <command>gdb</command> can find them.
|
||||
If you need debug symbols for a package that doesn't
|
||||
provide them by default, you can enable them as follows:
|
||||
<!-- FIXME: ugly, see #10721 -->
|
||||
<programlisting>
|
||||
nixpkgs.config.packageOverrides = pkgs: {
|
||||
hello = overrideDerivation pkgs.hello (attrs: {
|
||||
outputs = attrs.outputs or ["out"] ++ ["debug"];
|
||||
buildInputs = attrs.buildInputs ++ [<nixpkgs/pkgs/build-support/setup-hooks/separate-debug-info.sh>];
|
||||
});
|
||||
};
|
||||
</programlisting>
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
|
||||
config = {
|
||||
|
||||
# FIXME: currently disabled because /lib is already in
|
||||
# environment.pathsToLink, and we can't have both.
|
||||
#environment.pathsToLink = [ "/lib/debug/.build-id" ];
|
||||
|
||||
environment.outputsToLink =
|
||||
optional config.environment.enableDebugInfo "debug";
|
||||
|
||||
};
|
||||
|
||||
}
|
|
@ -103,8 +103,7 @@ in
|
|||
[ "/bin"
|
||||
"/etc/xdg"
|
||||
"/info"
|
||||
"/lib" # FIXME: remove
|
||||
#"/lib/debug/.build-id" # enables GDB to find separated debug info
|
||||
"/lib" # FIXME: remove and update debug-info.nix
|
||||
"/sbin"
|
||||
"/share/applications"
|
||||
"/share/desktop-directories"
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
[
|
||||
./config/debug-info.nix
|
||||
./config/fonts/corefonts.nix
|
||||
./config/fonts/fontconfig.nix
|
||||
./config/fonts/fontconfig-ultimate.nix
|
||||
./config/fonts/fontconfig.nix
|
||||
./config/fonts/fontdir.nix
|
||||
./config/fonts/fonts.nix
|
||||
./config/fonts/ghostscript.nix
|
||||
|
@ -22,9 +23,9 @@
|
|||
./config/system-environment.nix
|
||||
./config/system-path.nix
|
||||
./config/timezone.nix
|
||||
./config/vpnc.nix
|
||||
./config/unix-odbc-drivers.nix
|
||||
./config/users-groups.nix
|
||||
./config/vpnc.nix
|
||||
./config/zram.nix
|
||||
./hardware/all-firmware.nix
|
||||
./hardware/cpu/amd-microcode.nix
|
||||
|
|
|
@ -43,6 +43,8 @@ let
|
|||
|
||||
doInstallCheck = false;
|
||||
|
||||
separateDebugInfo = stdenv.isLinux;
|
||||
|
||||
crossAttrs = {
|
||||
postUnpack =
|
||||
'' export CPATH="${bzip2.crossDrv}/include"
|
||||
|
|
Loading…
Reference in a new issue