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-debug.cc

Issue 1474943005: Revert of [debugger] flood function for stepping before calling it. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years 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
« no previous file with comments | « src/x64/macro-assembler-x64.cc ('k') | test/mjsunit/debug-step-into-json.js » ('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 329 matching lines...) Expand 10 before | Expand all | Expand 10 after
340 } 340 }
341 341
342 342
343 // Prepare to step to next break location. 343 // Prepare to step to next break location.
344 static void PrepareStep(StepAction step_action) { 344 static void PrepareStep(StepAction step_action) {
345 v8::internal::Debug* debug = CcTest::i_isolate()->debug(); 345 v8::internal::Debug* debug = CcTest::i_isolate()->debug();
346 debug->PrepareStep(step_action, 1, StackFrame::NO_ID); 346 debug->PrepareStep(step_action, 1, StackFrame::NO_ID);
347 } 347 }
348 348
349 349
350 static void ClearStepping() { CcTest::i_isolate()->debug()->ClearStepping(); }
351
352
353 // This function is in namespace v8::internal to be friend with class 350 // This function is in namespace v8::internal to be friend with class
354 // v8::internal::Debug. 351 // v8::internal::Debug.
355 namespace v8 { 352 namespace v8 {
356 namespace internal { 353 namespace internal {
357 354
358 // Collect the currently debugged functions. 355 // Collect the currently debugged functions.
359 Handle<FixedArray> GetDebuggedFunctions() { 356 Handle<FixedArray> GetDebuggedFunctions() {
360 Debug* debug = CcTest::i_isolate()->debug(); 357 Debug* debug = CcTest::i_isolate()->debug();
361 358
362 v8::internal::DebugInfoListNode* node = debug->debug_info_list_; 359 v8::internal::DebugInfoListNode* node = debug->debug_info_list_;
(...skipping 3471 matching lines...) Expand 10 before | Expand all | Expand 10 after
3834 "[Function.call, bar]);" 3831 "[Function.call, bar]);"
3835 "}", 3832 "}",
3836 "foo"); 3833 "foo");
3837 3834
3838 // Register a debug event listener which steps and counts. 3835 // Register a debug event listener which steps and counts.
3839 v8::Debug::SetDebugEventListener(DebugEventStep); 3836 v8::Debug::SetDebugEventListener(DebugEventStep);
3840 step_action = StepIn; 3837 step_action = StepIn;
3841 3838
3842 break_point_hit_count = 0; 3839 break_point_hit_count = 0;
3843 foo->Call(context, env->Global(), 0, NULL).ToLocalChecked(); 3840 foo->Call(context, env->Global(), 0, NULL).ToLocalChecked();
3844 CHECK_EQ(6, break_point_hit_count); 3841 CHECK_EQ(5, break_point_hit_count);
3845 3842
3846 v8::Debug::SetDebugEventListener(NULL); 3843 v8::Debug::SetDebugEventListener(NULL);
3847 CheckDebuggerUnloaded(); 3844 CheckDebuggerUnloaded();
3848 3845
3849 // Register a debug event listener which just counts. 3846 // Register a debug event listener which just counts.
3850 v8::Debug::SetDebugEventListener(DebugEventBreakPointHitCount); 3847 v8::Debug::SetDebugEventListener(DebugEventBreakPointHitCount);
3851 3848
3852 break_point_hit_count = 0; 3849 break_point_hit_count = 0;
3853 foo->Call(context, env->Global(), 0, NULL).ToLocalChecked(); 3850 foo->Call(context, env->Global(), 0, NULL).ToLocalChecked();
3854 3851
(...skipping 352 matching lines...) Expand 10 before | Expand all | Expand 10 after
4207 const char* src = "function a() { n(); }; " 4204 const char* src = "function a() { n(); }; "
4208 "function b() { c(); }; " 4205 "function b() { c(); }; "
4209 "function c() { n(); }; " 4206 "function c() { n(); }; "
4210 "function d() { x = 1; try { e(); } catch(x) { x = 2; } }; " 4207 "function d() { x = 1; try { e(); } catch(x) { x = 2; } }; "
4211 "function e() { n(); }; " 4208 "function e() { n(); }; "
4212 "function f() { x = 1; try { g(); } catch(x) { x = 2; } }; " 4209 "function f() { x = 1; try { g(); } catch(x) { x = 2; } }; "
4213 "function g() { h(); }; " 4210 "function g() { h(); }; "
4214 "function h() { x = 1; throw 1; }; "; 4211 "function h() { x = 1; throw 1; }; ";
4215 4212
4216 // Step through invocation of a. 4213 // Step through invocation of a.
4217 ClearStepping();
4218 v8::Local<v8::Function> a = CompileFunction(&env, src, "a"); 4214 v8::Local<v8::Function> a = CompileFunction(&env, src, "a");
4219 SetBreakPoint(a, 0); 4215 SetBreakPoint(a, 0);
4220 step_action = StepIn; 4216 step_action = StepIn;
4221 break_point_hit_count = 0; 4217 break_point_hit_count = 0;
4222 expected_step_sequence = "aa"; 4218 expected_step_sequence = "aa";
4223 CHECK(a->Call(context, env->Global(), 0, NULL).IsEmpty()); 4219 CHECK(a->Call(context, env->Global(), 0, NULL).IsEmpty());
4224 CHECK_EQ(StrLength(expected_step_sequence), 4220 CHECK_EQ(StrLength(expected_step_sequence),
4225 break_point_hit_count); 4221 break_point_hit_count);
4226 4222
4227 // Step through invocation of b + c. 4223 // Step through invocation of b + c.
4228 ClearStepping();
4229 v8::Local<v8::Function> b = CompileFunction(&env, src, "b"); 4224 v8::Local<v8::Function> b = CompileFunction(&env, src, "b");
4230 SetBreakPoint(b, 0); 4225 SetBreakPoint(b, 0);
4231 step_action = StepIn; 4226 step_action = StepIn;
4232 break_point_hit_count = 0; 4227 break_point_hit_count = 0;
4233 expected_step_sequence = "bcc"; 4228 expected_step_sequence = "bcc";
4234 CHECK(b->Call(context, env->Global(), 0, NULL).IsEmpty()); 4229 CHECK(b->Call(context, env->Global(), 0, NULL).IsEmpty());
4235 CHECK_EQ(StrLength(expected_step_sequence), 4230 CHECK_EQ(StrLength(expected_step_sequence),
4236 break_point_hit_count); 4231 break_point_hit_count);
4237
4238 // Step through invocation of d + e. 4232 // Step through invocation of d + e.
4239 ClearStepping();
4240 v8::Local<v8::Function> d = CompileFunction(&env, src, "d"); 4233 v8::Local<v8::Function> d = CompileFunction(&env, src, "d");
4241 SetBreakPoint(d, 0); 4234 SetBreakPoint(d, 0);
4242 ChangeBreakOnException(false, true); 4235 ChangeBreakOnException(false, true);
4243 step_action = StepIn; 4236 step_action = StepIn;
4244 break_point_hit_count = 0; 4237 break_point_hit_count = 0;
4245 expected_step_sequence = "ddedd"; 4238 expected_step_sequence = "ddedd";
4246 d->Call(context, env->Global(), 0, NULL).ToLocalChecked(); 4239 d->Call(context, env->Global(), 0, NULL).ToLocalChecked();
4247 CHECK_EQ(StrLength(expected_step_sequence), 4240 CHECK_EQ(StrLength(expected_step_sequence),
4248 break_point_hit_count); 4241 break_point_hit_count);
4249 4242
4250 // Step through invocation of d + e now with break on caught exceptions. 4243 // Step through invocation of d + e now with break on caught exceptions.
4251 ChangeBreakOnException(true, true); 4244 ChangeBreakOnException(true, true);
4252 step_action = StepIn; 4245 step_action = StepIn;
4253 break_point_hit_count = 0; 4246 break_point_hit_count = 0;
4254 expected_step_sequence = "ddeedd"; 4247 expected_step_sequence = "ddeedd";
4255 d->Call(context, env->Global(), 0, NULL).ToLocalChecked(); 4248 d->Call(context, env->Global(), 0, NULL).ToLocalChecked();
4256 CHECK_EQ(StrLength(expected_step_sequence), 4249 CHECK_EQ(StrLength(expected_step_sequence),
4257 break_point_hit_count); 4250 break_point_hit_count);
4258 4251
4259 // Step through invocation of f + g + h. 4252 // Step through invocation of f + g + h.
4260 ClearStepping();
4261 v8::Local<v8::Function> f = CompileFunction(&env, src, "f"); 4253 v8::Local<v8::Function> f = CompileFunction(&env, src, "f");
4262 SetBreakPoint(f, 0); 4254 SetBreakPoint(f, 0);
4263 ChangeBreakOnException(false, true); 4255 ChangeBreakOnException(false, true);
4264 step_action = StepIn; 4256 step_action = StepIn;
4265 break_point_hit_count = 0; 4257 break_point_hit_count = 0;
4266 expected_step_sequence = "ffghhff"; 4258 expected_step_sequence = "ffghhff";
4267 f->Call(context, env->Global(), 0, NULL).ToLocalChecked(); 4259 f->Call(context, env->Global(), 0, NULL).ToLocalChecked();
4268 CHECK_EQ(StrLength(expected_step_sequence), 4260 CHECK_EQ(StrLength(expected_step_sequence),
4269 break_point_hit_count); 4261 break_point_hit_count);
4270 4262
(...skipping 3759 matching lines...) Expand 10 before | Expand all | Expand 10 after
8030 CompileRun("function foo() {}; foo();"); 8022 CompileRun("function foo() {}; foo();");
8031 --after_compile_handler_depth; 8023 --after_compile_handler_depth;
8032 } 8024 }
8033 8025
8034 8026
8035 TEST(NoInterruptsInDebugListener) { 8027 TEST(NoInterruptsInDebugListener) {
8036 DebugLocalContext env; 8028 DebugLocalContext env;
8037 v8::Debug::SetDebugEventListener(NoInterruptsOnDebugEvent); 8029 v8::Debug::SetDebugEventListener(NoInterruptsOnDebugEvent);
8038 CompileRun("void(0);"); 8030 CompileRun("void(0);");
8039 } 8031 }
OLDNEW
« no previous file with comments | « src/x64/macro-assembler-x64.cc ('k') | test/mjsunit/debug-step-into-json.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698