Skip to content

Commit

Permalink
[vm, gc] As a debugging aid, remember the previous object during heap…
Browse files Browse the repository at this point in the history
… iteration.

Bug: #36906
Change-Id: Id7214aaa475929e33e5e5ae5bc58c99eb927b74b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/127743
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
  • Loading branch information
rmacnak-google authored and commit-bot@chromium.org committed Dec 10, 2019
1 parent 964c9d8 commit 617933c
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 0 deletions.
4 changes: 4 additions & 0 deletions runtime/vm/heap/pages.cc
Original file line number Diff line number Diff line change
Expand Up @@ -96,10 +96,12 @@ void HeapPage::VisitObjects(ObjectVisitor* visitor) const {
NoSafepointScope no_safepoint;
uword obj_addr = object_start();
uword end_addr = object_end();
RawObject* volatile debugging_prev = 0; // TODO(36906): Remove.
while (obj_addr < end_addr) {
RawObject* raw_obj = RawObject::FromAddr(obj_addr);
visitor->VisitObject(raw_obj);
obj_addr += raw_obj->HeapSize();
debugging_prev = raw_obj;
}
ASSERT(obj_addr == end_addr);
}
Expand All @@ -110,9 +112,11 @@ void HeapPage::VisitObjectPointers(ObjectPointerVisitor* visitor) const {
NoSafepointScope no_safepoint;
uword obj_addr = object_start();
uword end_addr = object_end();
RawObject* volatile debugging_prev = 0; // TODO(36906): Remove.
while (obj_addr < end_addr) {
RawObject* raw_obj = RawObject::FromAddr(obj_addr);
obj_addr += raw_obj->VisitPointers(visitor);
debugging_prev = raw_obj;
}
ASSERT(obj_addr == end_addr);
}
Expand Down
4 changes: 4 additions & 0 deletions runtime/vm/heap/scavenger.cc
Original file line number Diff line number Diff line change
Expand Up @@ -956,9 +956,11 @@ void Scavenger::VisitObjectPointers(ObjectPointerVisitor* visitor) const {
(Thread::Current()->task_kind() == Thread::kCompactorTask));
MakeNewSpaceIterable();
uword cur = FirstObjectStart();
RawObject* volatile debugging_prev = 0; // TODO(36906): Remove.
while (cur < top_) {
RawObject* raw_obj = RawObject::FromAddr(cur);
cur += raw_obj->VisitPointers(visitor);
debugging_prev = raw_obj;
}
}

Expand All @@ -967,10 +969,12 @@ void Scavenger::VisitObjects(ObjectVisitor* visitor) const {
(Thread::Current()->task_kind() == Thread::kMarkerTask));
MakeNewSpaceIterable();
uword cur = FirstObjectStart();
RawObject* volatile debugging_prev = 0; // TODO(36906): Remove.
while (cur < top_) {
RawObject* raw_obj = RawObject::FromAddr(cur);
visitor->VisitObject(raw_obj);
cur += raw_obj->HeapSize();
debugging_prev = raw_obj;
}
}

Expand Down

0 comments on commit 617933c

Please sign in to comment.