OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #include <stdlib.h> | 5 #include <stdlib.h> |
6 #include <string.h> | 6 #include <string.h> |
7 #include <stdio.h> | 7 #include <stdio.h> |
8 | 8 |
9 #include "include/dart_api.h" | 9 #include "include/dart_api.h" |
10 #include "include/dart_debugger_api.h" | 10 #include "include/dart_debugger_api.h" |
(...skipping 10 matching lines...) Expand all Loading... |
21 #include "bin/platform.h" | 21 #include "bin/platform.h" |
22 #include "bin/process.h" | 22 #include "bin/process.h" |
23 #include "bin/thread.h" | 23 #include "bin/thread.h" |
24 #include "bin/vmservice_impl.h" | 24 #include "bin/vmservice_impl.h" |
25 #include "platform/globals.h" | 25 #include "platform/globals.h" |
26 #include "platform/hashmap.h" | 26 #include "platform/hashmap.h" |
27 | 27 |
28 namespace dart { | 28 namespace dart { |
29 namespace bin { | 29 namespace bin { |
30 | 30 |
31 // snapshot_buffer points to a snapshot if we link in a snapshot otherwise | 31 // vm_isolate_snapshot_buffer points to a snapshot for the vm isolate if we |
32 // it is initialized to NULL. | 32 // link in a snapshot otherwise it is initialized to NULL. |
33 extern const uint8_t* snapshot_buffer; | 33 extern const uint8_t* vm_isolate_snapshot_buffer; |
| 34 |
| 35 // isolate_snapshot_buffer points to a snapshot for an isolate if we link in a |
| 36 // snapshot otherwise it is initialized to NULL. |
| 37 extern const uint8_t* isolate_snapshot_buffer; |
34 | 38 |
35 // Global state that stores a pointer to the application script snapshot. | 39 // Global state that stores a pointer to the application script snapshot. |
36 static bool generate_script_snapshot = false; | 40 static bool generate_script_snapshot = false; |
37 static const char* snapshot_filename = NULL; | 41 static const char* snapshot_filename = NULL; |
38 | 42 |
39 | 43 |
40 // Global state that indicates whether there is a debug breakpoint. | 44 // Global state that indicates whether there is a debug breakpoint. |
41 // This pointer points into an argv buffer and does not need to be | 45 // This pointer points into an argv buffer and does not need to be |
42 // free'd. | 46 // free'd. |
43 static const char* breakpoint_at = NULL; | 47 static const char* breakpoint_at = NULL; |
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
286 } | 290 } |
287 has_print_script = true; | 291 has_print_script = true; |
288 return true; | 292 return true; |
289 } | 293 } |
290 | 294 |
291 | 295 |
292 static bool ProcessGenScriptSnapshotOption(const char* filename, | 296 static bool ProcessGenScriptSnapshotOption(const char* filename, |
293 CommandLineOptions* vm_options) { | 297 CommandLineOptions* vm_options) { |
294 if (filename != NULL && strlen(filename) != 0) { | 298 if (filename != NULL && strlen(filename) != 0) { |
295 // Ensure that are already running using a full snapshot. | 299 // Ensure that are already running using a full snapshot. |
296 if (snapshot_buffer == NULL) { | 300 if (isolate_snapshot_buffer == NULL) { |
297 Log::PrintErr("Script snapshots cannot be generated in this version of" | 301 Log::PrintErr("Script snapshots cannot be generated in this version of" |
298 " dart\n"); | 302 " dart\n"); |
299 return false; | 303 return false; |
300 } | 304 } |
301 snapshot_filename = filename; | 305 snapshot_filename = filename; |
302 generate_script_snapshot = true; | 306 generate_script_snapshot = true; |
303 return true; | 307 return true; |
304 } | 308 } |
305 return false; | 309 return false; |
306 } | 310 } |
(...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
577 const char* main, | 581 const char* main, |
578 const char* package_root, | 582 const char* package_root, |
579 char** error, | 583 char** error, |
580 int* exit_code) { | 584 int* exit_code) { |
581 ASSERT(script_uri != NULL); | 585 ASSERT(script_uri != NULL); |
582 IsolateData* isolate_data = new IsolateData(script_uri, package_root); | 586 IsolateData* isolate_data = new IsolateData(script_uri, package_root); |
583 Dart_Isolate isolate = NULL; | 587 Dart_Isolate isolate = NULL; |
584 | 588 |
585 isolate = Dart_CreateIsolate(script_uri, | 589 isolate = Dart_CreateIsolate(script_uri, |
586 main, | 590 main, |
587 snapshot_buffer, | 591 isolate_snapshot_buffer, |
588 isolate_data, | 592 isolate_data, |
589 error); | 593 error); |
590 | 594 |
591 if (isolate == NULL) { | 595 if (isolate == NULL) { |
592 return NULL; | 596 return NULL; |
593 } | 597 } |
594 | 598 |
595 Dart_EnterScope(); | 599 Dart_EnterScope(); |
596 | 600 |
597 if (snapshot_buffer != NULL) { | 601 if (isolate_snapshot_buffer != NULL) { |
598 // Setup the native resolver as the snapshot does not carry it. | 602 // Setup the native resolver as the snapshot does not carry it. |
599 Builtin::SetNativeResolver(Builtin::kBuiltinLibrary); | 603 Builtin::SetNativeResolver(Builtin::kBuiltinLibrary); |
600 Builtin::SetNativeResolver(Builtin::kIOLibrary); | 604 Builtin::SetNativeResolver(Builtin::kIOLibrary); |
601 } | 605 } |
602 | 606 |
603 // Set up the library tag handler for this isolate. | 607 // Set up the library tag handler for this isolate. |
604 Dart_Handle result = Dart_SetLibraryTagHandler(DartUtils::LibraryTagHandler); | 608 Dart_Handle result = Dart_SetLibraryTagHandler(DartUtils::LibraryTagHandler); |
605 CHECK_RESULT(result); | 609 CHECK_RESULT(result); |
606 | 610 |
607 if (Dart_IsServiceIsolate(isolate)) { | 611 if (Dart_IsServiceIsolate(isolate)) { |
(...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
953 bool print_msg = verbose_debug_seen || (debug_port == 0); | 957 bool print_msg = verbose_debug_seen || (debug_port == 0); |
954 debug_port = DebuggerConnectionHandler::StartHandler(debug_ip, debug_port); | 958 debug_port = DebuggerConnectionHandler::StartHandler(debug_ip, debug_port); |
955 if (print_msg) { | 959 if (print_msg) { |
956 Log::Print("Debugger listening on port %d\n", debug_port); | 960 Log::Print("Debugger listening on port %d\n", debug_port); |
957 } | 961 } |
958 } else { | 962 } else { |
959 DebuggerConnectionHandler::InitForVmService(); | 963 DebuggerConnectionHandler::InitForVmService(); |
960 } | 964 } |
961 | 965 |
962 // Initialize the Dart VM. | 966 // Initialize the Dart VM. |
963 if (!Dart_Initialize(CreateIsolateAndSetup, NULL, NULL, ShutdownIsolate, | 967 if (!Dart_Initialize(NULL, |
| 968 CreateIsolateAndSetup, NULL, NULL, ShutdownIsolate, |
964 DartUtils::OpenFile, | 969 DartUtils::OpenFile, |
965 DartUtils::ReadFile, | 970 DartUtils::ReadFile, |
966 DartUtils::WriteFile, | 971 DartUtils::WriteFile, |
967 DartUtils::CloseFile, | 972 DartUtils::CloseFile, |
968 DartUtils::EntropySource)) { | 973 DartUtils::EntropySource)) { |
969 fprintf(stderr, "%s", "VM initialization failed\n"); | 974 fprintf(stderr, "%s", "VM initialization failed\n"); |
970 fflush(stderr); | 975 fflush(stderr); |
971 exit(kErrorExitCode); | 976 exit(kErrorExitCode); |
972 } | 977 } |
973 | 978 |
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1112 exit(Process::GlobalExitCode()); | 1117 exit(Process::GlobalExitCode()); |
1113 } | 1118 } |
1114 | 1119 |
1115 } // namespace bin | 1120 } // namespace bin |
1116 } // namespace dart | 1121 } // namespace dart |
1117 | 1122 |
1118 int main(int argc, char** argv) { | 1123 int main(int argc, char** argv) { |
1119 dart::bin::main(argc, argv); | 1124 dart::bin::main(argc, argv); |
1120 UNREACHABLE(); | 1125 UNREACHABLE(); |
1121 } | 1126 } |
OLD | NEW |