From patchwork Thu Oct 17 22:50:09 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pedro Alves X-Patchwork-Id: 35121 Received: (qmail 13269 invoked by alias); 17 Oct 2019 22:57:31 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 13260 invoked by uid 89); 17 Oct 2019 22:57:31 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.0 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, SPF_HELO_PASS autolearn=ham version=3.3.1 spammy=destroy X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 17 Oct 2019 22:57:30 +0000 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id EE7F7307D986 for ; Thu, 17 Oct 2019 22:50:34 +0000 (UTC) Received: from localhost.localdomain (ovpn04.gateway.prod.ext.ams2.redhat.com [10.39.146.4]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7FB1A1001B08 for ; Thu, 17 Oct 2019 22:50:34 +0000 (UTC) From: Pedro Alves To: gdb-patches@sourceware.org Subject: [PATCH v2 07/24] Delete unnecessary code from kill_command Date: Thu, 17 Oct 2019 23:50:09 +0100 Message-Id: <20191017225026.30496-8-palves@redhat.com> In-Reply-To: <20191017225026.30496-1-palves@redhat.com> References: <20191017225026.30496-1-palves@redhat.com> I believe this comment: /* Killing off the inferior can leave us with a core file. If so, print the state we are left in. */ Referred to the fact that a decade ago, by design, GDB would let you type "run" when debugging a core dump, keeping the core open. That "run" would push a process_stratum target on the target stack for the live process, and, the core would remain open -- we used to have a core_stratum. When the live process was killed/detached or exited, GDB would go back to debugging the core, since the core_stratum target was now at the top of the stack. That design had a number of problems, see here for example: https://sourceware.org/ml/gdb-patches/2008-08/msg00290.html In 2010, core_stratum was finaly eliminated and cores now have process_stratum too, with commit c0edd9edadfe ("Make core files the process_stratum."). Pushing a live process on the stack while you're debugging a core discards the core completely. I also thought that this might be in use with checkpoints, but it does not -- "kill" when you have multiple checkpoints kills all the checkpoints. gdb/ChangeLog: yyyy-mm-dd Pedro Alves * infcmd.c (kill_command): Remove dead code. --- gdb/infcmd.c | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/gdb/infcmd.c b/gdb/infcmd.c index 71057748fd..ae1044b95a 100644 --- a/gdb/infcmd.c +++ b/gdb/infcmd.c @@ -2501,20 +2501,6 @@ kill_command (const char *arg, int from_tty) printf_unfiltered (_("[Inferior %d (%s) killed]\n"), infnum, pid_str.c_str ()); - /* If we still have other inferiors to debug, then don't mess with - with their threads. */ - if (!have_inferiors ()) - { - init_thread_list (); /* Destroy thread info. */ - - /* Killing off the inferior can leave us with a core file. If - so, print the state we are left in. */ - if (target_has_stack) - { - printf_filtered (_("In %s,\n"), target_longname); - print_stack_frame (get_selected_frame (NULL), 1, SRC_AND_LOC, 1); - } - } bfd_cache_close_all (); }