diff options
Diffstat (limited to 'runtime/parsed_options.cc')
-rw-r--r-- | runtime/parsed_options.cc | 46 |
1 files changed, 25 insertions, 21 deletions
diff --git a/runtime/parsed_options.cc b/runtime/parsed_options.cc index 57d32bb476..084e8f6a0e 100644 --- a/runtime/parsed_options.cc +++ b/runtime/parsed_options.cc @@ -251,7 +251,7 @@ bool ParsedOptions::Parse(const Runtime::Options& options, bool ignore_unrecogni // TODO: support -Djava.class.path i++; if (i == options.size()) { - Usage("Missing required class path value for %s", option.c_str()); + Usage("Missing required class path value for %s\n", option.c_str()); return false; } const StringPiece& value = options[i].first; @@ -279,35 +279,35 @@ bool ParsedOptions::Parse(const Runtime::Options& options, bool ignore_unrecogni } else if (StartsWith(option, "-Xms")) { size_t size = ParseMemoryOption(option.substr(strlen("-Xms")).c_str(), 1024); if (size == 0) { - Usage("Failed to parse memory option %s", option.c_str()); + Usage("Failed to parse memory option %s\n", option.c_str()); return false; } heap_initial_size_ = size; } else if (StartsWith(option, "-Xmx")) { size_t size = ParseMemoryOption(option.substr(strlen("-Xmx")).c_str(), 1024); if (size == 0) { - Usage("Failed to parse memory option %s", option.c_str()); + Usage("Failed to parse memory option %s\n", option.c_str()); return false; } heap_maximum_size_ = size; } else if (StartsWith(option, "-XX:HeapGrowthLimit=")) { size_t size = ParseMemoryOption(option.substr(strlen("-XX:HeapGrowthLimit=")).c_str(), 1024); if (size == 0) { - Usage("Failed to parse memory option %s", option.c_str()); + Usage("Failed to parse memory option %s\n", option.c_str()); return false; } heap_growth_limit_ = size; } else if (StartsWith(option, "-XX:HeapMinFree=")) { size_t size = ParseMemoryOption(option.substr(strlen("-XX:HeapMinFree=")).c_str(), 1024); if (size == 0) { - Usage("Failed to parse memory option %s", option.c_str()); + Usage("Failed to parse memory option %s\n", option.c_str()); return false; } heap_min_free_ = size; } else if (StartsWith(option, "-XX:HeapMaxFree=")) { size_t size = ParseMemoryOption(option.substr(strlen("-XX:HeapMaxFree=")).c_str(), 1024); if (size == 0) { - Usage("Failed to parse memory option %s", option.c_str()); + Usage("Failed to parse memory option %s\n", option.c_str()); return false; } heap_max_free_ = size; @@ -316,7 +316,7 @@ bool ParsedOptions::Parse(const Runtime::Options& options, bool ignore_unrecogni return false; } } else if (StartsWith(option, "-XX:ForegroundHeapGrowthMultiplier=")) { - if (!ParseDouble(option, '=', 0.1, 0.9, &foreground_heap_growth_multiplier_)) { + if (!ParseDouble(option, '=', 0.1, 10.0, &foreground_heap_growth_multiplier_)) { return false; } } else if (StartsWith(option, "-XX:ParallelGCThreads=")) { @@ -330,7 +330,7 @@ bool ParsedOptions::Parse(const Runtime::Options& options, bool ignore_unrecogni } else if (StartsWith(option, "-Xss")) { size_t size = ParseMemoryOption(option.substr(strlen("-Xss")).c_str(), 1); if (size == 0) { - Usage("Failed to parse memory option %s", option.c_str()); + Usage("Failed to parse memory option %s\n", option.c_str()); return false; } stack_size_ = size; @@ -398,7 +398,7 @@ bool ParsedOptions::Parse(const Runtime::Options& options, bool ignore_unrecogni (gc_option == "noverifycardtable")) { // Ignored for backwards compatibility. } else { - Usage("Unknown -Xgc option %s", gc_option.c_str()); + Usage("Unknown -Xgc option %s\n", gc_option.c_str()); return false; } } @@ -411,7 +411,7 @@ bool ParsedOptions::Parse(const Runtime::Options& options, bool ignore_unrecogni if (collector_type != gc::kCollectorTypeNone) { background_collector_type_ = collector_type; } else { - Usage("Unknown -XX:BackgroundGC option %s", substring.c_str()); + Usage("Unknown -XX:BackgroundGC option %s\n", substring.c_str()); return false; } } else if (option == "-XX:+DisableExplicitGC") { @@ -443,10 +443,13 @@ bool ParsedOptions::Parse(const Runtime::Options& options, bool ignore_unrecogni } else if (verbose_options[i] == "threads") { gLogVerbosity.threads = true; } else { - Usage("Unknown -verbose option %s", verbose_options[i].c_str()); + Usage("Unknown -verbose option %s\n", verbose_options[i].c_str()); return false; } } + } else if (StartsWith(option, "-verbose-methods:")) { + gLogVerbosity.compiler = false; + Split(option.substr(strlen("-verbose-methods:")), ',', gVerboseMethods); } else if (StartsWith(option, "-Xlockprofthreshold:")) { if (!ParseUnsignedInteger(option, ':', &lock_profiling_threshold_)) { return false; @@ -476,7 +479,7 @@ bool ParsedOptions::Parse(const Runtime::Options& options, bool ignore_unrecogni } else if (option == "abort") { const void* hook = options[i].second; if (hook == nullptr) { - Usage("abort was NULL"); + Usage("abort was NULL\n"); return false; } hook_abort_ = reinterpret_cast<void(*)()>(const_cast<void*>(hook)); @@ -568,14 +571,14 @@ bool ParsedOptions::Parse(const Runtime::Options& options, bool ignore_unrecogni } else if (option == "-Xcompiler-option") { i++; if (i == options.size()) { - Usage("Missing required compiler option for %s", option.c_str()); + Usage("Missing required compiler option for %s\n", option.c_str()); return false; } compiler_options_.push_back(options[i].first); } else if (option == "-Ximage-compiler-option") { i++; if (i == options.size()) { - Usage("Missing required compiler option for %s", option.c_str()); + Usage("Missing required compiler option for %s\n", option.c_str()); return false; } image_compiler_options_.push_back(options[i].first); @@ -586,7 +589,7 @@ bool ParsedOptions::Parse(const Runtime::Options& options, bool ignore_unrecogni } else if (verify_mode == "remote" || verify_mode == "all") { verify_ = true; } else { - Usage("Unknown -Xverify option %s", verify_mode.c_str()); + Usage("Unknown -Xverify option %s\n", verify_mode.c_str()); return false; } } else if (StartsWith(option, "-ea") || @@ -626,7 +629,7 @@ bool ParsedOptions::Parse(const Runtime::Options& options, bool ignore_unrecogni StartsWith(option, "-XX:mainThreadStackSize=")) { // Ignored for backwards compatibility. } else if (!ignore_unrecognized) { - Usage("Unrecognized option %s", option.c_str()); + Usage("Unrecognized option %s\n", option.c_str()); return false; } } @@ -717,6 +720,7 @@ void ParsedOptions::Usage(const char* fmt, ...) { UsageMessage(stream, " -XX:HeapMinFree=N\n"); UsageMessage(stream, " -XX:HeapMaxFree=N\n"); UsageMessage(stream, " -XX:HeapTargetUtilization=doublevalue\n"); + UsageMessage(stream, " -XX:ForegroundHeapGrowthMultiplier=doublevalue\n"); UsageMessage(stream, " -XX:LowMemoryMode\n"); UsageMessage(stream, " -Xprofile:{threadcpuclock,wallclock,dualclock}\n"); UsageMessage(stream, "\n"); @@ -789,7 +793,7 @@ void ParsedOptions::Usage(const char* fmt, ...) { bool ParsedOptions::ParseStringAfterChar(const std::string& s, char c, std::string* parsed_value) { std::string::size_type colon = s.find(c); if (colon == std::string::npos) { - Usage("Missing char %c in option %s", c, s.c_str()); + Usage("Missing char %c in option %s\n", c, s.c_str()); return false; } // Add one to remove the char we were trimming until. @@ -800,14 +804,14 @@ bool ParsedOptions::ParseStringAfterChar(const std::string& s, char c, std::stri bool ParsedOptions::ParseInteger(const std::string& s, char after_char, int* parsed_value) { std::string::size_type colon = s.find(after_char); if (colon == std::string::npos) { - Usage("Missing char %c in option %s", after_char, s.c_str()); + Usage("Missing char %c in option %s\n", after_char, s.c_str()); return false; } const char* begin = &s[colon + 1]; char* end; size_t result = strtoul(begin, &end, 10); if (begin == end || *end != '\0') { - Usage("Failed to parse integer from %s ", s.c_str()); + Usage("Failed to parse integer from %s\n", s.c_str()); return false; } *parsed_value = result; @@ -821,7 +825,7 @@ bool ParsedOptions::ParseUnsignedInteger(const std::string& s, char after_char, return false; } if (i < 0) { - Usage("Negative value %d passed for unsigned option %s", i, s.c_str()); + Usage("Negative value %d passed for unsigned option %s\n", i, s.c_str()); return false; } *parsed_value = i; @@ -840,7 +844,7 @@ bool ParsedOptions::ParseDouble(const std::string& option, char after_char, // Ensure that we have a value, there was no cruft after it and it satisfies a sensible range. const bool sane_val = iss.eof() && (value >= min) && (value <= max); if (!sane_val) { - Usage("Invalid double value %s for option %s", option.c_str()); + Usage("Invalid double value %s for option %s\n", substring.c_str(), option.c_str()); return false; } *parsed_value = value; |