(
vm_data: bytes,
iso_data: bytes,
default_snapshot_hash: str,
default_version: str,
input_path: Optional[str],
libapp_path: Optional[str],
)
| 665 | size = int(m_addr.group(2), 16) |
| 666 | except ValueError: |
| 667 | continue |
| 668 | if entry in seen_entry: |
| 669 | pending_name = None |
| 670 | continue |
| 671 | seen_entry.add(entry) |
| 672 | |
| 673 | functions.append( |
| 674 | { |
| 675 | "id": len(functions), |
| 676 | # Scraped out of blutter's rendered source, so a guess about |
| 677 | # the text, never `exact`. |
| 678 | "name": _name(pending_name, HEURISTIC) if pending_name else None, |
| 679 | "owner": pending_owner if pending_name else current_class, |
| 680 | "code": {"start_va": entry, "size": max(size, 1)}, |
| 681 | "code_section_va": 0, |
| 682 | "provenance": DERIVED, |
| 683 | } |
| 684 | ) |
| 685 | pending_name = None |
| 686 | pending_owner = None |
| 687 | |
| 688 | libraries = [ |
| 689 | {"id": lid, "uri": uri, "display_name": None, "provenance": DERIVED} |
| 690 | for uri, lid in library_ids.items() |
| 691 | ] |
| 692 | classes = [] |
| 693 | for (library, name), cid in class_ids.items(): |
| 694 | super_name = class_supers.get(cid) |
| 695 | super_id = class_names.get(super_name) if super_name else None |
| 696 | classes.append( |
| 697 | { |
| 698 | "id": cid, |
| 699 | "name": name, |
| 700 | "library": library, |
| 701 | # Only an edge whose target is a class we actually recovered. |
no test coverage detected