diff options
author | Stephen Dolan <stephen.dolan@cl.cam.ac.uk> | 2018-07-19 13:32:30 +0100 |
---|---|---|
committer | Stephen Dolan <stephen.dolan@cl.cam.ac.uk> | 2018-08-01 11:22:14 +0100 |
commit | 0ba44c1349f235f194722d72690f2ebd7cd63a14 (patch) | |
tree | a9c59002612c202951e30d7830adfd0fdaa61b3e /tools/gdb_ocamlrun.py | |
parent | 496cf9f43d69f25bdc6f7d2373d7a421ca283e87 (diff) | |
download | ocaml-0ba44c1349f235f194722d72690f2ebd7cd63a14.tar.gz |
Cont_tag refactor.
Add continuations as a primitive in the runtime, instead of using bvars.
This simplifies many GC invariants, removing Stack_tag, dirty_domain and
fiber_ref.
Bytecode-only for the moment.
Diffstat (limited to 'tools/gdb_ocamlrun.py')
-rw-r--r-- | tools/gdb_ocamlrun.py | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/tools/gdb_ocamlrun.py b/tools/gdb_ocamlrun.py index e5b100beef..0934803cc1 100644 --- a/tools/gdb_ocamlrun.py +++ b/tools/gdb_ocamlrun.py @@ -61,16 +61,18 @@ class BlockPrinter: self.tagname = TAGS.get(self.tag, 'Block') def children(self): - if self.tag < No_scan_tag: - fields = self.p.cast(gdb.lookup_type('value').pointer()) - for i in range(self.length): - yield '[%d]' % i, (fields + i).dereference() - elif self.tagname == 'Double_array_tag': - words_per_double = \ - gdb.lookup_type('double').sizeof / gdb.lookup_type('value').sizeof - fields = self.p.cast(gdb.lookup_type('double').pointer()) - for i in range(int(self.length / words_per_double)): - yield '[%d]' % i, (fields + i).dereference() +# if self.tag < No_scan_tag: +# fields = self.p.cast(gdb.lookup_type('value').pointer()) +# for i in range(self.length): +# yield '[%d]' % i, (fields + i).dereference() +# elif self.tagname == 'Double_array_tag': +# words_per_double = \ +# gdb.lookup_type('double').sizeof / gdb.lookup_type('value').sizeof +# fields = self.p.cast(gdb.lookup_type('double').pointer()) +# for i in range(int(self.length / words_per_double)): +# yield '[%d]' % i, (fields + i).dereference() +# + return [] def to_string(self): if self.tag == 1000: |