159 "xmlns", "http://schemas.microsoft.com/developer/msbuild/2003"); |
159 "xmlns", "http://schemas.microsoft.com/developer/msbuild/2003"); |
160 |
160 |
161 for (BuildConfig cfg : allConfigs) { |
161 for (BuildConfig cfg : allConfigs) { |
162 startTag(cfg, "PropertyGroup"); |
162 startTag(cfg, "PropertyGroup"); |
163 tagData("LocalDebuggerCommand", cfg.get("JdkTargetRoot") + "\\bin\\java.exe"); |
163 tagData("LocalDebuggerCommand", cfg.get("JdkTargetRoot") + "\\bin\\java.exe"); |
164 tagData("LocalDebuggerCommandArguments", "-XXaltjvm=$(TargetDir) -Dsun.java.launcher=gamma"); |
164 // The JVM loads some libraries using a path relative to |
|
165 // itself because it expects to be in a JRE or a JDK. The java |
|
166 // launcher's '-XXaltjvm=' option allows the JVM to be outside |
|
167 // the JRE or JDK so '-Dsun.java.launcher.is_altjvm=true' |
|
168 // forces a fake JAVA_HOME relative path to be used to |
|
169 // find the other libraries. The '-XX:+PauseAtExit' option |
|
170 // causes the VM to wait for key press before exiting; this |
|
171 // allows any stdout or stderr messages to be seen before |
|
172 // the cmdtool exits. |
|
173 tagData("LocalDebuggerCommandArguments", "-XXaltjvm=$(TargetDir) " |
|
174 + "-Dsun.java.launcher.is_altjvm=true " |
|
175 + "-XX:+UnlockDiagnosticVMOptions -XX:+PauseAtExit"); |
165 tagData("LocalDebuggerEnvironment", "JAVA_HOME=" + cfg.get("JdkTargetRoot")); |
176 tagData("LocalDebuggerEnvironment", "JAVA_HOME=" + cfg.get("JdkTargetRoot")); |
166 endTag(); |
177 endTag(); |
167 } |
178 } |
168 |
179 |
169 endTag(); |
180 endTag(); |