Search for an addr2line that supports elf32-i386. Don't print the path of addr2line as a side-effect of which. Don't uselessly pipe "grep '^ '" to addr2line's stdin. Enable as many pretty-printing and otherwise helpful options as possible (this makes the output *much* more pleasant on modern addr2lines).
		
			
				
	
	
		
			14 lines
		
	
	
	
		
			367 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			14 lines
		
	
	
	
		
			367 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
#!/bin/sh
 | 
						|
 | 
						|
# Decode the symbols from a panic EIP list
 | 
						|
 | 
						|
# Find a working addr2line
 | 
						|
for p in i386-jos-elf-addr2line addr2line; do
 | 
						|
    if which $p 2>&1 >/dev/null && \
 | 
						|
       $p -h 2>&1 | grep -q '\belf32-i386\b'; then
 | 
						|
        break
 | 
						|
    fi
 | 
						|
done
 | 
						|
 | 
						|
# Enable as much pretty-printing as this addr2line can do
 | 
						|
$p $($p -h | grep ' -[aipsf] ' | awk '{print $1}') -e kernel "$@"
 |