VM: make the debug output a little prettier
							parent
							
								
									51daaf6be4
								
							
						
					
					
						commit
						94eb855903
					
				
							
								
								
									
										13
									
								
								vm/debug.hpp
								
								
								
								
							
							
						
						
									
										13
									
								
								vm/debug.hpp
								
								
								
								
							| 
						 | 
				
			
			@ -2,15 +2,20 @@ namespace factor {
 | 
			
		|||
 | 
			
		||||
extern bool factor_print_p;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#ifdef FACTOR_DEBUG
 | 
			
		||||
 | 
			
		||||
/* To chop the directory path of the __FILE__ macro. */
 | 
			
		||||
inline const char* abbrev_path(const char* path) {
 | 
			
		||||
  const char* p1 = strrchr(path, '\\');
 | 
			
		||||
  const char* p2 = strrchr(path, '/');
 | 
			
		||||
  return (p1 > p2 ? p1 : p2) + 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#define FACTOR_PRINT(x)                                          \
 | 
			
		||||
  do {                                                           \
 | 
			
		||||
    if (factor_print_p) {                                        \
 | 
			
		||||
      std::cerr                                                  \
 | 
			
		||||
          << std::setw(28) << std::left << __FILE__              \
 | 
			
		||||
          << std::setw(16) << std::left << abbrev_path(__FILE__) \
 | 
			
		||||
          << " " << std::setw(4) << std::right << __LINE__       \
 | 
			
		||||
          << " " << std::setw(20) << std::left << __FUNCTION__   \
 | 
			
		||||
          << " " << x                                            \
 | 
			
		||||
| 
						 | 
				
			
			@ -23,3 +28,5 @@ extern bool factor_print_p;
 | 
			
		|||
#define FACTOR_PRINT(fmt, ...) ((void)0)
 | 
			
		||||
#define FACTOR_PRINT_MARK ((void)0)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue