From bedce69b2341bda4d4faef2fe20ca18bd3c9131b Mon Sep 17 00:00:00 2001 From: Itamar Date: Sat, 23 May 2020 22:10:26 +0300 Subject: [PATCH] Debugger: Use Core::ArgsParser --- Applications/Debugger/main.cpp | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/Applications/Debugger/main.cpp b/Applications/Debugger/main.cpp index 893126d6e2..ded418d17a 100644 --- a/Applications/Debugger/main.cpp +++ b/Applications/Debugger/main.cpp @@ -31,6 +31,7 @@ #include #include #include +#include #include #include #include @@ -45,12 +46,6 @@ static Line::Editor editor {}; -static int usage() -{ - printf("usage: sdb [command...]\n"); - return 1; -} - OwnPtr g_debug_session; static void handle_sigint(int) @@ -183,18 +178,16 @@ int main(int argc, char** argv) return 1; } - if (argc == 1) - return usage(); + const char* command = nullptr; + Core::ArgsParser args_parser; + args_parser.add_positional_argument(command, + "The program to be debugged, along with its arguments", + "program", Core::ArgsParser::Required::Yes); + args_parser.parse(argc, argv); - StringBuilder command; - command.append(argv[1]); - for (int i = 2; i < argc; ++i) { - command.appendf("%s ", argv[i]); - } - - auto result = DebugSession::exec_and_attach(command.to_string()); + auto result = DebugSession::exec_and_attach(command); if (!result) { - fprintf(stderr, "Failed to start debugging session for: \"%s\"\n", command.to_string().characters()); + fprintf(stderr, "Failed to start debugging session for: \"%s\"\n", command); exit(1); } g_debug_session = result.release_nonnull();