| OLD | NEW | 
|---|
| 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 179 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 190   Handle<v8::internal::JSFunction> f = v8::Utils::OpenHandle(*fun); | 190   Handle<v8::internal::JSFunction> f = v8::Utils::OpenHandle(*fun); | 
| 191   Handle<v8::internal::SharedFunctionInfo> shared(f->shared()); | 191   Handle<v8::internal::SharedFunctionInfo> shared(f->shared()); | 
| 192   return Debug::HasDebugInfo(shared); | 192   return Debug::HasDebugInfo(shared); | 
| 193 } | 193 } | 
| 194 | 194 | 
| 195 | 195 | 
| 196 // Set a break point in a function and return the associated break point | 196 // Set a break point in a function and return the associated break point | 
| 197 // number. | 197 // number. | 
| 198 static int SetBreakPoint(Handle<v8::internal::JSFunction> fun, int position) { | 198 static int SetBreakPoint(Handle<v8::internal::JSFunction> fun, int position) { | 
| 199   static int break_point = 0; | 199   static int break_point = 0; | 
| 200   Handle<v8::internal::SharedFunctionInfo> shared(fun->shared()); |  | 
| 201   v8::internal::Debug* debug = v8::internal::Isolate::Current()->debug(); | 200   v8::internal::Debug* debug = v8::internal::Isolate::Current()->debug(); | 
| 202   debug->SetBreakPoint( | 201   debug->SetBreakPoint( | 
| 203       shared, | 202       fun, | 
| 204       Handle<Object>(v8::internal::Smi::FromInt(++break_point)), | 203       Handle<Object>(v8::internal::Smi::FromInt(++break_point)), | 
| 205       &position); | 204       &position); | 
| 206   return break_point; | 205   return break_point; | 
| 207 } | 206 } | 
| 208 | 207 | 
| 209 | 208 | 
| 210 // Set a break point in a function and return the associated break point | 209 // Set a break point in a function and return the associated break point | 
| 211 // number. | 210 // number. | 
| 212 static int SetBreakPoint(v8::Handle<v8::Function> fun, int position) { | 211 static int SetBreakPoint(v8::Handle<v8::Function> fun, int position) { | 
| 213   return SetBreakPoint(v8::Utils::OpenHandle(*fun), position); | 212   return SetBreakPoint(v8::Utils::OpenHandle(*fun), position); | 
| (...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 508     CHECK_EQ(debug_break, | 507     CHECK_EQ(debug_break, | 
| 509         Code::GetCodeFromTargetAddress(it1.it()->rinfo()->target_address())); | 508         Code::GetCodeFromTargetAddress(it1.it()->rinfo()->target_address())); | 
| 510   } else { | 509   } else { | 
| 511     CHECK(Debug::IsDebugBreakAtReturn(it1.it()->rinfo())); | 510     CHECK(Debug::IsDebugBreakAtReturn(it1.it()->rinfo())); | 
| 512   } | 511   } | 
| 513 | 512 | 
| 514   // Clear the break point and check that the debug break function is no longer | 513   // Clear the break point and check that the debug break function is no longer | 
| 515   // there | 514   // there | 
| 516   ClearBreakPoint(bp); | 515   ClearBreakPoint(bp); | 
| 517   CHECK(!debug->HasDebugInfo(shared)); | 516   CHECK(!debug->HasDebugInfo(shared)); | 
| 518   CHECK(debug->EnsureDebugInfo(shared)); | 517   CHECK(debug->EnsureDebugInfo(shared, fun)); | 
| 519   TestBreakLocationIterator it2(Debug::GetDebugInfo(shared)); | 518   TestBreakLocationIterator it2(Debug::GetDebugInfo(shared)); | 
| 520   it2.FindBreakLocationFromPosition(position); | 519   it2.FindBreakLocationFromPosition(position); | 
| 521   actual_mode = it2.it()->rinfo()->rmode(); | 520   actual_mode = it2.it()->rinfo()->rmode(); | 
| 522   if (actual_mode == v8::internal::RelocInfo::CODE_TARGET_WITH_ID) { | 521   if (actual_mode == v8::internal::RelocInfo::CODE_TARGET_WITH_ID) { | 
| 523     actual_mode = v8::internal::RelocInfo::CODE_TARGET; | 522     actual_mode = v8::internal::RelocInfo::CODE_TARGET; | 
| 524   } | 523   } | 
| 525   CHECK_EQ(mode, actual_mode); | 524   CHECK_EQ(mode, actual_mode); | 
| 526   if (mode == v8::internal::RelocInfo::JS_RETURN) { | 525   if (mode == v8::internal::RelocInfo::JS_RETURN) { | 
| 527     CHECK(!Debug::IsDebugBreakAtReturn(it2.it()->rinfo())); | 526     CHECK(!Debug::IsDebugBreakAtReturn(it2.it()->rinfo())); | 
| 528   } | 527   } | 
| (...skipping 6815 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 7344       "g(false);                       \n" | 7343       "g(false);                       \n" | 
| 7345       "%OptimizeFunctionOnNextCall(g); \n" | 7344       "%OptimizeFunctionOnNextCall(g); \n" | 
| 7346       "g(true);"; | 7345       "g(true);"; | 
| 7347   v8::Debug::SetDebugEventListener(DebugBreakInlineListener); | 7346   v8::Debug::SetDebugEventListener(DebugBreakInlineListener); | 
| 7348   inline_script = v8::Script::Compile(v8::String::New(source)); | 7347   inline_script = v8::Script::Compile(v8::String::New(source)); | 
| 7349   inline_script->Run(); | 7348   inline_script->Run(); | 
| 7350 } | 7349 } | 
| 7351 | 7350 | 
| 7352 | 7351 | 
| 7353 #endif  // ENABLE_DEBUGGER_SUPPORT | 7352 #endif  // ENABLE_DEBUGGER_SUPPORT | 
| OLD | NEW | 
|---|