diff options
| author | serpilliere <serpilliere@users.noreply.github.com> | 2018-02-14 15:13:20 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-02-14 15:13:20 +0100 |
| commit | 9dd075f09e4f31ec7fe12e50709d9e58c65ed5f4 (patch) | |
| tree | 65d6c4f1c613822d0441bd296cc4c7e7f1136522 /miasm2/expression/simplifications.py | |
| parent | dcfadb31685d428618b88f19fcc96dd70cecfc8f (diff) | |
| parent | 0f55f0779555c38cd907143527d4ddbf26c18157 (diff) | |
| download | miasm-9dd075f09e4f31ec7fe12e50709d9e58c65ed5f4.tar.gz miasm-9dd075f09e4f31ec7fe12e50709d9e58c65ed5f4.zip | |
Merge pull request #679 from commial/refactor-expr-comp
Refactor expr simplifications tests
Diffstat (limited to 'miasm2/expression/simplifications.py')
| -rw-r--r-- | miasm2/expression/simplifications.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/miasm2/expression/simplifications.py b/miasm2/expression/simplifications.py index d3483d9e..e6c5dc54 100644 --- a/miasm2/expression/simplifications.py +++ b/miasm2/expression/simplifications.py @@ -2,6 +2,8 @@ # Simplification methods library # # # +import logging + from miasm2.expression import simplifications_common from miasm2.expression import simplifications_cond from miasm2.expression.expression_helper import fast_unify @@ -10,6 +12,12 @@ import miasm2.expression.expression as m2_expr # Expression Simplifier # --------------------- +log_exprsimp = logging.getLogger("exprsimp") +console_handler = logging.StreamHandler() +console_handler.setFormatter(logging.Formatter("%(levelname)-5s: %(message)s")) +log_exprsimp.addHandler(console_handler) +log_exprsimp.setLevel(logging.WARNING) + class ExpressionSimplifier(object): @@ -67,9 +75,15 @@ class ExpressionSimplifier(object): Return an Expr instance""" cls = expression.__class__ + debug_level = log_exprsimp.level >= logging.DEBUG for simp_func in self.expr_simp_cb.get(cls, []): # Apply simplifications + before = expression expression = simp_func(self, expression) + after = expression + + if debug_level and before != after: + log_exprsimp.debug("[%s] %s => %s", simp_func, before, after) # If class changes, stop to prevent wrong simplifications if expression.__class__ is not cls: |