X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fgdbserver%2Fserver.c;h=3fc026f78ebba4db17134befd3b7607e68ed04ff;hb=e8319fde715960466aca2461c74cec8907abd391;hp=67e8e3e54de363ffa77547b79d9ed01f0a4981df;hpb=abf516c6931af1683d1e51203de1ca01467f9f85;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/gdbserver/server.c b/gdb/gdbserver/server.c index 67e8e3e54d..3fc026f78e 100644 --- a/gdb/gdbserver/server.c +++ b/gdb/gdbserver/server.c @@ -1,5 +1,5 @@ /* Main code for remote server for GDB. - Copyright (C) 1989-2019 Free Software Foundation, Inc. + Copyright (C) 1989-2020 Free Software Foundation, Inc. This file is part of GDB. @@ -41,6 +41,9 @@ #include "gdbsupport/environ.h" #include "filenames.h" #include "gdbsupport/pathstuff.h" +#ifdef USE_XML +#include "xml-builtin.h" +#endif #include "gdbsupport/selftest.h" #include "gdbsupport/scope-exit.h" @@ -67,25 +70,19 @@ char *current_directory; static gdb_environ our_environ; -/* Start the inferior using a shell. */ - -/* We always try to start the inferior using a shell. */ - -int startup_with_shell = 1; +bool server_waiting; -int server_waiting; - -static int extended_protocol; -static int response_needed; -static int exit_requested; +static bool extended_protocol; +static bool response_needed; +static bool exit_requested; /* --once: Exit after the first connection has closed. */ -int run_once; +bool run_once; -/* Whether to report TARGET_WAITKING_NO_RESUMED events. */ -static int report_no_resumed; +/* Whether to report TARGET_WAITKIND_NO_RESUMED events. */ +static bool report_no_resumed; -int non_stop; +bool non_stop; static struct { /* Set the PROGRAM_PATH. Here we adjust the path of the provided @@ -129,10 +126,10 @@ unsigned long signal_pid; /* Set if you want to disable optional thread related packets support in gdbserver, for the sake of testing GDB against stubs that don't support them. */ -int disable_packet_vCont; -int disable_packet_Tthread; -int disable_packet_qC; -int disable_packet_qfThreadInfo; +bool disable_packet_vCont; +bool disable_packet_Tthread; +bool disable_packet_qC; +bool disable_packet_qfThreadInfo; static unsigned char *mem_buf; @@ -268,7 +265,7 @@ get_exec_wrapper () /* See gdbsupport/common-inferior.h. */ -char * +const char * get_exec_file (int err) { if (err && program_path.get () == NULL) @@ -750,7 +747,7 @@ handle_general_set (char *own_buf) return; } - non_stop = req; + non_stop = (req != 0); if (remote_debug) debug_printf ("[%s mode enabled]\n", req_str); @@ -926,7 +923,6 @@ get_features_xml (const char *annex) #ifdef USE_XML { - extern const char *const xml_builtin[][2]; int i; /* Look for the annex. */ @@ -1237,7 +1233,7 @@ handle_detach (char *own_buf) if (debug_threads) debug_printf ("Forcing non-stop mode\n"); - non_stop = 1; + non_stop = true; start_non_stop (1); } @@ -1406,7 +1402,7 @@ handle_monitor_command (char *mon, char *own_buf) else if (strcmp (mon, "help") == 0) monitor_show_help (); else if (strcmp (mon, "exit") == 0) - exit_requested = 1; + exit_requested = true; else { monitor_output ("Unknown monitor command.\n\n"); @@ -1552,8 +1548,8 @@ handle_qxfer_libraries (const char *annex, for (const dll_info &dll : all_dlls) document += string_printf - (" \n", - dll.name.c_str (), (long) dll.base_addr); + (" \n", + dll.name.c_str (), paddress (dll.base_addr)); document += "\n"; @@ -2272,9 +2268,10 @@ handle_query (char *own_buf, int packet_len, int *new_packet_len_p) /* Two passes, to avoid nested strtok calls in target_process_qsupported. */ - for (p = strtok (p + 1, ";"); + char *saveptr; + for (p = strtok_r (p + 1, ";", &saveptr); p != NULL; - p = strtok (NULL, ";")) + p = strtok_r (NULL, ";", &saveptr)) { count++; qsupported = XRESIZEVEC (char *, qsupported, count); @@ -2337,7 +2334,7 @@ handle_query (char *own_buf, int packet_len, int *new_packet_len_p) { /* GDB supports and wants TARGET_WAITKIND_NO_RESUMED events. */ - report_no_resumed = 1; + report_no_resumed = true; } else { @@ -3384,7 +3381,7 @@ static void gdbserver_version (void) { printf ("GNU gdbserver %s%s\n" - "Copyright (C) 2019 Free Software Foundation, Inc.\n" + "Copyright (C) 2020 Free Software Foundation, Inc.\n" "gdbserver is free software, covered by the " "GNU General Public License.\n" "This gdbserver was configured as \"%s\"\n", @@ -3637,27 +3634,26 @@ captured_main (int argc, char *argv[]) } else if (startswith (*next_arg, "--disable-packet=")) { - char *packets, *tok; - - packets = *next_arg += sizeof ("--disable-packet=") - 1; - for (tok = strtok (packets, ","); + char *packets = *next_arg += sizeof ("--disable-packet=") - 1; + char *saveptr; + for (char *tok = strtok_r (packets, ",", &saveptr); tok != NULL; - tok = strtok (NULL, ",")) + tok = strtok_r (NULL, ",", &saveptr)) { if (strcmp ("vCont", tok) == 0) - disable_packet_vCont = 1; + disable_packet_vCont = true; else if (strcmp ("Tthread", tok) == 0) - disable_packet_Tthread = 1; + disable_packet_Tthread = true; else if (strcmp ("qC", tok) == 0) - disable_packet_qC = 1; + disable_packet_qC = true; else if (strcmp ("qfThreadInfo", tok) == 0) - disable_packet_qfThreadInfo = 1; + disable_packet_qfThreadInfo = true; else if (strcmp ("threads", tok) == 0) { - disable_packet_vCont = 1; - disable_packet_Tthread = 1; - disable_packet_qC = 1; - disable_packet_qfThreadInfo = 1; + disable_packet_vCont = true; + disable_packet_Tthread = true; + disable_packet_qC = true; + disable_packet_qfThreadInfo = true; } else { @@ -3685,7 +3681,7 @@ captured_main (int argc, char *argv[]) else if (strcmp (*next_arg, "--no-startup-with-shell") == 0) startup_with_shell = false; else if (strcmp (*next_arg, "--once") == 0) - run_once = 1; + run_once = true; else if (strcmp (*next_arg, "--selftest") == 0) selftest = true; else if (startswith (*next_arg, "--selftest=")) @@ -4016,7 +4012,7 @@ process_serial_event (void) disable_async_io (); - response_needed = 0; + response_needed = false; packet_len = getpkt (cs.own_buf); if (packet_len <= 0) { @@ -4024,7 +4020,7 @@ process_serial_event (void) /* Force an event loop break. */ return -1; } - response_needed = 1; + response_needed = true; char ch = cs.own_buf[0]; switch (ch) @@ -4039,7 +4035,7 @@ process_serial_event (void) handle_detach (cs.own_buf); break; case '!': - extended_protocol = 1; + extended_protocol = true; write_ok (cs.own_buf); break; case '?': @@ -4254,7 +4250,7 @@ process_serial_event (void) break; } case 'k': - response_needed = 0; + response_needed = false; if (!target_running ()) /* The packet we received doesn't make sense - but we can't reply to it, either. */ @@ -4293,7 +4289,7 @@ process_serial_event (void) } break; case 'R': - response_needed = 0; + response_needed = false; /* Restarting the inferior is only supported in the extended protocol. */ @@ -4354,7 +4350,7 @@ process_serial_event (void) else putpkt (cs.own_buf); - response_needed = 0; + response_needed = false; if (exit_requested) return -1;