diff --git a/share/qtcreator/debugger/pdbbridge.py b/share/qtcreator/debugger/pdbbridge.py index 228f4c8c1fc..a245a588140 100644 --- a/share/qtcreator/debugger/pdbbridge.py +++ b/share/qtcreator/debugger/pdbbridge.py @@ -704,13 +704,20 @@ class QtcInternalDumper(): def runit(self): print('DIR: %s' % dir()) + print('ARGV: %s' % sys.argv) if sys.argv[0] == '-c': sys.argv = sys.argv[2:] else: sys.argv = sys.argv[1:] - print('ARGV: %s' % sys.argv) mainpyfile = sys.argv[0] # Get script filename sys.path.append(os.path.dirname(mainpyfile)) + # Delete arguments superfluous to the inferior + try: + args_pos = sys.argv.index("--") + sys.argv = [sys.argv[0]] + sys.argv[args_pos + 1:] + except ValueError: + pass + print('INFERIOR ARGV: %s' % sys.argv) print('MAIN: %s' % mainpyfile) while True: diff --git a/src/plugins/debugger/pdb/pdbengine.cpp b/src/plugins/debugger/pdb/pdbengine.cpp index 9c7c9bcac35..b58a1f4ba34 100644 --- a/src/plugins/debugger/pdb/pdbengine.cpp +++ b/src/plugins/debugger/pdb/pdbengine.cpp @@ -114,6 +114,13 @@ void PdbEngine::setupEngine() CommandLine cmd{m_interpreter, {bridge, scriptFile.path()}}; cmd.addArg(runParameters().inferior.workingDirectory.path()); + cmd.addArg("--"); + QStringList arguments = runParameters().inferior.command.splitArguments(); + if (!arguments.isEmpty() && arguments.constFirst() == "-u") + arguments.removeFirst(); // unbuffered added by run config + if (!arguments.isEmpty()) + arguments.removeFirst(); // file added by run config + cmd.addArgs(arguments); showMessage("STARTING " + cmd.toUserOutput()); m_proc.setEnvironment(runParameters().debugger.environment); m_proc.setCommand(cmd);