| 
									
										
										
										
											2015-10-30 15:16:48 +01:00
										 |  |  | { 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: | 
					
						
							|  |  |  |         <programlisting> | 
					
						
							|  |  |  |         nixpkgs.config.packageOverrides = pkgs: { | 
					
						
							| 
									
										
										
										
											2016-10-30 12:35:57 -04:00
										 |  |  |           hello = pkgs.hello.overrideAttrs (oldAttrs: { | 
					
						
							|  |  |  |             separateDebugInfo = true; | 
					
						
							| 
									
										
										
										
											2015-10-30 15:16:48 +01:00
										 |  |  |           }); | 
					
						
							|  |  |  |         }; | 
					
						
							|  |  |  |         </programlisting> | 
					
						
							|  |  |  |       '';
 | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-10 12:03:17 +02:00
										 |  |  |   config = mkIf config.environment.enableDebugInfo { | 
					
						
							| 
									
										
										
										
											2015-10-30 15:16:48 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     # FIXME: currently disabled because /lib is already in | 
					
						
							|  |  |  |     # environment.pathsToLink, and we can't have both. | 
					
						
							|  |  |  |     #environment.pathsToLink = [ "/lib/debug/.build-id" ]; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-10 12:03:17 +02:00
										 |  |  |     environment.extraOutputsToInstall = [ "debug" ]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     environment.variables.NIX_DEBUG_INFO_DIRS = [ "/run/current-system/sw/lib/debug" ]; | 
					
						
							| 
									
										
										
										
											2015-10-30 15:16:48 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } |