mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 23:21:29 +00:00 
			
		
		
		
	The Py_FatalError() function and the faulthandler module now dump the list of extension modules on a fatal error. Add _Py_DumpExtensionModules() and _PyModule_IsExtension() internal functions.
		
			
				
	
	
		
			92 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			92 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef Py_INTERNAL_PYERRORS_H
 | 
						|
#define Py_INTERNAL_PYERRORS_H
 | 
						|
#ifdef __cplusplus
 | 
						|
extern "C" {
 | 
						|
#endif
 | 
						|
 | 
						|
#ifndef Py_BUILD_CORE
 | 
						|
#  error "this header requires Py_BUILD_CORE define"
 | 
						|
#endif
 | 
						|
 | 
						|
static inline PyObject* _PyErr_Occurred(PyThreadState *tstate)
 | 
						|
{
 | 
						|
    assert(tstate != NULL);
 | 
						|
    return tstate->curexc_type;
 | 
						|
}
 | 
						|
 | 
						|
static inline void _PyErr_ClearExcState(_PyErr_StackItem *exc_state)
 | 
						|
{
 | 
						|
    PyObject *t, *v, *tb;
 | 
						|
    t = exc_state->exc_type;
 | 
						|
    v = exc_state->exc_value;
 | 
						|
    tb = exc_state->exc_traceback;
 | 
						|
    exc_state->exc_type = NULL;
 | 
						|
    exc_state->exc_value = NULL;
 | 
						|
    exc_state->exc_traceback = NULL;
 | 
						|
    Py_XDECREF(t);
 | 
						|
    Py_XDECREF(v);
 | 
						|
    Py_XDECREF(tb);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
PyAPI_FUNC(void) _PyErr_Fetch(
 | 
						|
    PyThreadState *tstate,
 | 
						|
    PyObject **type,
 | 
						|
    PyObject **value,
 | 
						|
    PyObject **traceback);
 | 
						|
 | 
						|
PyAPI_FUNC(int) _PyErr_ExceptionMatches(
 | 
						|
    PyThreadState *tstate,
 | 
						|
    PyObject *exc);
 | 
						|
 | 
						|
PyAPI_FUNC(void) _PyErr_Restore(
 | 
						|
    PyThreadState *tstate,
 | 
						|
    PyObject *type,
 | 
						|
    PyObject *value,
 | 
						|
    PyObject *traceback);
 | 
						|
 | 
						|
PyAPI_FUNC(void) _PyErr_SetObject(
 | 
						|
    PyThreadState *tstate,
 | 
						|
    PyObject *type,
 | 
						|
    PyObject *value);
 | 
						|
 | 
						|
PyAPI_FUNC(void) _PyErr_ChainStackItem(
 | 
						|
    _PyErr_StackItem *exc_info);
 | 
						|
 | 
						|
PyAPI_FUNC(void) _PyErr_Clear(PyThreadState *tstate);
 | 
						|
 | 
						|
PyAPI_FUNC(void) _PyErr_SetNone(PyThreadState *tstate, PyObject *exception);
 | 
						|
 | 
						|
PyAPI_FUNC(PyObject *) _PyErr_NoMemory(PyThreadState *tstate);
 | 
						|
 | 
						|
PyAPI_FUNC(void) _PyErr_SetString(
 | 
						|
    PyThreadState *tstate,
 | 
						|
    PyObject *exception,
 | 
						|
    const char *string);
 | 
						|
 | 
						|
PyAPI_FUNC(PyObject *) _PyErr_Format(
 | 
						|
    PyThreadState *tstate,
 | 
						|
    PyObject *exception,
 | 
						|
    const char *format,
 | 
						|
    ...);
 | 
						|
 | 
						|
PyAPI_FUNC(void) _PyErr_NormalizeException(
 | 
						|
    PyThreadState *tstate,
 | 
						|
    PyObject **exc,
 | 
						|
    PyObject **val,
 | 
						|
    PyObject **tb);
 | 
						|
 | 
						|
PyAPI_FUNC(PyObject *) _PyErr_FormatFromCauseTstate(
 | 
						|
    PyThreadState *tstate,
 | 
						|
    PyObject *exception,
 | 
						|
    const char *format,
 | 
						|
    ...);
 | 
						|
 | 
						|
PyAPI_FUNC(int) _PyErr_CheckSignalsTstate(PyThreadState *tstate);
 | 
						|
 | 
						|
PyAPI_FUNC(void) _Py_DumpExtensionModules(int fd, PyInterpreterState *interp);
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
}
 | 
						|
#endif
 | 
						|
#endif /* !Py_INTERNAL_PYERRORS_H */
 |