diff --git a/gdb/ghc_gdb/find_refs.py b/gdb/ghc_gdb/find_refs.py index aebab98f208b30f26744c0402e6502a8130cb462..db49ed0fff1c60da30712c59bbbd6aa35c8d69e2 100644 --- a/gdb/ghc_gdb/find_refs.py +++ b/gdb/ghc_gdb/find_refs.py @@ -223,7 +223,10 @@ def refs_dot(edges: List[Edge], roots: Set[Ptr], mut_list_reachables: Dict[int, seg_blkIdx = get_nonmoving_segment(ref.referring_field) if seg_blkIdx is not None: seg, blk = seg_blkIdx - snap = int(seg['next_free_snap']) + if 'next_free_snap' in seg.type.fields(): + snap = int(seg['next_free_snap']) + else: + snap = int(gdb.parse_and_eval('Bdescr(%d)->nonmoving_segment.next_free_snap' % ref.referring_field.addr())) mark = seg['bitmap'][blk] if mark != 0: color = 'blue'