Source code for angr.analyses.decompiler.region_simplifiers.node_address_finder
# pylint:disable=unused-argument,arguments-differ
from typing import Set
import ailment
from ..sequence_walker import SequenceWalker
[docs]class NodeAddressFinder(SequenceWalker):
"""
Walk the entire node and collect all addresses of nodes.
"""
[docs] def __init__(self, node):
handlers = {
ailment.Block: self._handle_Block,
}
super().__init__(handlers=handlers)
self.addrs: Set[int] = set()
self.walk(node)
def _handle_Block(self, node: ailment.Block, **kwargs):
self.addrs.add(node.addr)