mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 23:21:29 +00:00 
			
		
		
		
	Issue #4075: Use OutputDebugStringW in Py_FatalError.
This commit is contained in:
		
							parent
							
								
									fc29f27c16
								
							
						
					
					
						commit
						5344c99734
					
				
					 2 changed files with 19 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -22,6 +22,8 @@
 | 
			
		|||
#include <signal.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include "malloc.h" /* for alloca */
 | 
			
		||||
 | 
			
		||||
#ifdef HAVE_LANGINFO_H
 | 
			
		||||
#include <locale.h>
 | 
			
		||||
#include <langinfo.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -1628,9 +1630,21 @@ Py_FatalError(const char *msg)
 | 
			
		|||
{
 | 
			
		||||
	fprintf(stderr, "Fatal Python error: %s\n", msg);
 | 
			
		||||
#ifdef MS_WINDOWS
 | 
			
		||||
	OutputDebugString("Fatal Python error: ");
 | 
			
		||||
	OutputDebugString(msg);
 | 
			
		||||
	OutputDebugString("\n");
 | 
			
		||||
	{
 | 
			
		||||
		size_t len = strlen(msg);
 | 
			
		||||
		WCHAR* buffer;
 | 
			
		||||
		size_t i;
 | 
			
		||||
 | 
			
		||||
		/* Convert the message to wchar_t. This uses a simple one-to-one
 | 
			
		||||
		conversion, assuming that the this error message actually uses ASCII
 | 
			
		||||
		only. If this ceases to be true, we will have to convert. */
 | 
			
		||||
		buffer = alloca( (len+1) * (sizeof *buffer));
 | 
			
		||||
		for( i=0; i<=len; ++i)
 | 
			
		||||
			buffer[i] = msg[i];
 | 
			
		||||
		OutputDebugStringW(L"Fatal Python error: ");
 | 
			
		||||
		OutputDebugStringW(buffer);
 | 
			
		||||
		OutputDebugStringW(L"\n");
 | 
			
		||||
	}
 | 
			
		||||
#ifdef _DEBUG
 | 
			
		||||
	DebugBreak();
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue