def _statistics(self, trace_addrs) -> None:
        """
        :param trace: basic block address list
        """
        self.mapped_trace = []
        for addr in trace_addrs:
            converted_addr = self._apply_trace_offset(addr)
            if converted_addr is not None:
                self.mapped_trace.append(converted_addr)

        bbls = filter(self._get_bbl, self.mapped_trace)
        functions = self.workspace.main_instance.project.kb.functions

        for p, bbl_addr in enumerate(bbls):
            node = self.workspace.main_instance.cfg.get_any_node(bbl_addr)
            # if node is None:  # try again without assuming node is start of a basic block
            #     node = self.workspace.instance.cfg.get_any_node(bbl_addr, anyaddr=True)

            func = None
            if node is not None:
                if node.instruction_addrs is not None:
                    instr_addrs = node.instruction_addrs
                else:
                    # relift
                    block = self.workspace.main_instance.project.factory.block(bbl_addr)
                    instr_addrs = block.instruction_addrs
                for addr in instr_addrs:
                    self._positions[addr].append(p)

                func_addr = node.function_address
                if func_addr is not None and functions.contains_addr(func_addr):
                    func = functions.get_by_addr(func_addr)
                    func_name = func.demangled_name
                else:
                    func_name = "Unknown"
                self.func_addr_in_trace.add(func_addr)
            else:
                # Node is not found in the CFG. It's possible that the library is not loaded
                func_name = hex(bbl_addr)  # default to using bbl_addr as name if none is not found
                # log.warning("Node at %x is None, using bbl_addr as function name", bbl_addr)
            self.trace_func.append(TraceFunc(bbl_addr, func_name, func))

            if p % 5000 == 0:
                print("... trace loading progress: %.02f%%" % (p * 100 / len(self.mapped_trace)))

        print("Trace is loaded.")
        self.count = len(self.trace_func)

        :param trace: basic block address list
        
angrmanagement/plugins/trace_viewer/trace_statistics.py