* python/python.c (gdbpy_print_stack): Call begin_line and
fprintf_filtered inside TRY_CATCH.
This commit is contained in:
parent
9e974e552d
commit
7f6a5dde44
|
@ -1,3 +1,8 @@
|
||||||
|
2013-02-28 Tom Tromey <tromey@redhat.com>
|
||||||
|
|
||||||
|
* python/python.c (gdbpy_print_stack): Call begin_line and
|
||||||
|
fprintf_filtered inside TRY_CATCH.
|
||||||
|
|
||||||
2013-02-28 Tom Tromey <tromey@redhat.com>
|
2013-02-28 Tom Tromey <tromey@redhat.com>
|
||||||
|
|
||||||
* python/python.c (gdbpy_find_pc_line): Call find_pc_line
|
* python/python.c (gdbpy_find_pc_line): Call find_pc_line
|
||||||
|
|
|
@ -1043,6 +1043,8 @@ gdbpy_flush (PyObject *self, PyObject *args, PyObject *kw)
|
||||||
void
|
void
|
||||||
gdbpy_print_stack (void)
|
gdbpy_print_stack (void)
|
||||||
{
|
{
|
||||||
|
volatile struct gdb_exception except;
|
||||||
|
|
||||||
/* Print "none", just clear exception. */
|
/* Print "none", just clear exception. */
|
||||||
if (gdbpy_should_print_stack == python_excp_none)
|
if (gdbpy_should_print_stack == python_excp_none)
|
||||||
{
|
{
|
||||||
|
@ -1055,7 +1057,10 @@ gdbpy_print_stack (void)
|
||||||
/* PyErr_Print doesn't necessarily end output with a newline.
|
/* PyErr_Print doesn't necessarily end output with a newline.
|
||||||
This works because Python's stdout/stderr is fed through
|
This works because Python's stdout/stderr is fed through
|
||||||
printf_filtered. */
|
printf_filtered. */
|
||||||
begin_line ();
|
TRY_CATCH (except, RETURN_MASK_ALL)
|
||||||
|
{
|
||||||
|
begin_line ();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
/* Print "message", just error print message. */
|
/* Print "message", just error print message. */
|
||||||
else
|
else
|
||||||
|
@ -1068,17 +1073,21 @@ gdbpy_print_stack (void)
|
||||||
/* Fetch the error message contained within ptype, pvalue. */
|
/* Fetch the error message contained within ptype, pvalue. */
|
||||||
msg = gdbpy_exception_to_string (ptype, pvalue);
|
msg = gdbpy_exception_to_string (ptype, pvalue);
|
||||||
type = gdbpy_obj_to_string (ptype);
|
type = gdbpy_obj_to_string (ptype);
|
||||||
if (msg == NULL)
|
|
||||||
|
TRY_CATCH (except, RETURN_MASK_ALL)
|
||||||
{
|
{
|
||||||
/* An error occurred computing the string representation of the
|
if (msg == NULL)
|
||||||
error message. */
|
{
|
||||||
fprintf_filtered (gdb_stderr,
|
/* An error occurred computing the string representation of the
|
||||||
_("Error occurred computing Python error" \
|
error message. */
|
||||||
"message.\n"));
|
fprintf_filtered (gdb_stderr,
|
||||||
|
_("Error occurred computing Python error" \
|
||||||
|
"message.\n"));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
fprintf_filtered (gdb_stderr, "Python Exception %s %s: \n",
|
||||||
|
type, msg);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
fprintf_filtered (gdb_stderr, "Python Exception %s %s: \n",
|
|
||||||
type, msg);
|
|
||||||
|
|
||||||
Py_XDECREF (ptype);
|
Py_XDECREF (ptype);
|
||||||
Py_XDECREF (pvalue);
|
Py_XDECREF (pvalue);
|
||||||
|
|
Loading…
Reference in New Issue