src/share/vm/runtime/arguments.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 8026324.02 Sdiff src/share/vm/runtime

src/share/vm/runtime/arguments.cpp

Print this page




 771   if (args == NULL || count == 0) {
 772     return NULL;
 773   }
 774   size_t length = strlen(args[0]) + 1; // add 1 for the null terminator
 775   for (int i = 1; i < count; i++) {
 776     length += strlen(args[i]) + 1; // add 1 for a space
 777   }
 778   char* s = NEW_RESOURCE_ARRAY(char, length);
 779   strcpy(s, args[0]);
 780   for (int j = 1; j < count; j++) {
 781     strcat(s, " ");
 782     strcat(s, args[j]);
 783   }
 784   return (const char*) s;
 785 }
 786 
 787 void Arguments::print_on(outputStream* st) {
 788   st->print_cr("VM Arguments:");
 789   if (num_jvm_flags() > 0) {
 790     st->print("jvm_flags: "); print_jvm_flags_on(st);

 791   }
 792   if (num_jvm_args() > 0) {
 793     st->print("jvm_args: "); print_jvm_args_on(st);

 794   }
 795   st->print_cr("java_command: %s", java_command() ? java_command() : "<unknown>");
 796   if (_java_class_path != NULL) {
 797     char* path = _java_class_path->value();
 798     st->print_cr("java_class_path (initial): %s", strlen(path) == 0 ? "<not set>" : path );
 799   }
 800   st->print_cr("Launcher Type: %s", _sun_java_launcher);
 801 }
 802 





















 803 void Arguments::print_jvm_flags_on(outputStream* st) {
 804   if (_num_jvm_flags > 0) {
 805     for (int i=0; i < _num_jvm_flags; i++) {
 806       st->print("%s ", _jvm_flags_array[i]);
 807     }
 808     st->cr();
 809   }
 810 }
 811 
 812 void Arguments::print_jvm_args_on(outputStream* st) {
 813   if (_num_jvm_args > 0) {
 814     for (int i=0; i < _num_jvm_args; i++) {
 815       st->print("%s ", _jvm_args_array[i]);
 816     }
 817     st->cr();
 818   }
 819 }
 820 
 821 bool Arguments::process_argument(const char* arg,
 822     jboolean ignore_unrecognized, Flag::Flags origin) {
 823 
 824   JDK_Version since = JDK_Version();
 825 
 826   if (parse_argument(arg, origin) || ignore_unrecognized) {
 827     return true;
 828   }
 829 
 830   // Determine if the flag has '+', '-', or '=' characters.
 831   bool has_plus_minus = (*arg == '+' || *arg == '-');
 832   const char* const argname = has_plus_minus ? arg + 1 : arg;
 833 
 834   size_t arg_len;
 835   const char* equal_sign = strchr(argname, '=');
 836   if (equal_sign == NULL) {
 837     arg_len = strlen(argname);




 771   if (args == NULL || count == 0) {
 772     return NULL;
 773   }
 774   size_t length = strlen(args[0]) + 1; // add 1 for the null terminator
 775   for (int i = 1; i < count; i++) {
 776     length += strlen(args[i]) + 1; // add 1 for a space
 777   }
 778   char* s = NEW_RESOURCE_ARRAY(char, length);
 779   strcpy(s, args[0]);
 780   for (int j = 1; j < count; j++) {
 781     strcat(s, " ");
 782     strcat(s, args[j]);
 783   }
 784   return (const char*) s;
 785 }
 786 
 787 void Arguments::print_on(outputStream* st) {
 788   st->print_cr("VM Arguments:");
 789   if (num_jvm_flags() > 0) {
 790     st->print("jvm_flags: "); print_jvm_flags_on(st);
 791     st->cr();
 792   }
 793   if (num_jvm_args() > 0) {
 794     st->print("jvm_args: "); print_jvm_args_on(st);
 795     st->cr();
 796   }
 797   st->print_cr("java_command: %s", java_command() ? java_command() : "<unknown>");
 798   if (_java_class_path != NULL) {
 799     char* path = _java_class_path->value();
 800     st->print_cr("java_class_path (initial): %s", strlen(path) == 0 ? "<not set>" : path );
 801   }
 802   st->print_cr("Launcher Type: %s", _sun_java_launcher);
 803 }
 804 
 805 void Arguments::print_summary_on(outputStream* st) {
 806   // Print the command line.  Environment variables that are helpful for
 807   // reproducing the problem are written later in the hs_err file.
 808   // flags are from setting file
 809   if (num_jvm_flags() > 0) {
 810     st->print_raw("Settings File: ");
 811     print_jvm_flags_on(st);
 812     st->cr();
 813   }
 814   // args are the command line and environment variable arguments.
 815   st->print_raw("Command Line: ");
 816   if (num_jvm_args() > 0) {
 817     print_jvm_args_on(st);
 818   }
 819   // this is the classfile and any arguments to the java program
 820   if (java_command() != NULL) {
 821     st->print("%s", java_command());
 822   }
 823   st->cr();
 824 }
 825 
 826 void Arguments::print_jvm_flags_on(outputStream* st) {
 827   if (_num_jvm_flags > 0) {
 828     for (int i=0; i < _num_jvm_flags; i++) {
 829       st->print("%s ", _jvm_flags_array[i]);
 830     }

 831   }
 832 }
 833 
 834 void Arguments::print_jvm_args_on(outputStream* st) {
 835   if (_num_jvm_args > 0) {
 836     for (int i=0; i < _num_jvm_args; i++) {
 837       st->print("%s ", _jvm_args_array[i]);
 838     }

 839   }
 840 }
 841 
 842 bool Arguments::process_argument(const char* arg,
 843     jboolean ignore_unrecognized, Flag::Flags origin) {
 844 
 845   JDK_Version since = JDK_Version();
 846 
 847   if (parse_argument(arg, origin) || ignore_unrecognized) {
 848     return true;
 849   }
 850 
 851   // Determine if the flag has '+', '-', or '=' characters.
 852   bool has_plus_minus = (*arg == '+' || *arg == '-');
 853   const char* const argname = has_plus_minus ? arg + 1 : arg;
 854 
 855   size_t arg_len;
 856   const char* equal_sign = strchr(argname, '=');
 857   if (equal_sign == NULL) {
 858     arg_len = strlen(argname);


src/share/vm/runtime/arguments.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File