This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author xdegaye
Recipients Saim Raza, SilentGhost, barry, xdegaye
Date 2019-04-07.09:29:41
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1554629382.25.0.314812126828.issue36537@roundup.psfhosted.org>
In-reply-to
Content
@Saim wrote
> https://docs.python.org/3/reference/compound_stmts.html#the-try-statement says

This is correct, the disassembly of foo.py below demonstrates that point: BEGIN_FINALLY at bytecode index 36 starts the implementation of the 'finally' clause that deletes 'err'. But pdb is a line debugger, not a debugger at the bytecode level, so when 'foo = 1' is replaced by 'import pdb; pdb.set_trace()', the first line where pdb may stop is at line 6 and since foo() last line is line 5, pdb stops at the 'return' event for this function.

=======   foo.py   ========
def foo():
    try:
        1/0
    except Exception as err:
        foo = 1

import dis
dis.dis(foo)
===========================
  2           0 SETUP_FINALLY           12 (to 14)

  3           2 LOAD_CONST               1 (1)
              4 LOAD_CONST               2 (0)
              6 BINARY_TRUE_DIVIDE
              8 POP_TOP
             10 POP_BLOCK
             12 JUMP_FORWARD            38 (to 52)

  4     >>   14 DUP_TOP
             16 LOAD_GLOBAL              0 (Exception)
             18 COMPARE_OP              10 (exception match)
             20 POP_JUMP_IF_FALSE       50
             22 POP_TOP
             24 STORE_FAST               0 (err)
             26 POP_TOP
             28 SETUP_FINALLY            8 (to 38)

  5          30 LOAD_CONST               1 (1)
             32 STORE_FAST               1 (foo)
             34 POP_BLOCK
             36 BEGIN_FINALLY
        >>   38 LOAD_CONST               0 (None)
             40 STORE_FAST               0 (err)
             42 DELETE_FAST              0 (err)
             44 END_FINALLY
             46 POP_EXCEPT
             48 JUMP_FORWARD             2 (to 52)
        >>   50 END_FINALLY
        >>   52 LOAD_CONST               0 (None)
             54 RETURN_VALUE
===========================
History
Date User Action Args
2019-04-07 09:29:42xdegayesetrecipients: + xdegaye, barry, SilentGhost, Saim Raza
2019-04-07 09:29:42xdegayesetmessageid: <1554629382.25.0.314812126828.issue36537@roundup.psfhosted.org>
2019-04-07 09:29:42xdegayelinkissue36537 messages
2019-04-07 09:29:41xdegayecreate