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

Side by Side Diff: src/debug.cc

Issue 9227007: Version 3.8.6 (Closed) Base URL: http://v8.googlecode.com/svn/trunk/
Patch Set: Created 8 years, 11 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 | « src/debug.h ('k') | src/debug-debugger.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 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 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 664 matching lines...) Expand 10 before | Expand all | Expand 10 after
675 int id = Smi::cast((*location)->id())->value(); 675 int id = Smi::cast((*location)->id())->value();
676 script_cache->Remove(reinterpret_cast<void*>(id), Hash(id)); 676 script_cache->Remove(reinterpret_cast<void*>(id), Hash(id));
677 script_cache->collected_scripts_.Add(id); 677 script_cache->collected_scripts_.Add(id);
678 678
679 // Clear the weak handle. 679 // Clear the weak handle.
680 obj.Dispose(); 680 obj.Dispose();
681 obj.Clear(); 681 obj.Clear();
682 } 682 }
683 683
684 684
685 void Debug::Setup(bool create_heap_objects) { 685 void Debug::SetUp(bool create_heap_objects) {
686 ThreadInit(); 686 ThreadInit();
687 if (create_heap_objects) { 687 if (create_heap_objects) {
688 // Get code to handle debug break on return. 688 // Get code to handle debug break on return.
689 debug_break_return_ = 689 debug_break_return_ =
690 isolate_->builtins()->builtin(Builtins::kReturn_DebugBreak); 690 isolate_->builtins()->builtin(Builtins::kReturn_DebugBreak);
691 ASSERT(debug_break_return_->IsCode()); 691 ASSERT(debug_break_return_->IsCode());
692 // Get code to handle debug break in debug break slots. 692 // Get code to handle debug break in debug break slots.
693 debug_break_slot_ = 693 debug_break_slot_ =
694 isolate_->builtins()->builtin(Builtins::kSlot_DebugBreak); 694 isolate_->builtins()->builtin(Builtins::kSlot_DebugBreak);
695 ASSERT(debug_break_slot_->IsCode()); 695 ASSERT(debug_break_slot_->IsCode());
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
820 820
821 // Use the debugger context. 821 // Use the debugger context.
822 SaveContext save(isolate_); 822 SaveContext save(isolate_);
823 isolate_->set_context(*context); 823 isolate_->set_context(*context);
824 824
825 // Expose the builtins object in the debugger context. 825 // Expose the builtins object in the debugger context.
826 Handle<String> key = isolate_->factory()->LookupAsciiSymbol("builtins"); 826 Handle<String> key = isolate_->factory()->LookupAsciiSymbol("builtins");
827 Handle<GlobalObject> global = Handle<GlobalObject>(context->global()); 827 Handle<GlobalObject> global = Handle<GlobalObject>(context->global());
828 RETURN_IF_EMPTY_HANDLE_VALUE( 828 RETURN_IF_EMPTY_HANDLE_VALUE(
829 isolate_, 829 isolate_,
830 SetProperty(global, key, Handle<Object>(global->builtins()), 830 JSReceiver::SetProperty(global, key, Handle<Object>(global->builtins()),
831 NONE, kNonStrictMode), 831 NONE, kNonStrictMode),
832 false); 832 false);
833 833
834 // Compile the JavaScript for the debugger in the debugger context. 834 // Compile the JavaScript for the debugger in the debugger context.
835 debugger->set_compiling_natives(true); 835 debugger->set_compiling_natives(true);
836 bool caught_exception = 836 bool caught_exception =
837 !CompileDebuggerScript(Natives::GetIndex("mirror")) || 837 !CompileDebuggerScript(Natives::GetIndex("mirror")) ||
838 !CompileDebuggerScript(Natives::GetIndex("debug")); 838 !CompileDebuggerScript(Natives::GetIndex("debug"));
839 839
840 if (FLAG_enable_liveedit) { 840 if (FLAG_enable_liveedit) {
841 caught_exception = caught_exception || 841 caught_exception = caught_exception ||
(...skipping 364 matching lines...) Expand 10 before | Expand all | Expand 10 after
1206 1206
1207 // Remove all debug info. 1207 // Remove all debug info.
1208 while (debug_info_list_ != NULL) { 1208 while (debug_info_list_ != NULL) {
1209 RemoveDebugInfo(debug_info_list_->debug_info()); 1209 RemoveDebugInfo(debug_info_list_->debug_info());
1210 } 1210 }
1211 } 1211 }
1212 1212
1213 1213
1214 void Debug::FloodWithOneShot(Handle<SharedFunctionInfo> shared) { 1214 void Debug::FloodWithOneShot(Handle<SharedFunctionInfo> shared) {
1215 PrepareForBreakPoints(); 1215 PrepareForBreakPoints();
1216 // Make sure the function has setup the debug info. 1216 // Make sure the function has set up the debug info.
1217 if (!EnsureDebugInfo(shared)) { 1217 if (!EnsureDebugInfo(shared)) {
1218 // Return if we failed to retrieve the debug info. 1218 // Return if we failed to retrieve the debug info.
1219 return; 1219 return;
1220 } 1220 }
1221 1221
1222 // Flood the function with break points. 1222 // Flood the function with break points.
1223 BreakLocationIterator it(GetDebugInfo(shared), ALL_BREAK_LOCATIONS); 1223 BreakLocationIterator it(GetDebugInfo(shared), ALL_BREAK_LOCATIONS);
1224 while (!it.Done()) { 1224 while (!it.Done()) {
1225 it.SetOneShot(); 1225 it.SetOneShot();
1226 it.Next(); 1226 it.Next();
(...skipping 1621 matching lines...) Expand 10 before | Expand all | Expand 10 after
2848 event, 2848 event,
2849 running, 2849 running,
2850 Handle<JSObject>::cast(exec_state), 2850 Handle<JSObject>::cast(exec_state),
2851 Handle<JSObject>::cast(event_data), 2851 Handle<JSObject>::cast(event_data),
2852 Handle<String>(Utils::OpenHandle(*response)), 2852 Handle<String>(Utils::OpenHandle(*response)),
2853 command.client_data()); 2853 command.client_data());
2854 InvokeMessageHandler(message); 2854 InvokeMessageHandler(message);
2855 command.Dispose(); 2855 command.Dispose();
2856 2856
2857 // Return from debug event processing if either the VM is put into the 2857 // Return from debug event processing if either the VM is put into the
2858 // runnning state (through a continue command) or auto continue is active 2858 // running state (through a continue command) or auto continue is active
2859 // and there are no more commands queued. 2859 // and there are no more commands queued.
2860 if (running && !HasCommands()) { 2860 if (running && !HasCommands()) {
2861 return; 2861 return;
2862 } 2862 }
2863 } 2863 }
2864 } 2864 }
2865 2865
2866 2866
2867 void Debugger::SetEventListener(Handle<Object> callback, 2867 void Debugger::SetEventListener(Handle<Object> callback,
2868 Handle<Object> data) { 2868 Handle<Object> data) {
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
3058 // Suspend V8 if it is already running or set V8 to suspend whenever 3058 // Suspend V8 if it is already running or set V8 to suspend whenever
3059 // it starts. 3059 // it starts.
3060 // Provide stub message handler; V8 auto-continues each suspend 3060 // Provide stub message handler; V8 auto-continues each suspend
3061 // when there is no message handler; we doesn't need it. 3061 // when there is no message handler; we doesn't need it.
3062 // Once become suspended, V8 will stay so indefinitely long, until remote 3062 // Once become suspended, V8 will stay so indefinitely long, until remote
3063 // debugger connects and issues "continue" command. 3063 // debugger connects and issues "continue" command.
3064 Debugger::message_handler_ = StubMessageHandler2; 3064 Debugger::message_handler_ = StubMessageHandler2;
3065 v8::Debug::DebugBreak(); 3065 v8::Debug::DebugBreak();
3066 } 3066 }
3067 3067
3068 if (Socket::Setup()) { 3068 if (Socket::SetUp()) {
3069 if (agent_ == NULL) { 3069 if (agent_ == NULL) {
3070 agent_ = new DebuggerAgent(name, port); 3070 agent_ = new DebuggerAgent(name, port);
3071 agent_->Start(); 3071 agent_->Start();
3072 } 3072 }
3073 return true; 3073 return true;
3074 } 3074 }
3075 3075
3076 return false; 3076 return false;
3077 } 3077 }
3078 3078
(...skipping 411 matching lines...) Expand 10 before | Expand all | Expand 10 after
3490 { 3490 {
3491 Locker locker; 3491 Locker locker;
3492 Isolate::Current()->debugger()->CallMessageDispatchHandler(); 3492 Isolate::Current()->debugger()->CallMessageDispatchHandler();
3493 } 3493 }
3494 } 3494 }
3495 } 3495 }
3496 3496
3497 #endif // ENABLE_DEBUGGER_SUPPORT 3497 #endif // ENABLE_DEBUGGER_SUPPORT
3498 3498
3499 } } // namespace v8::internal 3499 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/debug.h ('k') | src/debug-debugger.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698