Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Side by Side Diff: test/cctest/test-heap.cc

Issue 256653004: Always include debugger support. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Makefile Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « test/cctest/test-func-name-inference.cc ('k') | test/cctest/test-heap-profiler.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 1329 matching lines...) Expand 10 before | Expand all | Expand 10 after
1340 // Bump the code age so that flushing is triggered. 1340 // Bump the code age so that flushing is triggered.
1341 const int kAgingThreshold = 6; 1341 const int kAgingThreshold = 6;
1342 for (int i = 0; i < kAgingThreshold; i++) { 1342 for (int i = 0; i < kAgingThreshold; i++) {
1343 function->shared()->code()->MakeOlder(static_cast<MarkingParity>(i % 2)); 1343 function->shared()->code()->MakeOlder(static_cast<MarkingParity>(i % 2));
1344 } 1344 }
1345 1345
1346 // Simulate incremental marking so that the function is enqueued as 1346 // Simulate incremental marking so that the function is enqueued as
1347 // code flushing candidate. 1347 // code flushing candidate.
1348 SimulateIncrementalMarking(); 1348 SimulateIncrementalMarking();
1349 1349
1350 #ifdef ENABLE_DEBUGGER_SUPPORT
1351 // Enable the debugger and add a breakpoint while incremental marking 1350 // Enable the debugger and add a breakpoint while incremental marking
1352 // is running so that incremental marking aborts and code flushing is 1351 // is running so that incremental marking aborts and code flushing is
1353 // disabled. 1352 // disabled.
1354 int position = 0; 1353 int position = 0;
1355 Handle<Object> breakpoint_object(Smi::FromInt(0), isolate); 1354 Handle<Object> breakpoint_object(Smi::FromInt(0), isolate);
1356 isolate->debug()->SetBreakPoint(function, breakpoint_object, &position); 1355 isolate->debug()->SetBreakPoint(function, breakpoint_object, &position);
1357 isolate->debug()->ClearAllBreakPoints(); 1356 isolate->debug()->ClearAllBreakPoints();
1358 #endif // ENABLE_DEBUGGER_SUPPORT
1359 1357
1360 // Force optimization now that code flushing is disabled. 1358 // Force optimization now that code flushing is disabled.
1361 { v8::HandleScope scope(CcTest::isolate()); 1359 { v8::HandleScope scope(CcTest::isolate());
1362 CompileRun("%OptimizeFunctionOnNextCall(foo); foo();"); 1360 CompileRun("%OptimizeFunctionOnNextCall(foo); foo();");
1363 } 1361 }
1364 1362
1365 // Simulate one final GC to make sure the candidate queue is sane. 1363 // Simulate one final GC to make sure the candidate queue is sane.
1366 heap->CollectAllGarbage(Heap::kNoGCFlags); 1364 heap->CollectAllGarbage(Heap::kNoGCFlags);
1367 CHECK(function->shared()->is_compiled() || !function->IsOptimized()); 1365 CHECK(function->shared()->is_compiled() || !function->IsOptimized());
1368 CHECK(function->is_compiled() || !function->IsOptimized()); 1366 CHECK(function->is_compiled() || !function->IsOptimized());
(...skipping 2284 matching lines...) Expand 10 before | Expand all | Expand 10 after
3653 } 3651 }
3654 3652
3655 function = inner_scope.CloseAndEscape(handle(*f, isolate)); 3653 function = inner_scope.CloseAndEscape(handle(*f, isolate));
3656 } 3654 }
3657 3655
3658 // Simulate incremental marking so that unoptimized function is enqueued as a 3656 // Simulate incremental marking so that unoptimized function is enqueued as a
3659 // candidate for code flushing. The shared function info however will not be 3657 // candidate for code flushing. The shared function info however will not be
3660 // explicitly enqueued. 3658 // explicitly enqueued.
3661 SimulateIncrementalMarking(); 3659 SimulateIncrementalMarking();
3662 3660
3663 #ifdef ENABLE_DEBUGGER_SUPPORT
3664 // Now enable the debugger which in turn will disable code flushing. 3661 // Now enable the debugger which in turn will disable code flushing.
3665 CHECK(isolate->debug()->Load()); 3662 CHECK(isolate->debug()->Load());
3666 #endif // ENABLE_DEBUGGER_SUPPORT
3667 3663
3668 // This cycle will bust the heap and subsequent cycles will go ballistic. 3664 // This cycle will bust the heap and subsequent cycles will go ballistic.
3669 heap->CollectAllGarbage(Heap::kNoGCFlags); 3665 heap->CollectAllGarbage(Heap::kNoGCFlags);
3670 heap->CollectAllGarbage(Heap::kNoGCFlags); 3666 heap->CollectAllGarbage(Heap::kNoGCFlags);
3671 } 3667 }
3672 3668
3673 3669
3674 class DummyVisitor : public ObjectVisitor { 3670 class DummyVisitor : public ObjectVisitor {
3675 public: 3671 public:
3676 void VisitPointers(Object** start, Object** end) { } 3672 void VisitPointers(Object** start, Object** end) { }
(...skipping 540 matching lines...) Expand 10 before | Expand all | Expand 10 after
4217 "array;"); 4213 "array;");
4218 4214
4219 Handle<JSObject> o = 4215 Handle<JSObject> o =
4220 v8::Utils::OpenHandle(*v8::Handle<v8::Object>::Cast(result)); 4216 v8::Utils::OpenHandle(*v8::Handle<v8::Object>::Cast(result));
4221 CHECK(heap->InOldPointerSpace(o->elements())); 4217 CHECK(heap->InOldPointerSpace(o->elements()));
4222 CHECK(heap->InOldPointerSpace(*o)); 4218 CHECK(heap->InOldPointerSpace(*o));
4223 Page* page = Page::FromAddress(o->elements()->address()); 4219 Page* page = Page::FromAddress(o->elements()->address());
4224 CHECK(page->WasSwept() || 4220 CHECK(page->WasSwept() ||
4225 Marking::IsBlack(Marking::MarkBitFrom(o->elements()))); 4221 Marking::IsBlack(Marking::MarkBitFrom(o->elements())));
4226 } 4222 }
OLDNEW
« no previous file with comments | « test/cctest/test-func-name-inference.cc ('k') | test/cctest/test-heap-profiler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698