This diff add supports for crash logs on windows for release builds. This can be toggled on/off with the `WITH_WINDOWS_PDB` cmake option. by default it is on. Things to take into consideration: Release builds are hightly optimized and the resulting backtraces can be wrong/misleading, take the backtrace as a general area where the problem resides rather than an exact location. By default we ship a minimized symbol file that can only resolve the function names. This was chosen to strike a balance between growth in size of the download vs functionality gained. If more detailed information is required such as source file + line number information a full pdb can be shipped by setting `WITH_WINDOWS_STRIPPED_PDB` to off. Differential Revision: https://developer.blender.org/D7520 Reviewed by: brecht
		
			
				
	
	
		
			69 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /*
 | |
|  * This program is free software; you can redistribute it and/or
 | |
|  * modify it under the terms of the GNU General Public License
 | |
|  * as published by the Free Software Foundation; either version 2
 | |
|  * of the License, or (at your option) any later version.
 | |
|  *
 | |
|  * This program is distributed in the hope that it will be useful,
 | |
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | |
|  * GNU General Public License for more details.
 | |
|  *
 | |
|  * You should have received a copy of the GNU General Public License
 | |
|  * along with this program; if not, write to the Free Software Foundation,
 | |
|  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 | |
|  */
 | |
| 
 | |
| #ifndef __BLI_SYSTEM_H__
 | |
| #define __BLI_SYSTEM_H__
 | |
| 
 | |
| #include <stdio.h>
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
| /** \file
 | |
|  * \ingroup bli
 | |
|  */
 | |
| 
 | |
| int BLI_cpu_support_sse2(void);
 | |
| int BLI_cpu_support_sse41(void);
 | |
| void BLI_system_backtrace(FILE *fp);
 | |
| 
 | |
| /* Get CPU brand, result is to be MEM_freeN()-ed. */
 | |
| char *BLI_cpu_brand_string(void);
 | |
| 
 | |
| /**
 | |
|  * Obtain the hostname from the system.
 | |
|  *
 | |
|  * This simply determines the host's name, and doesn't do any DNS lookup of any
 | |
|  * IP address of the machine. As such, it's only usable for identification
 | |
|  * purposes, and not for reachability over a network.
 | |
|  *
 | |
|  * \param buffer: Character buffer to write the hostname into.
 | |
|  * \param bufsize: Size of the character buffer, including trailing '\0'.
 | |
|  */
 | |
| void BLI_hostname_get(char *buffer, size_t bufsize);
 | |
| 
 | |
| /* Get maximum addressable memory in megabytes. */
 | |
| size_t BLI_system_memory_max_in_megabytes(void);
 | |
| int BLI_system_memory_max_in_megabytes_int(void);
 | |
| 
 | |
| /* getpid */
 | |
| #ifdef WIN32
 | |
| #  define BLI_SYSTEM_PID_H <process.h>
 | |
| 
 | |
| /* void* since we really do not want to drag Windows.h in to get the proper typedef. */
 | |
| void BLI_windows_handle_exception(void *exception);
 | |
| 
 | |
| #else
 | |
| #  define BLI_SYSTEM_PID_H <unistd.h>
 | |
| #endif
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 | |
| 
 | |
| #endif /* __BLI_SYSTEM_H__ */
 |