From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-io1-xd2b.google.com (mail-io1-xd2b.google.com [IPv6:2607:f8b0:4864:20::d2b]) by sourceware.org (Postfix) with ESMTPS id BE2BF3857C49 for ; Wed, 27 Apr 2022 17:28:03 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org BE2BF3857C49 Received: by mail-io1-xd2b.google.com with SMTP id z18so3591049iob.5 for ; Wed, 27 Apr 2022 10:28:03 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=SyhDqlYICKeLkxgkrdn2FzK9O30JUaDINYiEjM+ZCAk=; b=wduznXg2TY8I1r5njc9OOfkaCHP57XsAhFANuavKqPvhpLvJH3CMi2Pdjs0P43Dr5J 9t3R3EFxuDiYNxkd2uU96FbKFfLplXHOP53z2RG1y5EkQYZdDx5cESdTylthmzjCpE9Y +309ujJVDVLRt/PD+f7pkEpOFxLDzwn+6+hvtKp4PSQh1tgn6CXLY9JJSODTy1kzxa0i YmdkojHKVp8Qw6dteuWpmOiA3jwpOSMEZPX+VOyIhX2ztw7wfS5WovfimJDZuJL8rGOk XBogHbxwrM6CBY6KTGkSh6Cydo0rBtn6OxX9RCCeOQ0x3Fw3Bp+X/Y6hncW4gro0Vyy3 6yKw== X-Gm-Message-State: AOAM533/NjItpGafgMNX/ldPDgMaqJBAgGgMFJA4sIAztKeac5whoTlA hmLGiQHsWkacagLbnP10OJVMvHt2PkdK3Q== X-Google-Smtp-Source: ABdhPJyXZe7h0NJsUpEghuZmf8Hn7erJIip81bMrCnfRv8z3xqxIrAUn3stKwx4kNNOAXovPRH35gQ== X-Received: by 2002:a05:6638:3493:b0:329:b647:4aa8 with SMTP id t19-20020a056638349300b00329b6474aa8mr12730987jal.226.1651080482528; Wed, 27 Apr 2022 10:28:02 -0700 (PDT) Received: from murgatroyd.Home (71-211-158-194.hlrn.qwest.net. [71.211.158.194]) by smtp.gmail.com with ESMTPSA id e17-20020a5d8ad1000000b00644d51bbffcsm12053539iot.36.2022.04.27.10.28.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 27 Apr 2022 10:28:02 -0700 (PDT) From: Tom Tromey To: gdb-patches@sourceware.org Cc: Tom Tromey Subject: [PATCH 1/2] Constify target_pid_to_exec_file Date: Wed, 27 Apr 2022 11:27:59 -0600 Message-Id: <20220427172800.858822-2-tromey@adacore.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220427172800.858822-1-tromey@adacore.com> References: <20220427172800.858822-1-tromey@adacore.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-11.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Apr 2022 17:28:06 -0000 This changes target_pid_to_exec_file and target_ops::pid_to_exec_file to return a "const char *". I couldn't build many of these targets, but did examine the code by hand -- also, as this only affects the return type, it's normally pretty safe. This brings gdb and gdbserver a bit closer, and allows for the removal of a const_cast as well. --- gdb/darwin-nat.c | 2 +- gdb/darwin-nat.h | 2 +- gdb/exec.c | 2 +- gdb/fbsd-nat.c | 2 +- gdb/fbsd-nat.h | 2 +- gdb/inf-child.c | 2 +- gdb/inf-child.h | 2 +- gdb/linux-nat.c | 2 +- gdb/linux-nat.h | 2 +- gdb/nat/linux-procfs.c | 2 +- gdb/nat/linux-procfs.h | 2 +- gdb/netbsd-nat.c | 4 ++-- gdb/netbsd-nat.h | 2 +- gdb/nto-procfs.c | 4 ++-- gdb/procfs.c | 4 ++-- gdb/remote.c | 4 ++-- gdb/target-delegates.c | 14 +++++++------- gdb/target.c | 2 +- gdb/target.h | 4 ++-- gdb/windows-nat.c | 4 ++-- 20 files changed, 32 insertions(+), 32 deletions(-) diff --git a/gdb/darwin-nat.c b/gdb/darwin-nat.c index 17723656930..eca97c9bde9 100644 --- a/gdb/darwin-nat.c +++ b/gdb/darwin-nat.c @@ -2373,7 +2373,7 @@ set_enable_mach_exceptions (const char *args, int from_tty, } } -char * +const char * darwin_nat_target::pid_to_exec_file (int pid) { static char path[PATH_MAX]; diff --git a/gdb/darwin-nat.h b/gdb/darwin-nat.h index 733ac7cc058..e3dcd963706 100644 --- a/gdb/darwin-nat.h +++ b/gdb/darwin-nat.h @@ -100,7 +100,7 @@ class darwin_nat_target : public inf_child_target std::string pid_to_str (ptid_t) override; - char *pid_to_exec_file (int pid) override; + const char *pid_to_exec_file (int pid) override; enum target_xfer_status xfer_partial (enum target_object object, const char *annex, diff --git a/gdb/exec.c b/gdb/exec.c index 38540c0840b..40c89d53ba9 100644 --- a/gdb/exec.c +++ b/gdb/exec.c @@ -314,7 +314,7 @@ validate_exec_file (int from_tty) void exec_file_locate_attach (int pid, int defer_bp_reset, int from_tty) { - char *exec_file_target; + const char *exec_file_target; symfile_add_flags add_flags = 0; /* Do nothing if we already have an executable filename. */ diff --git a/gdb/fbsd-nat.c b/gdb/fbsd-nat.c index 8e5107c26f8..22349d49aee 100644 --- a/gdb/fbsd-nat.c +++ b/gdb/fbsd-nat.c @@ -52,7 +52,7 @@ /* Return the name of a file that can be opened to get the symbols for the child process identified by PID. */ -char * +const char * fbsd_nat_target::pid_to_exec_file (int pid) { static char buf[PATH_MAX]; diff --git a/gdb/fbsd-nat.h b/gdb/fbsd-nat.h index 82f7ee47949..ff62a5826a9 100644 --- a/gdb/fbsd-nat.h +++ b/gdb/fbsd-nat.h @@ -44,7 +44,7 @@ class fbsd_nat_target : public inf_ptrace_target { public: - char *pid_to_exec_file (int pid) override; + const char *pid_to_exec_file (int pid) override; int find_memory_regions (find_memory_region_ftype func, void *data) override; diff --git a/gdb/inf-child.c b/gdb/inf-child.c index cc00867787a..56ebd2a5549 100644 --- a/gdb/inf-child.c +++ b/gdb/inf-child.c @@ -220,7 +220,7 @@ inf_child_target::can_attach () return true; } -char * +const char * inf_child_target::pid_to_exec_file (int pid) { /* This target doesn't support translation of a process ID to the diff --git a/gdb/inf-child.h b/gdb/inf-child.h index a017032a32f..ae5ace46f30 100644 --- a/gdb/inf-child.h +++ b/gdb/inf-child.h @@ -71,7 +71,7 @@ class inf_child_target void post_attach (int) override; - char *pid_to_exec_file (int pid) override; + const char *pid_to_exec_file (int pid) override; int fileio_open (struct inferior *inf, const char *filename, int flags, int mode, int warn_if_slow, diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c index dff8d07d3f7..ca8ddc7100e 100644 --- a/gdb/linux-nat.c +++ b/gdb/linux-nat.c @@ -3773,7 +3773,7 @@ linux_nat_target::thread_name (struct thread_info *thr) /* Accepts an integer PID; Returns a string representing a file that can be opened to get the symbols for the child process. */ -char * +const char * linux_nat_target::pid_to_exec_file (int pid) { return linux_proc_pid_to_exec_file (pid); diff --git a/gdb/linux-nat.h b/gdb/linux-nat.h index 12a90eccb28..11043c4b9f6 100644 --- a/gdb/linux-nat.h +++ b/gdb/linux-nat.h @@ -123,7 +123,7 @@ class linux_nat_target : public inf_ptrace_target int set_syscall_catchpoint (int pid, bool needed, int any_count, gdb::array_view syscall_counts) override; - char *pid_to_exec_file (int pid) override; + const char *pid_to_exec_file (int pid) override; void post_attach (int) override; diff --git a/gdb/nat/linux-procfs.c b/gdb/nat/linux-procfs.c index 2618c99d9f4..99e645786c2 100644 --- a/gdb/nat/linux-procfs.c +++ b/gdb/nat/linux-procfs.c @@ -341,7 +341,7 @@ linux_proc_task_list_dir_exists (pid_t pid) /* See linux-procfs.h. */ -char * +const char * linux_proc_pid_to_exec_file (int pid) { static char buf[PATH_MAX]; diff --git a/gdb/nat/linux-procfs.h b/gdb/nat/linux-procfs.h index fa1280a8967..fcc8280adf1 100644 --- a/gdb/nat/linux-procfs.h +++ b/gdb/nat/linux-procfs.h @@ -78,7 +78,7 @@ extern int linux_proc_task_list_dir_exists (pid_t pid); to create the process PID. The returned value persists until this function is next called. */ -extern char *linux_proc_pid_to_exec_file (int pid); +extern const char *linux_proc_pid_to_exec_file (int pid); /* Display possible problems on this system. Display them only once per GDB execution. */ diff --git a/gdb/netbsd-nat.c b/gdb/netbsd-nat.c index f2eeb3ff61e..2ccd0e014c2 100644 --- a/gdb/netbsd-nat.c +++ b/gdb/netbsd-nat.c @@ -34,10 +34,10 @@ /* Return the name of a file that can be opened to get the symbols for the child process identified by PID. */ -char * +const char * nbsd_nat_target::pid_to_exec_file (int pid) { - return const_cast (netbsd_nat::pid_to_exec_file (pid)); + return netbsd_nat::pid_to_exec_file (pid); } /* Return the current directory for the process identified by PID. */ diff --git a/gdb/netbsd-nat.h b/gdb/netbsd-nat.h index ef190c4e471..ff468452b2c 100644 --- a/gdb/netbsd-nat.h +++ b/gdb/netbsd-nat.h @@ -28,7 +28,7 @@ struct thread_info; struct nbsd_nat_target : public inf_ptrace_target { - char *pid_to_exec_file (int pid) override; + const char *pid_to_exec_file (int pid) override; bool thread_alive (ptid_t ptid) override; const char *thread_name (struct thread_info *thr) override; diff --git a/gdb/nto-procfs.c b/gdb/nto-procfs.c index 61374c9fad4..ef9e0f05261 100644 --- a/gdb/nto-procfs.c +++ b/gdb/nto-procfs.c @@ -121,7 +121,7 @@ struct nto_procfs_target : public inf_child_target const char *extra_thread_info (struct thread_info *) override; - char *pid_to_exec_file (int pid) override; + const char *pid_to_exec_file (int pid) override; }; /* For "target native". */ @@ -664,7 +664,7 @@ nto_procfs_target::files_info () /* Target to_pid_to_exec_file implementation. */ -char * +const char * nto_procfs_target::pid_to_exec_file (const int pid) { int proc_fd; diff --git a/gdb/procfs.c b/gdb/procfs.c index f6ca1345a21..d290505d8c3 100644 --- a/gdb/procfs.c +++ b/gdb/procfs.c @@ -127,7 +127,7 @@ class procfs_target final : public inf_child_target std::string pid_to_str (ptid_t) override; - char *pid_to_exec_file (int pid) override; + const char *pid_to_exec_file (int pid) override; thread_control_capabilities get_thread_control_capabilities () override { return tc_schedlock; } @@ -2927,7 +2927,7 @@ procfs_target::pid_to_str (ptid_t ptid) /* Accepts an integer PID; Returns a string representing a file that can be opened to get the symbols for the child process. */ -char * +const char * procfs_target::pid_to_exec_file (int pid) { static char buf[PATH_MAX]; diff --git a/gdb/remote.c b/gdb/remote.c index 562cc586f2b..09994009e48 100644 --- a/gdb/remote.c +++ b/gdb/remote.c @@ -508,7 +508,7 @@ class remote_target : public process_stratum_target void rcmd (const char *command, struct ui_file *output) override; - char *pid_to_exec_file (int pid) override; + const char *pid_to_exec_file (int pid) override; void log_command (const char *cmd) override { @@ -14338,7 +14338,7 @@ remote_target::load (const char *name, int from_tty) can be opened on the remote side to get the symbols for the child process. Returns NULL if the operation is not supported. */ -char * +const char * remote_target::pid_to_exec_file (int pid) { static gdb::optional filename; diff --git a/gdb/target-delegates.c b/gdb/target-delegates.c index 4e653e8f429..8a9986454dd 100644 --- a/gdb/target-delegates.c +++ b/gdb/target-delegates.c @@ -94,7 +94,7 @@ struct dummy_target : public target_ops void interrupt () override; void pass_ctrlc () override; void rcmd (const char *arg0, struct ui_file *arg1) override; - char *pid_to_exec_file (int arg0) override; + const char *pid_to_exec_file (int arg0) override; void log_command (const char *arg0) override; const target_section_table *get_section_table () override; thread_control_capabilities get_thread_control_capabilities () override; @@ -268,7 +268,7 @@ struct debug_target : public target_ops void interrupt () override; void pass_ctrlc () override; void rcmd (const char *arg0, struct ui_file *arg1) override; - char *pid_to_exec_file (int arg0) override; + const char *pid_to_exec_file (int arg0) override; void log_command (const char *arg0) override; const target_section_table *get_section_table () override; thread_control_capabilities get_thread_control_capabilities () override; @@ -1983,28 +1983,28 @@ debug_target::rcmd (const char *arg0, struct ui_file *arg1) gdb_puts (")\n", gdb_stdlog); } -char * +const char * target_ops::pid_to_exec_file (int arg0) { return this->beneath ()->pid_to_exec_file (arg0); } -char * +const char * dummy_target::pid_to_exec_file (int arg0) { return NULL; } -char * +const char * debug_target::pid_to_exec_file (int arg0) { - char * result; + const char * result; gdb_printf (gdb_stdlog, "-> %s->pid_to_exec_file (...)\n", this->beneath ()->shortname ()); result = this->beneath ()->pid_to_exec_file (arg0); gdb_printf (gdb_stdlog, "<- %s->pid_to_exec_file (", this->beneath ()->shortname ()); target_debug_print_int (arg0); gdb_puts (") = ", gdb_stdlog); - target_debug_print_char_p (result); + target_debug_print_const_char_p (result); gdb_puts ("\n", gdb_stdlog); return result; } diff --git a/gdb/target.c b/gdb/target.c index 7d291fd4d0d..46cd17b4610 100644 --- a/gdb/target.c +++ b/gdb/target.c @@ -423,7 +423,7 @@ target_extra_thread_info (thread_info *tp) /* See target.h. */ -char * +const char * target_pid_to_exec_file (int pid) { return current_inferior ()->top_target ()->pid_to_exec_file (pid); diff --git a/gdb/target.h b/gdb/target.h index 093178af0bc..8b4e497e5e5 100644 --- a/gdb/target.h +++ b/gdb/target.h @@ -688,7 +688,7 @@ struct target_ops TARGET_DEFAULT_FUNC (default_target_pass_ctrlc); virtual void rcmd (const char *command, struct ui_file *output) TARGET_DEFAULT_FUNC (default_rcmd); - virtual char *pid_to_exec_file (int pid) + virtual const char *pid_to_exec_file (int pid) TARGET_DEFAULT_RETURN (NULL); virtual void log_command (const char *) TARGET_DEFAULT_IGNORE (); @@ -1942,7 +1942,7 @@ extern gdb::byte_vector target_thread_info_to_thread_handle the client if the string will not be immediately used, or if it must persist. */ -extern char *target_pid_to_exec_file (int pid); +extern const char *target_pid_to_exec_file (int pid); /* See the to_thread_architecture description in struct target_ops. */ diff --git a/gdb/windows-nat.c b/gdb/windows-nat.c index 1068558cd21..cd43409a02f 100644 --- a/gdb/windows-nat.c +++ b/gdb/windows-nat.c @@ -276,7 +276,7 @@ struct windows_nat_target final : public x86_nat_target void interrupt () override; - char *pid_to_exec_file (int pid) override; + const char *pid_to_exec_file (int pid) override; ptid_t get_ada_task_ptid (long lwp, ULONGEST thread) override; @@ -2005,7 +2005,7 @@ windows_get_exec_module_filename (char *exe_name_ret, size_t exe_name_max_len) /* The pid_to_exec_file target_ops method for this platform. */ -char * +const char * windows_nat_target::pid_to_exec_file (int pid) { static char path[__PMAX]; -- 2.34.1