@@ -761,6 +761,7 @@ def main():
761
761
parser = argparse .ArgumentParser (description = __doc__ )
762
762
763
763
gdb_group = parser .add_argument_group (title = "gdb commands" )
764
+ args_group = parser .add_mutually_exclusive_group ()
764
765
network = parser .add_argument_group (title = "gdbgui network settings" )
765
766
security = parser .add_argument_group (title = "security settings" )
766
767
other = parser .add_argument_group (title = "other settings" )
@@ -853,22 +854,23 @@ def main():
853
854
action = "store_true" ,
854
855
)
855
856
856
- gdb_group .add_argument (
857
+ args_group .add_argument (
858
+ "cmd" ,
859
+ nargs = '?' ,
860
+ type = lambda prog : [prog ],
861
+ help = 'Name of the binary to run in gdb. To pass flags to the binary,'
862
+ ' use --args instead.'
863
+ ' Example: gdbgui ./mybinary [gdbgui-args...]' ,
864
+ default = [],
865
+ )
866
+ args_group .add_argument (
857
867
"--args" ,
858
868
nargs = argparse .REMAINDER ,
859
869
help = 'All remaining args are taken as the binary and arguments to run'
860
870
' in gdb (as with gdb --args).'
861
871
' Example: gdbgui [...] --args ./mybinary myarg -flag1 -flag2' ,
862
872
default = [],
863
873
)
864
- gdb_group .add_argument (
865
- "cmd" ,
866
- nargs = '?' ,
867
- help = 'Name of the binary to run in gdb. To pass flags to the binary,'
868
- ' use --args.'
869
- ' Example: gdbgui ./mybinary [gdbgui-args...]' ,
870
- default = [],
871
- )
872
874
873
875
args = parser .parse_args ()
874
876
@@ -878,13 +880,7 @@ def main():
878
880
print (__version__ )
879
881
return
880
882
881
- if args .cmd and args .args :
882
- print ("Cannot specify command and args. Must specify one or the other." )
883
- exit (1 )
884
- if args .cmd :
885
- cmd = args .cmd
886
- else :
887
- cmd = args .args
883
+ cmd = args .cmd or args .args
888
884
889
885
app .config ["initial_binary_and_args" ] = cmd
890
886
app .config ["rr" ] = args .rr
0 commit comments