43 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
		
		
			
		
	
	
			43 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| 
								 | 
							
								// Pick your poison.
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								// On GNU/Linux, you have few choices to get the most out of your stack trace.
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								// By default you get:
							 | 
						||
| 
								 | 
							
								//	- object filename
							 | 
						||
| 
								 | 
							
								//	- function name
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								// In order to add:
							 | 
						||
| 
								 | 
							
								//	- source filename
							 | 
						||
| 
								 | 
							
								//	- line and column numbers
							 | 
						||
| 
								 | 
							
								//	- source code snippet (assuming the file is accessible)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// Install one of the following libraries then uncomment one of the macro (or
							 | 
						||
| 
								 | 
							
								// better, add the detection of the lib and the macro definition in your build
							 | 
						||
| 
								 | 
							
								// system)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// - apt-get install libdw-dev ...
							 | 
						||
| 
								 | 
							
								// - g++/clang++ -ldw ...
							 | 
						||
| 
								 | 
							
								// #define BACKWARD_HAS_DW 1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// - apt-get install binutils-dev ...
							 | 
						||
| 
								 | 
							
								// - g++/clang++ -lbfd ...
							 | 
						||
| 
								 | 
							
								// #define BACKWARD_HAS_BFD 1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// - apt-get install libdwarf-dev ...
							 | 
						||
| 
								 | 
							
								// - g++/clang++ -ldwarf ...
							 | 
						||
| 
								 | 
							
								// #define BACKWARD_HAS_DWARF 1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// Regardless of the library you choose to read the debug information,
							 | 
						||
| 
								 | 
							
								// for potentially more detailed stack traces you can use libunwind
							 | 
						||
| 
								 | 
							
								// - apt-get install libunwind-dev
							 | 
						||
| 
								 | 
							
								// - g++/clang++ -lunwind
							 | 
						||
| 
								 | 
							
								// #define BACKWARD_HAS_LIBUNWIND 1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include "../extern/backward/backward.hpp"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace backward {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								backward::SignalHandling sh;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								} // namespace backward
							 |