From 3c3136d43a70ad20160410fd5802cad430525cdf Mon Sep 17 00:00:00 2001 From: Alex Tereschenko Date: Fri, 2 Oct 2015 23:46:06 +0200 Subject: [PATCH] gpio.c: Log more data in ISR handler on Python error Signed-off-by: Alex Tereschenko Signed-off-by: Brendan Le Foll --- src/gpio/gpio.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/gpio/gpio.c b/src/gpio/gpio.c index cdbb334..1da45a3 100644 --- a/src/gpio/gpio.c +++ b/src/gpio/gpio.c @@ -247,6 +247,16 @@ mraa_gpio_interrupt_handler(void* arg) ret = PyEval_CallObject((PyObject*) dev->isr, arglist); if (ret == NULL) { syslog(LOG_ERR, "gpio: PyEval_CallObject failed"); + PyObject *pvalue, *ptype, *ptraceback; + PyErr_Fetch(&pvalue, &ptype, &ptraceback); + syslog(LOG_ERR, "gpio: the error was %s:%s:%s", + PyString_AsString(PyObject_Str(pvalue)), + PyString_AsString(PyObject_Str(ptype)), + PyString_AsString(PyObject_Str(ptraceback)) + ); + Py_XDECREF(pvalue); + Py_XDECREF(ptype); + Py_XDECREF(ptraceback); } else { Py_DECREF(ret); }