# cache it here to ensure that modifications are not overwritten.
self.curframe_locals = self.curframe.f_locals
self.set_convenience_variable(self.curframe, '_frame', self.curframe)
+
+ if self._chained_exceptions:
+ self.set_convenience_variable(
+ self.curframe,
+ '_exception',
+ self._chained_exceptions[self._chained_exception_index],
+ )
+
return self.execRcLines()
# Can be executed earlier than 'setup' if desired
>>> with PdbTestInput([ # doctest: +ELLIPSIS, +NORMALIZE_WHITESPACE
... 'exceptions',
... 'exceptions 0',
+ ... '$_exception',
... 'up',
... 'down',
... 'exceptions 1',
+ ... '$_exception',
... 'up',
... 'down',
... 'exceptions -1',
(Pdb) exceptions 0
> <doctest test.test_pdb.test_post_mortem_chained[0]>(3)test_function_2()
-> 1/0
+ (Pdb) $_exception
+ ZeroDivisionError('division by zero')
(Pdb) up
> <doctest test.test_pdb.test_post_mortem_chained[1]>(3)test_function_reraise()
-> test_function_2()
(Pdb) exceptions 1
> <doctest test.test_pdb.test_post_mortem_chained[1]>(5)test_function_reraise()
-> raise ZeroDivisionError('reraised') from e
+ (Pdb) $_exception
+ ZeroDivisionError('reraised')
(Pdb) up
> <doctest test.test_pdb.test_post_mortem_chained[2]>(5)test_function()
-> test_function_reraise()