Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjjohnstn2014-07-05 01:17:30 +0000
committerJeff Johnston2014-07-05 02:23:22 +0000
commit92c9224591743885ca263ed2d372368e8245b697 (patch)
treead62d10027b3cab6a76dc5324cedd0862f387580 /debug/org.eclipse.cdt.debug.application
parente5f667c97e7e7b4ced0e9a16acacbfb169c5daea (diff)
downloadorg.eclipse.cdt-92c9224591743885ca263ed2d372368e8245b697.tar.gz
org.eclipse.cdt-92c9224591743885ca263ed2d372368e8245b697.tar.xz
org.eclipse.cdt-92c9224591743885ca263ed2d372368e8245b697.zip
Bug 438310 - Add --help option to cdtdebug.sh
- do some parsing of options in cdtdebug script - allow all options after -e executable to be passed to main and not processed by Eclipse (e.g. -clean) - prohibit -vmargs option from being used Change-Id: Id40044a3dc9170f57c848447793dfa9aa044d60e Reviewed-on: https://git.eclipse.org/r/29494 Tested-by: Hudson CI Reviewed-by: Jeff Johnston <jjohnstn@redhat.com> Tested-by: Jeff Johnston <jjohnstn@redhat.com>
Diffstat (limited to 'debug/org.eclipse.cdt.debug.application')
-rwxr-xr-xdebug/org.eclipse.cdt.debug.application/scripts/cdtdebug.sh68
1 files changed, 66 insertions, 2 deletions
diff --git a/debug/org.eclipse.cdt.debug.application/scripts/cdtdebug.sh b/debug/org.eclipse.cdt.debug.application/scripts/cdtdebug.sh
index 404da848552..a2499a6ce44 100755
--- a/debug/org.eclipse.cdt.debug.application/scripts/cdtdebug.sh
+++ b/debug/org.eclipse.cdt.debug.application/scripts/cdtdebug.sh
@@ -9,25 +9,89 @@
# Contributors:
# Red Hat Inc. - initial API and implementation
###############################################################################
+
+usage="\
+Usage: $0 [ECLIPSE_OPTIONS] [-b BUILD_LOG] [TARGET_OPTION]
+
+Debug an executable, core-file, or an existing process using the Eclipse
+C/C++ Stand-alone Debugger. Eclipse command-line options may be passed
+except for -vmargs which is being used to start up the Eclipse Debugger.
+
+Operation modes:
+ -h, --help print this help, then exit
+
+Indexing assist options:
+ -b BUILD_LOG build log to use for compiler includes/flags
+
+Target options:
+ -a attach to an existing process (list will be shown)
+ -c COREFILE debug core-file (should also specify executable)
+ -e EXECUTABLE [ARGS...] debug given executable (passing ARGS to main)
+
+The -e option must be used last as subsequent options are passed to main.
+
+Specifying insufficient arguments for a particular target will result in a
+dialog displayed to enter the required values for that target. Specifying
+no target option brings up a dialog for debugging an executable with the
+executable path, program arguments, and build log filled in from the last -e
+invocation, if one exists.
+
+Wiki page: <http://wiki.eclipse.org/CDT/StandaloneDebugger>"
+
+exit_missing_arg='
+ echo $0": error: option [$1] requires an argument"; exit 1'
+
+# Parse command line.
+options=
+while test $# -gt 0 ; do
+ case $1 in
+ --help | -h )
+ echo "$usage"; exit ;;
+ -vmargs )
+ echo $0": error: -vmargs option is prohibited"; exit 1;;
+ -e )
+ test $# = 1 && eval "$exit_missing_arg"
+ options="$options $1 $2"
+ shift; shift;
+ # Get all options after -e and protect them from being
+ # processed by Eclipse as Eclipse options
+ while test $# -gt 0; do
+ options="$options \"$1\""
+ shift;
+ done ;;
+ -c )
+ test $# = 1 && eval "$exit_missing_arg"
+ options="$options $1 $2"
+ shift; shift ;;
+ * )
+ options="$options $1"; shift ;;
+ esac
+done
+
+# Make sure local directory exists and has contents initialized
if [ ! -d $HOME/cdtdebugger ]; then
mkdir -p $HOME/cdtdebugger
cp config.ini $HOME/cdtdebugger
cp dev.properties $HOME/cdtdebugger
fi
+
+# Calculate platform-specific jar file names
olddir=`pwd`
cd ../..
OSGI_JAR=`ls org.eclipse.osgi_*.jar`
SWT_JAR=`ls org.eclipse.swt.*.jar`
SWT_PLUGIN=`echo $SWT_JAR | sed -e "s/_[0-9]*\..*.jar//"`
-FS_JAR=`ls org.eclipse.core.filesystem.*.jar`
+FS_JAR=`ls org.eclipse.core.filesystem.*.jar | grep -v java7`
FS_PLUGIN=`echo $FS_JAR | sed -e "s/_[0-9]*\..*.jar//"`
LINUX_JAR=`ls org.eclipse.cdt.core.linux.*.jar`
LINUX_PLUGIN=`echo $LINUX_JAR | sed -e "s/_[0-9]*\..*.jar//"`
cd ..; ECLIPSE_HOME=`pwd`
cd $olddir
+
+# Run eclipse with the Stand-alone Debugger product specified
$ECLIPSE_HOME/eclipse -clean -product org.eclipse.cdt.debug.application.product \
-data $HOME/workspace-cdtdebug -configuration file\:$HOME/cdtdebugger \
--dev file\:$HOME/cdtdebugger/dev.properties $@ \
+-dev file\:$HOME/cdtdebugger/dev.properties $options \
-vmargs -Dosgi.jar=$OSGI_JAR -Dswt.plugin=$SWT_PLUGIN -Dfs.plugin=$FS_PLUGIN \
-Dlinux.plugin=$LINUX_PLUGIN -Declipse.home=$ECLIPSE_HOME

Back to the top