| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 "vm/service.h" | 5 #include "vm/service.h" |
| 6 | 6 |
| 7 #include "include/dart_api.h" | 7 #include "include/dart_api.h" |
| 8 #include "platform/globals.h" | 8 #include "platform/globals.h" |
| 9 | 9 |
| 10 #include "vm/compiler.h" | 10 #include "vm/compiler.h" |
| (...skipping 1487 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1498 return true; | 1498 return true; |
| 1499 } else { | 1499 } else { |
| 1500 PrintError(js, "Unrecognized subcommand '%s'", sub_command); | 1500 PrintError(js, "Unrecognized subcommand '%s'", sub_command); |
| 1501 return true; | 1501 return true; |
| 1502 } | 1502 } |
| 1503 } | 1503 } |
| 1504 // A full profile includes disassembly of all Dart code objects. | 1504 // A full profile includes disassembly of all Dart code objects. |
| 1505 // TODO(johnmccutchan): Add sub command to trigger full code dump. | 1505 // TODO(johnmccutchan): Add sub command to trigger full code dump. |
| 1506 bool full_profile = false; | 1506 bool full_profile = false; |
| 1507 const char* tags_option = js->LookupOption("tags"); | 1507 const char* tags_option = js->LookupOption("tags"); |
| 1508 bool use_tags = true; | 1508 Profiler::TagOrder tag_order = Profiler::kUserVM; |
| 1509 if (tags_option != NULL) { | 1509 if (js->HasOption("tags")) { |
| 1510 if (strcmp("hide", tags_option) != 0) { | 1510 if (js->OptionIs("tags", "hide")) { |
| 1511 tag_order = Profiler::kNoTags; |
| 1512 } else if (js->OptionIs("tags", "uv")) { |
| 1513 tag_order = Profiler::kUserVM; |
| 1514 } else if (js->OptionIs("tags", "u")) { |
| 1515 tag_order = Profiler::kUser; |
| 1516 } else if (js->OptionIs("tags", "vu")) { |
| 1517 tag_order = Profiler::kVMUser; |
| 1518 } else if (js->OptionIs("tags", "v")) { |
| 1519 tag_order = Profiler::kVM; |
| 1520 } else { |
| 1511 PrintError(js, "Invalid tags option value: %s\n", tags_option); | 1521 PrintError(js, "Invalid tags option value: %s\n", tags_option); |
| 1512 return true; | 1522 return true; |
| 1513 } | 1523 } |
| 1514 use_tags = false; | |
| 1515 } | 1524 } |
| 1516 Profiler::PrintToJSONStream(isolate, js, full_profile, use_tags); | 1525 Profiler::PrintToJSONStream(isolate, js, full_profile, tag_order); |
| 1517 return true; | 1526 return true; |
| 1518 } | 1527 } |
| 1519 | 1528 |
| 1520 static bool HandleCoverage(Isolate* isolate, JSONStream* js) { | 1529 static bool HandleCoverage(Isolate* isolate, JSONStream* js) { |
| 1521 CodeCoverage::PrintToJSONStream(isolate, js); | 1530 CodeCoverage::PrintToJSONStream(isolate, js); |
| 1522 return true; | 1531 return true; |
| 1523 } | 1532 } |
| 1524 | 1533 |
| 1525 | 1534 |
| 1526 static bool HandleAllocationProfile(Isolate* isolate, JSONStream* js) { | 1535 static bool HandleAllocationProfile(Isolate* isolate, JSONStream* js) { |
| (...skipping 433 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1960 while (current != NULL) { | 1969 while (current != NULL) { |
| 1961 if (strcmp(name, current->name()) == 0) { | 1970 if (strcmp(name, current->name()) == 0) { |
| 1962 return current; | 1971 return current; |
| 1963 } | 1972 } |
| 1964 current = current->next(); | 1973 current = current->next(); |
| 1965 } | 1974 } |
| 1966 return NULL; | 1975 return NULL; |
| 1967 } | 1976 } |
| 1968 | 1977 |
| 1969 } // namespace dart | 1978 } // namespace dart |
| OLD | NEW |