mirror of
https://github.com/microsoft/debugpy.git
synced 2025-12-23 08:48:12 +00:00
Only handle django and jinja2 exceptions if handling caught exceptions. Fixes #128
This commit is contained in:
parent
3f137dbf67
commit
f5bd826ab7
3 changed files with 105 additions and 29 deletions
|
|
@ -1,4 +1,4 @@
|
|||
/* Generated by Cython 0.29.16 */
|
||||
/* Generated by Cython 0.29.17 */
|
||||
|
||||
/* BEGIN: Cython Metadata
|
||||
{
|
||||
|
|
@ -20,8 +20,8 @@ END: Cython Metadata */
|
|||
#elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
|
||||
#error Cython requires Python 2.6+ or Python 3.3+.
|
||||
#else
|
||||
#define CYTHON_ABI "0_29_16"
|
||||
#define CYTHON_HEX_VERSION 0x001D10F0
|
||||
#define CYTHON_ABI "0_29_17"
|
||||
#define CYTHON_HEX_VERSION 0x001D11F0
|
||||
#define CYTHON_FUTURE_DIVISION 0
|
||||
#include <stddef.h>
|
||||
#ifndef offsetof
|
||||
|
|
@ -1522,6 +1522,9 @@ static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_nam
|
|||
#define __Pyx_PyObject_GenericGetAttr PyObject_GenericGetAttr
|
||||
#endif
|
||||
|
||||
/* PyObjectGetAttrStrNoError.proto */
|
||||
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name);
|
||||
|
||||
/* SetupReduce.proto */
|
||||
static int __Pyx_setup_reduce(PyObject* type_obj);
|
||||
|
||||
|
|
@ -36820,7 +36823,7 @@ static int __Pyx_ParseOptionalKeywords(
|
|||
}
|
||||
name = first_kw_arg;
|
||||
#if PY_MAJOR_VERSION < 3
|
||||
if (likely(PyString_CheckExact(key)) || likely(PyString_Check(key))) {
|
||||
if (likely(PyString_Check(key))) {
|
||||
while (*name) {
|
||||
if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key))
|
||||
&& _PyString_Eq(**name, key)) {
|
||||
|
|
@ -36847,7 +36850,7 @@ static int __Pyx_ParseOptionalKeywords(
|
|||
while (*name) {
|
||||
int cmp = (**name == key) ? 0 :
|
||||
#if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
|
||||
(PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
|
||||
(__Pyx_PyUnicode_GET_LENGTH(**name) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 :
|
||||
#endif
|
||||
PyUnicode_Compare(**name, key);
|
||||
if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
|
||||
|
|
@ -36863,7 +36866,7 @@ static int __Pyx_ParseOptionalKeywords(
|
|||
while (argname != first_kw_arg) {
|
||||
int cmp = (**argname == key) ? 0 :
|
||||
#if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
|
||||
(PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
|
||||
(__Pyx_PyUnicode_GET_LENGTH(**argname) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 :
|
||||
#endif
|
||||
PyUnicode_Compare(**argname, key);
|
||||
if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
|
||||
|
|
@ -38203,7 +38206,7 @@ static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) {
|
|||
{
|
||||
#if PY_MAJOR_VERSION >= 3
|
||||
if (level == -1) {
|
||||
if (strchr(__Pyx_MODULE_NAME, '.')) {
|
||||
if ((1) && (strchr(__Pyx_MODULE_NAME, '.'))) {
|
||||
module = PyImport_ImportModuleLevelObject(
|
||||
name, global_dict, empty_dict, list, 1);
|
||||
if (!module) {
|
||||
|
|
@ -38302,6 +38305,28 @@ static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_nam
|
|||
}
|
||||
#endif
|
||||
|
||||
/* PyObjectGetAttrStrNoError */
|
||||
static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) {
|
||||
__Pyx_PyThreadState_declare
|
||||
__Pyx_PyThreadState_assign
|
||||
if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))
|
||||
__Pyx_PyErr_Clear();
|
||||
}
|
||||
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) {
|
||||
PyObject *result;
|
||||
#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1
|
||||
PyTypeObject* tp = Py_TYPE(obj);
|
||||
if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) {
|
||||
return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1);
|
||||
}
|
||||
#endif
|
||||
result = __Pyx_PyObject_GetAttrStr(obj, attr_name);
|
||||
if (unlikely(!result)) {
|
||||
__Pyx_PyObject_GetAttrStr_ClearAttributeError();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/* SetupReduce */
|
||||
static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) {
|
||||
int ret;
|
||||
|
|
@ -38347,15 +38372,23 @@ static int __Pyx_setup_reduce(PyObject* type_obj) {
|
|||
#endif
|
||||
reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto __PYX_BAD;
|
||||
if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) {
|
||||
reduce_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_cython); if (unlikely(!reduce_cython)) goto __PYX_BAD;
|
||||
ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
|
||||
ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
|
||||
reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_reduce_cython);
|
||||
if (likely(reduce_cython)) {
|
||||
ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
|
||||
ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
|
||||
} else if (reduce == object_reduce || PyErr_Occurred()) {
|
||||
goto __PYX_BAD;
|
||||
}
|
||||
setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate);
|
||||
if (!setstate) PyErr_Clear();
|
||||
if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) {
|
||||
setstate_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate_cython); if (unlikely(!setstate_cython)) goto __PYX_BAD;
|
||||
ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
|
||||
ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
|
||||
setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate_cython);
|
||||
if (likely(setstate_cython)) {
|
||||
ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
|
||||
ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
|
||||
} else if (!setstate || PyErr_Occurred()) {
|
||||
goto __PYX_BAD;
|
||||
}
|
||||
}
|
||||
PyType_Modified((PyTypeObject*)type_obj);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -666,17 +666,27 @@ class PyDevJsonCommandProcessor(object):
|
|||
ignore_libraries = 1 if py_db.get_use_libraries_filter() else 0
|
||||
|
||||
if exception_options:
|
||||
break_raised = True
|
||||
break_uncaught = True
|
||||
break_raised = False
|
||||
break_uncaught = False
|
||||
|
||||
for option in exception_options:
|
||||
option = ExceptionOptions(**option)
|
||||
if not option.path:
|
||||
continue
|
||||
|
||||
# never: never breaks
|
||||
#
|
||||
# always: always breaks
|
||||
#
|
||||
# unhandled: breaks when exception unhandled
|
||||
#
|
||||
# userUnhandled: breaks if the exception is not handled by user code
|
||||
|
||||
notify_on_handled_exceptions = 1 if option.breakMode == 'always' else 0
|
||||
notify_on_unhandled_exceptions = 1 if option.breakMode in ('unhandled', 'userUnhandled') else 0
|
||||
exception_paths = option.path
|
||||
break_raised |= notify_on_handled_exceptions
|
||||
break_uncaught |= notify_on_unhandled_exceptions
|
||||
|
||||
exception_names = []
|
||||
if len(exception_paths) == 0:
|
||||
|
|
@ -724,7 +734,7 @@ class PyDevJsonCommandProcessor(object):
|
|||
ignore_libraries
|
||||
)
|
||||
|
||||
if break_raised or break_uncaught:
|
||||
if break_raised:
|
||||
btype = None
|
||||
if self._options.django_debug:
|
||||
btype = 'django'
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
/* Generated by Cython 0.29.16 */
|
||||
/* Generated by Cython 0.29.17 */
|
||||
|
||||
/* BEGIN: Cython Metadata
|
||||
{
|
||||
|
|
@ -25,8 +25,8 @@ END: Cython Metadata */
|
|||
#elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
|
||||
#error Cython requires Python 2.6+ or Python 3.3+.
|
||||
#else
|
||||
#define CYTHON_ABI "0_29_16"
|
||||
#define CYTHON_HEX_VERSION 0x001D10F0
|
||||
#define CYTHON_ABI "0_29_17"
|
||||
#define CYTHON_HEX_VERSION 0x001D11F0
|
||||
#define CYTHON_FUTURE_DIVISION 0
|
||||
#include <stddef.h>
|
||||
#ifndef offsetof
|
||||
|
|
@ -1326,6 +1326,9 @@ static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_nam
|
|||
#define __Pyx_PyObject_GenericGetAttr PyObject_GenericGetAttr
|
||||
#endif
|
||||
|
||||
/* PyObjectGetAttrStrNoError.proto */
|
||||
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name);
|
||||
|
||||
/* SetupReduce.proto */
|
||||
static int __Pyx_setup_reduce(PyObject* type_obj);
|
||||
|
||||
|
|
@ -10763,7 +10766,7 @@ static int __Pyx_ParseOptionalKeywords(
|
|||
}
|
||||
name = first_kw_arg;
|
||||
#if PY_MAJOR_VERSION < 3
|
||||
if (likely(PyString_CheckExact(key)) || likely(PyString_Check(key))) {
|
||||
if (likely(PyString_Check(key))) {
|
||||
while (*name) {
|
||||
if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key))
|
||||
&& _PyString_Eq(**name, key)) {
|
||||
|
|
@ -10790,7 +10793,7 @@ static int __Pyx_ParseOptionalKeywords(
|
|||
while (*name) {
|
||||
int cmp = (**name == key) ? 0 :
|
||||
#if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
|
||||
(PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
|
||||
(__Pyx_PyUnicode_GET_LENGTH(**name) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 :
|
||||
#endif
|
||||
PyUnicode_Compare(**name, key);
|
||||
if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
|
||||
|
|
@ -10806,7 +10809,7 @@ static int __Pyx_ParseOptionalKeywords(
|
|||
while (argname != first_kw_arg) {
|
||||
int cmp = (**argname == key) ? 0 :
|
||||
#if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
|
||||
(PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
|
||||
(__Pyx_PyUnicode_GET_LENGTH(**argname) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 :
|
||||
#endif
|
||||
PyUnicode_Compare(**argname, key);
|
||||
if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
|
||||
|
|
@ -11323,7 +11326,7 @@ static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) {
|
|||
{
|
||||
#if PY_MAJOR_VERSION >= 3
|
||||
if (level == -1) {
|
||||
if (strchr(__Pyx_MODULE_NAME, '.')) {
|
||||
if ((1) && (strchr(__Pyx_MODULE_NAME, '.'))) {
|
||||
module = PyImport_ImportModuleLevelObject(
|
||||
name, global_dict, empty_dict, list, 1);
|
||||
if (!module) {
|
||||
|
|
@ -11440,6 +11443,28 @@ static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_nam
|
|||
}
|
||||
#endif
|
||||
|
||||
/* PyObjectGetAttrStrNoError */
|
||||
static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) {
|
||||
__Pyx_PyThreadState_declare
|
||||
__Pyx_PyThreadState_assign
|
||||
if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))
|
||||
__Pyx_PyErr_Clear();
|
||||
}
|
||||
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) {
|
||||
PyObject *result;
|
||||
#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1
|
||||
PyTypeObject* tp = Py_TYPE(obj);
|
||||
if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) {
|
||||
return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1);
|
||||
}
|
||||
#endif
|
||||
result = __Pyx_PyObject_GetAttrStr(obj, attr_name);
|
||||
if (unlikely(!result)) {
|
||||
__Pyx_PyObject_GetAttrStr_ClearAttributeError();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/* SetupReduce */
|
||||
static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) {
|
||||
int ret;
|
||||
|
|
@ -11485,15 +11510,23 @@ static int __Pyx_setup_reduce(PyObject* type_obj) {
|
|||
#endif
|
||||
reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto __PYX_BAD;
|
||||
if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) {
|
||||
reduce_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_cython); if (unlikely(!reduce_cython)) goto __PYX_BAD;
|
||||
ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
|
||||
ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
|
||||
reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_reduce_cython);
|
||||
if (likely(reduce_cython)) {
|
||||
ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
|
||||
ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
|
||||
} else if (reduce == object_reduce || PyErr_Occurred()) {
|
||||
goto __PYX_BAD;
|
||||
}
|
||||
setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate);
|
||||
if (!setstate) PyErr_Clear();
|
||||
if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) {
|
||||
setstate_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate_cython); if (unlikely(!setstate_cython)) goto __PYX_BAD;
|
||||
ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
|
||||
ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
|
||||
setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate_cython);
|
||||
if (likely(setstate_cython)) {
|
||||
ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
|
||||
ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
|
||||
} else if (!setstate || PyErr_Occurred()) {
|
||||
goto __PYX_BAD;
|
||||
}
|
||||
}
|
||||
PyType_Modified((PyTypeObject*)type_obj);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue