--- a/python/mozbuild/mozbuild/mach_commands.py
+++ b/python/mozbuild/mozbuild/mach_commands.py
@@ -268,16 +268,23 @@ class BuildOutputManager(LoggingMixin):
self.handler.acquire()
try:
self.refresh()
finally:
if have_handler:
self.handler.release()
+class StoreDebugParamsAndWarnAction(argparse.Action):
+ def __call__(self, parser, namespace, values, option_string=None):
+ sys.stderr.write('The --debugparams argument is deprecated. Please ' +
+ 'use --debugger-args instead.\n\n')
+ setattr(namespace, self.dest, values)
+
+
@CommandProvider
class Build(MachCommandBase):
"""Interface to build the tree."""
@Command('build', category='build', description='Build the tree.')
@CommandArgument('--jobs', '-j', default='0', metavar='jobs', type=int,
help='Number of concurrent jobs to run. Default is the number of CPUs.')
@CommandArgument('-C', '--directory', default=None,
@@ -1116,40 +1123,43 @@ class RunProgram(MachCommandBase):
@CommandArgument('--enable-crash-reporter', action='store_true', group=prog_group,
help='Run the program with the crash reporter enabled.')
@CommandArgumentGroup('debugging')
@CommandArgument('--debug', action='store_true', group='debugging',
help='Enable the debugger. Not specifying a --debugger option will result in the default debugger being used.')
@CommandArgument('--debugger', default=None, type=str, group='debugging',
help='Name of debugger to use.')
- @CommandArgument('--debugparams', default=None, metavar='params', type=str,
+ @CommandArgument('--debugger-args', default=None, metavar='params', type=str,
group='debugging',
help='Command-line arguments to pass to the debugger itself; split as the Bourne shell would.')
+ @CommandArgument('--debugparams', action=StoreDebugParamsAndWarnAction,
+ default=None, type=str, dest='debugger_args', group='debugging',
+ help=argparse.SUPPRESS)
@CommandArgumentGroup('DMD')
@CommandArgument('--dmd', action='store_true', group='DMD',
help='Enable DMD. The following arguments have no effect without this.')
@CommandArgument('--mode', choices=['live', 'dark-matter', 'cumulative', 'scan'], group='DMD',
help='Profiling mode. The default is \'dark-matter\'.')
@CommandArgument('--stacks', choices=['partial', 'full'], group='DMD',
help='Allocation stack trace coverage. The default is \'partial\'.')
@CommandArgument('--show-dump-stats', action='store_true', group='DMD',
help='Show stats when doing dumps.')
def run(self, params, remote, background, noprofile, disable_e10s,
- enable_crash_reporter, debug, debugger, debugparams,
+ enable_crash_reporter, debug, debugger, debugger_args,
dmd, mode, stacks, show_dump_stats):
if conditions.is_android(self):
# Running Firefox for Android is completely different
if dmd:
print("DMD is not supported for Firefox for Android")
return 1
from mozrunner.devices.android_device import verify_android_device, run_firefox_for_android
- if not (debug or debugger or debugparams):
+ if not (debug or debugger or debugger_args):
verify_android_device(self, install=True)
return run_firefox_for_android(self, params)
verify_android_device(self, install=True, debugger=True)
args = ['']
else:
try:
@@ -1183,40 +1193,40 @@ class RunProgram(MachCommandBase):
extra_env = {}
if not enable_crash_reporter:
extra_env['MOZ_CRASHREPORTER_DISABLE'] = '1'
if disable_e10s:
extra_env['MOZ_FORCE_DISABLE_E10S'] = '1'
- if debug or debugger or debugparams:
+ if debug or debugger or debugger_args:
if 'INSIDE_EMACS' in os.environ:
self.log_manager.terminal_handler.setLevel(logging.WARNING)
import mozdebug
if not debugger:
# No debugger name was provided. Look for the default ones on
# current OS.
debugger = mozdebug.get_default_debugger_name(mozdebug.DebuggerSearch.KeepLooking)
if debugger:
- self.debuggerInfo = mozdebug.get_debugger_info(debugger, debugparams)
+ self.debuggerInfo = mozdebug.get_debugger_info(debugger, debugger_args)
if not self.debuggerInfo:
print("Could not find a suitable debugger in your PATH.")
return 1
# Parameters come from the CLI. We need to convert them before
# their use.
- if debugparams:
+ if debugger_args:
from mozbuild import shellutil
try:
- debugparams = shellutil.split(debugparams)
+ debugger_args = shellutil.split(debugger_args)
except shellutil.MetaCharacterException as e:
- print("The --debugparams you passed require a real shell to parse them.")
+ print("The --debugger-args you passed require a real shell to parse them.")
print("(We can't handle the %r character.)" % e.char)
return 1
# Prepend the debugger args.
args = [self.debuggerInfo.path] + self.debuggerInfo.args + args
if dmd:
dmd_params = []