34 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
<section xmlns="http://docbook.org/ns/docbook"
 | 
						|
      xmlns:xlink="http://www.w3.org/1999/xlink"
 | 
						|
      xmlns:xi="http://www.w3.org/2001/XInclude"
 | 
						|
      version="5.0"
 | 
						|
      xml:id="sec-debug-build">
 | 
						|
 | 
						|
<title>Debugging Build Failures</title>
 | 
						|
 | 
						|
<para>At the beginning of each phase of the build (such as unpacking,
 | 
						|
building or installing), the set of all shell variables is written to
 | 
						|
the file <filename>env-vars</filename> at the top-level build
 | 
						|
directory.  This is useful for debugging: it allows you to recreate
 | 
						|
the environment in which a build was performed.  For instance, if a
 | 
						|
build fails, then assuming you used the <option>-K</option> flag, you
 | 
						|
can go to the output directory and <quote>switch</quote> to the
 | 
						|
environment of the builder:
 | 
						|
 | 
						|
<screen>
 | 
						|
$ nix-build -K ./foo.nix
 | 
						|
... fails, keeping build directory `/tmp/nix-1234-0'
 | 
						|
 | 
						|
$ cd /tmp/nix-1234-0
 | 
						|
 | 
						|
$ source env-vars
 | 
						|
 | 
						|
<lineannotation>(edit some files...)</lineannotation>
 | 
						|
 | 
						|
$ make
 | 
						|
 | 
						|
<lineannotation>(execution continues with the same GCC, make, etc.)</lineannotation></screen>
 | 
						|
 | 
						|
</para>
 | 
						|
 | 
						|
</section>
 |