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

8 statements  

1class PyVEXError(Exception): 

2 pass 

3 

4 

5class SkipStatementsError(PyVEXError): 

6 pass 

7 

8 

9# 

10# Exceptions and notifications that post-processors can raise 

11# 

12 

13 

14class LiftingException(Exception): 

15 pass 

16 

17 

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. 

23 

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 """ 

30 

31 pass