def for_each_page() -> Iterable[Page]:
    # TODO works only on x86?
    max_pfn = int(symvals.max_pfn)
    for pfn in range(max_pfn):
        try:
            yield pfn_to_page(pfn)
        except gdb.error:
            # TODO: distinguish pfn_valid() and report failures for those?
            pass