Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.9/dist-packages/pyvex/errors.py: 100%
Shortcuts on this page
r m x toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
Shortcuts on this page
r m x toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1class PyVEXError(Exception):
2 pass
5class SkipStatementsError(PyVEXError):
6 pass
9#
10# Exceptions and notifications that post-processors can raise
11#
14class LiftingException(Exception):
15 pass
18class NeedStatementsNotification(LiftingException):
19 """
20 A post-processor may raise a NeedStatementsNotification if it needs to work with statements, but the current IRSB
21 is generated without any statement available (skip_stmts=True). The lifter will re-lift the current block with
22 skip_stmts=False upon catching a NeedStatementsNotification, and re-run the post-processors.
24 It's worth noting that if a post-processor always raises this notification for every basic block without statements,
25 it will essentially disable the skipping statement optimization, and it is bad for performance (especially for
26 CFGFast, which heavily relies on this optimization). Post-processor authors are encouraged to at least filter the
27 IRSBs based on available properties (jumpkind, next, etc.). If a post-processor must work with statements for the
28 majority of IRSBs, the author should implement it in PyVEX in C for the sake of a better performance.
29 """
31 pass