diff options
author | Alexandra Hájková <ahajkova@redhat.com> | 2024-10-16 13:25:40 +0200 |
---|---|---|
committer | Alexandra Hájková <ahajkova@redhat.com> | 2024-10-21 16:38:09 +0200 |
commit | 32ffcd0737a703398646f7e0b62bd5de348319e1 (patch) | |
tree | fed57de5a081ac537aa309aded35b0e630bf9855 | |
parent | 3be7119db237a7a89775f83b37e4ec89451b6945 (diff) | |
download | binutils-32ffcd0737a703398646f7e0b62bd5de348319e1.zip binutils-32ffcd0737a703398646f7e0b62bd5de348319e1.tar.gz binutils-32ffcd0737a703398646f7e0b62bd5de348319e1.tar.bz2 |
gdbreplay: Use getopt_long to parse command line arguments
Approved-By: Tom Tromey <tom@tromey.com>
-rw-r--r-- | gdbserver/gdbreplay.cc | 37 |
1 files changed, 24 insertions, 13 deletions
diff --git a/gdbserver/gdbreplay.cc b/gdbserver/gdbreplay.cc index c2359e4..7ef52b8 100644 --- a/gdbserver/gdbreplay.cc +++ b/gdbserver/gdbreplay.cc @@ -57,6 +57,8 @@ #include "gdbsupport/netstuff.h" #include "gdbsupport/rsp-low.h" +#include "getopt.h" + #ifndef HAVE_SOCKLEN_T typedef int socklen_t; #endif @@ -425,30 +427,39 @@ gdbreplay_usage (FILE *stream) captured_main (int argc, char *argv[]) { FILE *fp; - int ch; - - if (argc >= 2 && strcmp (argv[1], "--version") == 0) + int ch, optc; + enum opts { OPT_VERSION = 1, OPT_HELP }; + static struct option longopts[] = { - gdbreplay_version (); - exit (0); - } - if (argc >= 2 && strcmp (argv[1], "--help") == 0) + {"version", no_argument, nullptr, OPT_VERSION}, + {"help", no_argument, nullptr, OPT_HELP}, + {nullptr, no_argument, nullptr, 0} + }; + + while ((optc = getopt_long (argc, argv, "", longopts, nullptr)) != -1) { - gdbreplay_usage (stdout); - exit (0); + switch (optc) + { + case OPT_VERSION: + gdbreplay_version (); + exit (0); + case OPT_HELP: + gdbreplay_usage (stdout); + exit (0); + } } - if (argc < 3) + if (optind + 2 != argc) { gdbreplay_usage (stderr); exit (1); } - fp = fopen (argv[1], "r"); + fp = fopen (argv[optind], "r"); if (fp == NULL) { - perror_with_name (argv[1]); + perror_with_name (argv[optind]); } - remote_open (argv[2]); + remote_open (argv[optind + 1]); while ((ch = logchar (fp)) != EOF) { switch (ch) |