/*******************************************************************************
* Copyright (c) 2009 Red Hat, Inc.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Red Hat - initial API and implementation
*******************************************************************************/
package org.eclipse.linuxtools.internal.callgraph.launch;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.debug.core.ILaunchConfiguration;
import org.eclipse.linuxtools.internal.callgraph.core.LaunchConfigurationConstants;
public class ConfigurationOptionsSetter {
/**
* Returns a SystemTap command string containing the options specified in
* the configuration.
*
* @param config
* @return
*/
public static String setOptions(ILaunchConfiguration config) {
StringBuilder options = new StringBuilder();
try {
int verboseLevel = config.getAttribute(
LaunchConfigurationConstants.COMMAND_VERBOSE,
LaunchConfigurationConstants.DEFAULT_COMMAND_VERBOSE);
if (verboseLevel > 0) {
StringBuilder builder = new StringBuilder();
builder.append("-"); //$NON-NLS-1$
for (int i = 0; i < verboseLevel; i++)
builder.append("v"); //$NON-NLS-1$
builder.append(" "); //$NON-NLS-1$
options.append(builder.toString());
}
if (config.getAttribute(LaunchConfigurationConstants.COMMAND_PASS,
LaunchConfigurationConstants.DEFAULT_COMMAND_PASS) > 0) {
options.append("-p" + config.getAttribute(LaunchConfigurationConstants.COMMAND_PASS, LaunchConfigurationConstants.DEFAULT_COMMAND_PASS) + " "); //$NON-NLS-1$ //$NON-NLS-2$
}
if (config
.getAttribute(
LaunchConfigurationConstants.COMMAND_KEEP_TEMPORARY,
LaunchConfigurationConstants.DEFAULT_COMMAND_KEEP_TEMPORARY)) {
options.append("-k "); //$NON-NLS-1$
}
if (config.getAttribute(LaunchConfigurationConstants.COMMAND_GURU,
LaunchConfigurationConstants.DEFAULT_COMMAND_GURU)) {
options.append("-g "); //$NON-NLS-1$
}
if (config
.getAttribute(
LaunchConfigurationConstants.COMMAND_PROLOGUE_SEARCH,
LaunchConfigurationConstants.DEFAULT_COMMAND_PROLOGUE_SEARCH)) {
options.append("-P "); //$NON-NLS-1$
}
if (config
.getAttribute(
LaunchConfigurationConstants.COMMAND_NO_CODE_ELISION,
LaunchConfigurationConstants.DEFAULT_COMMAND_NO_CODE_ELISION)) {
options.append("-u "); //$NON-NLS-1$
}
if (config
.getAttribute(
LaunchConfigurationConstants.COMMAND_DISABLE_WARNINGS,
LaunchConfigurationConstants.DEFAULT_COMMAND_DISABLE_WARNINGS)) {
options.append("-w "); //$NON-NLS-1$
}
if (config.getAttribute(
LaunchConfigurationConstants.COMMAND_BULK_MODE,
LaunchConfigurationConstants.DEFAULT_COMMAND_BULK_MODE)) {
options.append("-b "); //$NON-NLS-1$
}
if (config.getAttribute(
LaunchConfigurationConstants.COMMAND_TIMING_INFO,
LaunchConfigurationConstants.DEFAULT_COMMAND_TIMING_INFO)) {
options.append("-t "); //$NON-NLS-1$
}
if (config.getAttribute(
LaunchConfigurationConstants.COMMAND_BUFFER_BYTES,
LaunchConfigurationConstants.DEFAULT_COMMAND_BUFFER_BYTES) > 0) {
options.append("-s" + config.getAttribute(LaunchConfigurationConstants.COMMAND_BUFFER_BYTES, LaunchConfigurationConstants.DEFAULT_COMMAND_BUFFER_BYTES) + " "); //$NON-NLS-1$ //$NON-NLS-2$
}
if (config.getAttribute(
LaunchConfigurationConstants.COMMAND_TARGET_PID,
LaunchConfigurationConstants.DEFAULT_COMMAND_TARGET_PID) > 0) {
options.append("-x" + config.getAttribute(LaunchConfigurationConstants.COMMAND_TARGET_PID, LaunchConfigurationConstants.DEFAULT_COMMAND_TARGET_PID) + " "); //$NON-NLS-1$ //$NON-NLS-2$
}
if (config.getAttribute(
LaunchConfigurationConstants.COMMAND_C_DIRECTIVES,
LaunchConfigurationConstants.DEFAULT_COMMAND_C_DIRECTIVES) != LaunchConfigurationConstants.DEFAULT_COMMAND_C_DIRECTIVES) {
options.append(config
.getAttribute(
LaunchConfigurationConstants.COMMAND_C_DIRECTIVES,
LaunchConfigurationConstants.DEFAULT_COMMAND_C_DIRECTIVES)
+ " "); //$NON-NLS-1$
}
if (config.getAttribute(
LaunchConfigurationConstants.COMMAND_LEAVE_RUNNING,
LaunchConfigurationConstants.DEFAULT_COMMAND_LEAVE_RUNNING)) {
options.append("-F "); //$NON-NLS-1$
}
if (config.getAttribute(
LaunchConfigurationConstants.COMMAND_SKIP_BADVARS,
LaunchConfigurationConstants.DEFAULT_COMMAND_SKIP_BADVARS)) {
options.append("--skip-badvars "); //$NON-NLS-1$
}
if (config.getAttribute(
LaunchConfigurationConstants.COMMAND_IGNORE_DWARF,
LaunchConfigurationConstants.DEFAULT_COMMAND_IGNORE_DWARF)) {
options.append("--ignore-dwarf "); //$NON-NLS-1$
}
if (config
.getAttribute(
LaunchConfigurationConstants.COMMAND_TAPSET_COVERAGE,
LaunchConfigurationConstants.DEFAULT_COMMAND_TAPSET_COVERAGE)) {
options.append("-q "); //$NON-NLS-1$
}
return options.toString();
} catch (CoreException e) {
e.printStackTrace();
}
return null;
}
}