• Jeffrey Yasskin's avatar
    Issue #6042: · 655d8354
    Jeffrey Yasskin yazdı
    lnotab-based tracing is very complicated and isn't documented very well.  There
    were at least 3 comment blocks purporting to document co_lnotab, and none did a
    very good job. This patch unifies them into Objects/lnotab_notes.txt which
    tries to completely capture the current state of affairs.
    
    I also discovered that we've attached 2 layers of patches to the basic tracing
    scheme. The first layer avoids jumping to instructions that don't start a line,
    to avoid problems in if statements and while loops.  The second layer
    discovered that jumps backward do need to trace at instructions that don't
    start a line, so it added extra lnotab entries for 'while' and 'for' loops, and
    added a special case for backward jumps within the same line. I replaced these
    patches by just treating forward and backward jumps differently.
    655d8354
lnotab_notes.txt 5.26 KB