mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
GH-103082: Implementation of PEP 669: Low Impact Monitoring for CPython (GH-103083)
* The majority of the monitoring code is in instrumentation.c * The new instrumentation bytecodes are in bytecodes.c * legacy_tracing.c adapts the new API to the old sys.setrace and sys.setprofile APIs
This commit is contained in:
parent
dce2d38cb0
commit
411b169281
44 changed files with 6029 additions and 1625 deletions
|
@ -89,6 +89,7 @@ def main(opcode_py, outfile='Include/opcode.h', internaloutfile='Include/interna
|
|||
HAVE_ARGUMENT = opcode["HAVE_ARGUMENT"]
|
||||
MIN_PSEUDO_OPCODE = opcode["MIN_PSEUDO_OPCODE"]
|
||||
MAX_PSEUDO_OPCODE = opcode["MAX_PSEUDO_OPCODE"]
|
||||
MIN_INSTRUMENTED_OPCODE = opcode["MIN_INSTRUMENTED_OPCODE"]
|
||||
|
||||
NUM_OPCODES = len(opname)
|
||||
used = [ False ] * len(opname)
|
||||
|
@ -105,9 +106,6 @@ def main(opcode_py, outfile='Include/opcode.h', internaloutfile='Include/interna
|
|||
specialized_opmap[name] = next_op
|
||||
opname_including_specialized[next_op] = name
|
||||
used[next_op] = True
|
||||
specialized_opmap['DO_TRACING'] = 255
|
||||
opname_including_specialized[255] = 'DO_TRACING'
|
||||
used[255] = True
|
||||
|
||||
with open(outfile, 'w') as fobj, open(internaloutfile, 'w') as iobj:
|
||||
fobj.write(header)
|
||||
|
@ -120,6 +118,8 @@ def main(opcode_py, outfile='Include/opcode.h', internaloutfile='Include/interna
|
|||
fobj.write(DEFINE.format("HAVE_ARGUMENT", HAVE_ARGUMENT))
|
||||
if op == MIN_PSEUDO_OPCODE:
|
||||
fobj.write(DEFINE.format("MIN_PSEUDO_OPCODE", MIN_PSEUDO_OPCODE))
|
||||
if op == MIN_INSTRUMENTED_OPCODE:
|
||||
fobj.write(DEFINE.format("MIN_INSTRUMENTED_OPCODE", MIN_INSTRUMENTED_OPCODE))
|
||||
|
||||
fobj.write(DEFINE.format(name, op))
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue