From patchwork Wed Apr 11 15:28:43 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Marchi X-Patchwork-Id: 26685 Received: (qmail 29667 invoked by alias); 11 Apr 2018 15:29:07 -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 28880 invoked by uid 89); 11 Apr 2018 15:29:07 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No 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, KAM_SHORT, SPF_PASS autolearn=ham version=3.3.2 spammy=Hx-spam-relays-external:15.1.1034.26, H*RU:15.1.1034.26, H*r:15.1.1034.26, sk:additio X-HELO: sesbmg22.ericsson.net Received: from sesbmg22.ericsson.net (HELO sesbmg22.ericsson.net) (193.180.251.48) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 11 Apr 2018 15:29:05 +0000 Received: from ESESSHC024.ericsson.se (Unknown_Domain [153.88.183.90]) by sesbmg22.ericsson.net (Symantec Mail Security) with SMTP id 41.95.24098.EB92ECA5; Wed, 11 Apr 2018 17:29:02 +0200 (CEST) Received: from ESESSMR505.ericsson.se (153.88.183.127) by ESESSHC024.ericsson.se (153.88.183.90) with Microsoft SMTP Server (TLS) id 14.3.382.0; Wed, 11 Apr 2018 17:29:02 +0200 Received: from ESESSMB503.ericsson.se (153.88.183.164) by ESESSMR505.ericsson.se (153.88.183.127) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1034.26; Wed, 11 Apr 2018 17:29:01 +0200 Received: from NAM03-DM3-obe.outbound.protection.outlook.com (153.88.183.157) by ESESSMB503.ericsson.se (153.88.183.164) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1034.26 via Frontend Transport; Wed, 11 Apr 2018 17:29:01 +0200 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=simon.marchi@ericsson.com; Received: from elxacz23q12.ericsson.se (129.192.64.65) by MW2PR1501MB2011.namprd15.prod.outlook.com (2603:10b6:302:c::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.653.12; Wed, 11 Apr 2018 15:28:58 +0000 From: Simon Marchi To: CC: Simon Marchi Subject: [PATCH] Add test for following fork on position-independent executables Date: Wed, 11 Apr 2018 11:28:43 -0400 Message-ID: <1523460523-19370-1-git-send-email-simon.marchi@ericsson.com> MIME-Version: 1.0 X-ClientProxiedBy: YTXPR0101CA0007.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b00::20) To MW2PR1501MB2011.namprd15.prod.outlook.com (2603:10b6:302:c::11) X-MS-PublicTrafficType: Email X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:MW2PR1501MB2011; X-Microsoft-Exchange-Diagnostics: 1; MW2PR1501MB2011; 3:Vz1P1THc3eHA24T/PhFZW6LTUfCx6hQ6LjegbNjXX4BeVgDTi4IXY1POzrU/CQa1nQHt/tyN8+FFHJ6lZ0n5OCx8dDGV4ADoEF2Ut3zLfVqGMyJZQCWLOol7dl8JeIhrc8okZMO5s5N3uLBqts8ZFGjD7mGSole57o44Uki+19fxxsGKCevT4Mnq0UFDjTqRkkSguykpO2JRdfCu77F1vVvSnImxKzc9OJY8cJI2dd5wFVYpJL0t0bnSaOFOWaz6; 25:u01Dr1j521vBaLmX+zs0wndo/y5NfqrNG2QIEUcUIqZl+QYJFJakm+E+50fWiw6TlHGZwdNX5LOGYlEmJv7ylVLtPCjPq02PdJu1Gl0+1FH3ia5QdRQOR+00z5zA2BlLHjBclKfUJCKu6WWmOe5HCBSrFdmLqtxci5yW+R87kwjeanMRUFWsa4BXaeFFam5Ak4fXzrtyXEF/bXHorb8kaxUMP8Keb0dIcq5uyAFBeGYT9FiLV7Z5ttKdNHDraqm91+MEWNZgitR45SIcyEcmSAoIZSNThXeF6ywXzTP0BtkLpiGa5w6nKIzK3NsMyYfVgeVHQIKg9G76lBCgv7Fbkw==; 31:bSqHQZD2orcJP3EWtE56WJuzCLqfY1Lm5oFNHMVnIg/YbAoCuMBZ//57K36dTUIUDKg6XU3Z8/PqXWCwdPYaoOhr/+I4RuwiJuMcNFkQb2c4W6W54j+dfATcFBP+2G90TgGIq6+erLlVHSiJhd83XAyCG8uuaFMStKxN49Q5mlrOLx+IiLYfWG+G6XQKWREn0h22EVVuT5LplTEQrTqOLvs6xztYEDxBt55oVhhH6XI= X-MS-TrafficTypeDiagnostic: MW2PR1501MB2011: X-Microsoft-Exchange-Diagnostics: 1; MW2PR1501MB2011; 20:O0aKuROgBm6Gkj8uJTf2yevXWPZdOh90SJo4k9SJs4k/TXIAMjyoPSvK75RfrMbV7AAObiwIKkqntOrKYZ8njD6xv1n5KINzqAgUT64dzPeUn5G19m54oPn78XzAIZ321KWkgNR/sj+JzRPAJpTXch3rERAZ5SKvaN0yDqjBmEimdPShxwbLXelmWPMOPWvIidhGfE1CKp7VG7WNyagYR5VK+cr2SPgx0rlTwhht2OMmvmScbgyHaWUx6drHg1YLicoQrtvHu9m2hPEH92W+HqGs410u7tMH3Vtf7j6rjLlQTfEDyom2Icf++x3m7GfwvICrB9M1aS7kRmBFadbT0IW/6V9DG+D9f9BnDMZM3sNJdCR5aR8/E1nbPLAdEq3R2qBtAyOG2hXJAPzzEym+vjWbPTiT/BY9E0UYUOdRvNP47cXW9NEoWCtjeVifiIw+2wckNbh/YN4624jfBlzu+xU1xOWikFSi4MP3w3DQW2B+qE8Y4AIHjsQKwg4z5ImK; 4:JKPle786SFcr/8Pqh8ESMzicFtYwCAd1PHDY82hJUClfkL6CA048XZugpz9gERxdFN0bsqLa5n8bGY+E0a81RYtbapgUeZpsIfOO1rteKj3oRZHg+rxnJq3HmG/BgzTtDxdIthlD+pX5T9h+2ATQuU6bCZ1FiuDfSJHTkgh/OlVpL4KTNwA/CImQpZd0rWAspGV3rGoDH8KoYxlwrnXiGk27p5XFDnSUHfjvrOEWsGvZWx1e8VWe02VfBoB/YZHlmUW3Rxx4smY9CNTtnq3n1wTSTivFQdMhLyJKrA1I+Zjj1dctmh6o13BX/IwCcmtT8Asmz/Hx92mSchbFuGVoKGuj5d5mqas2wG+N2584cx4= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(250305191791016)(22074186197030); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3002001)(10201501046)(3231221)(944501327)(52105095)(93006095)(93001095)(6041310)(20161123562045)(20161123564045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(6072148)(201708071742011); SRVR:MW2PR1501MB2011; BCL:0; PCL:0; RULEID:; SRVR:MW2PR1501MB2011; X-Forefront-PRVS: 0639027A9E X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(366004)(39380400002)(396003)(39850400004)(346002)(376002)(199004)(189003)(54534003)(66066001)(106356001)(305945005)(16526019)(7736002)(2616005)(97736004)(8936002)(26005)(86362001)(3846002)(6116002)(69596002)(6306002)(186003)(2361001)(50466002)(36756003)(105586002)(6916009)(52116002)(53416004)(2906002)(386003)(6666003)(478600001)(107886003)(6512007)(8676002)(51416003)(6506007)(316002)(4326008)(48376002)(2351001)(5660300001)(47776003)(956004)(25786009)(1857600001)(81156014)(486006)(6486002)(50226002)(81166006)(68736007)(53936002)(16586007)(476003)(2004002); DIR:OUT; SFP:1101; SCL:1; SRVR:MW2PR1501MB2011; H:elxacz23q12.ericsson.se; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; MW2PR1501MB2011; 23:QRi6UgKyo6BQWbDdEAUhrJmFVRfbbU58kKZWCMH?= =?us-ascii?Q?wOXnzLMWZmwk02fjXiysOO8Iw6m209QZfoQFOod+p+Uk9c/yxx7m24vGaUB8?= =?us-ascii?Q?0OGBFrEArubbt2eMHSro7pegn4s4rYxARdMXXd2mYhAON4b19ddYN2AMLWT5?= =?us-ascii?Q?n7gdZwJi3eGlZ3zR8P9P1ehXO6NXpbkdcagaVbAbLmIymqiVzNCvgwhtW1RR?= =?us-ascii?Q?R7dEmkbJMmGfyvFoKWIwkJoLrFdRg9/65Qb9vV/HcId9dD4cE5M0k0kBxuRG?= =?us-ascii?Q?Tdbo6yUNsMI/H3fXjzswXC1UmaqFaiYLJldVQGTeQ6o/RXL1P84Hsc3UEgT/?= =?us-ascii?Q?75gL/5klhvWDqo8v4AB9B/G+TtkcQGZGekl2fNe4Q3QQLItMAUE2jVg3J0FB?= =?us-ascii?Q?TjeioqnL5gwn0dGA2W7YTwaRhVhJSTupNVfT18avjCX58XH3oZ+O/hjrRAlK?= =?us-ascii?Q?q4wwOKd/TkwlxrKAgeOxIzmDabf537Lq2GeSJEnOo5iHJI7d7yff7iP39dF0?= =?us-ascii?Q?Iw49mJjNGME8zf5q37SLMbPS00AusmXE+b40zSEPW4r3+mJjkn7Bksht7cpu?= =?us-ascii?Q?9QvJXfQwYkWQeTizRQRMMEo/zlG3c9LrF5H27wizTqkdf8ywcixeS4U305BQ?= =?us-ascii?Q?exvW+8XE4aqcW6gaJeNS7aEaZ84gADq8//p4Kg8cQFD5by6+2w1gmoFuHcB4?= =?us-ascii?Q?jInm6Lc2HY+VuVOa9N/B4gXTvgQUP5GKJktPuH+rW6ARFeBPuoPeYj6jbjIr?= =?us-ascii?Q?ANH2vHiozwD8hrEYiU7JYWtb7wLYQMx/5nFRuhj1nqixWynkpsAM1q7E6L2i?= =?us-ascii?Q?A7lLIz6ihQJGBnVkZhkFgpaVT9mPS5IcW/CiTNMtohUnVga9TTUKdkewy6nD?= =?us-ascii?Q?/eOkI19meGxkJgDUxHlBISExAdTga48xAcU7nDHpVffbTyXw9j1df/A22zuR?= =?us-ascii?Q?VY1YlKodMfhKQZgaLUM/1JCkCQUqsrx89yytGFHRoyBF1Z8bdo8tN2NGoWke?= =?us-ascii?Q?715voaK55CJb3F/r5yYgX/Kn7WCXqM3gSJayb6R/1u3xfjFwqStml93BhUKZ?= =?us-ascii?Q?1Bms82C//O3Fj+RBI7Lz4Xxylxq2y1uSuMgXwsz3z7+mFBGssw+steYZbZET?= =?us-ascii?Q?SjC9nroCQX5kl44QDw0lIwAwsFDDTVo+ll7pqi22yMsRrSrI5uVi179ZnKOh?= =?us-ascii?Q?xGTiaNxK2uaUj46jE7sKFeHIYscI4y6DEaa5eeflDfhQlcNNF3GJsR0YvvYE?= =?us-ascii?Q?uXoXceVMJB5eKL1VNDU5MbIMyrwZiaWrzOGcusOoESCc8UjH3V090qSUCLO4?= =?us-ascii?Q?MFJ/J3vTM6OK/eLA15wE1g90=3D?= X-Microsoft-Antispam-Message-Info: SEu1B97lJH47UPOYMccHFM+nn531hfzpzaeoEc4PPwObp09PgVkrL8iJcdwaXzj6V5syfksagGLPRXG/6ye6/Z1jYs1ce8clay0pyeXNTcMzriZmRuvVILXRDEC36+ff9/2yb2scKe/8ziN4MO8V4BqreM9BrPXygepqKCl9RaZgWGWZeve+m+x8wGs1Yh3v X-Microsoft-Exchange-Diagnostics: 1; MW2PR1501MB2011; 6:jxKvyRvGBjHNWKxe22Dj2QEW2Qs1OOxl+7uj8xKs8r7coVmPHbfL6dPXh69yDqx7hB1PkZIeP/Ju8o6d7l5AGG4KK5pD8Cg/Ea3bnlUKhXJDbJd7tR04MVuBhs2LQEDcBNRbCUXB4HHWVnEwwFONyc+VJWYOQHVe7NFem3Zx4ggxj/4FBhACNpyT1qahJ9v2oCK/wp/zglZK3KUEFpwfbW84n6kUWeWmnCR5fCAHxHAhvhe0rdffPXNu7ve7KUlJCPWIVbPwh+VOtuCt7yK2MP5b7lo6pjOyhAQrRfs/EvajAyi+PyVyhSOmiya9qz7r1TPGOdvaHMm7fgjAGeBnwXnLoxVaKw1os/mzb6DT6GVXWfND99CDIX2fxOpK1qJRykHGgajIUslEv+2O432RqO2MZTpkrHbWMMyN0JQp8AcnEMONvTKsMnr7JdkPwYP8vDqU9Og35oXbbQBVzFPXNg==; 5:BmuGD+ylyb7GoMCvDYXrwfixVtq4G7XhmbKpezE9Gh3TiH3kSdZ9LlZ4S8J2iJ04okYVGD6Yl/GqFU5xTHczb4d2rFrmIHUfVShjpZtSsY31Q44QR2gGvgIMWdDvEo1rgJEhAFPHGAYIDqHpDFICeuiAJHyAb0qa0W0xIB18Uq0=; 24:bR9lLvXN8VmGZ9JOfWvEmqFiIj3TY7CVBXRuDDhXmIXHhElVlEB3POPmL/X1UVS+HhAf3ndIVkMZcM+fXrrJ45rXQnxqUWJE0QL8klWnjrc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; MW2PR1501MB2011; 7:PAvW/VUeDTTCwPg5X9VImR19NahFgXtIXb0zKrxrtowPIuqAX7dlAAZWS9BzYDErLjhV0GGkrOiRJT9xqX2onmVXp+FMgEoapJP8z6tAe98KNZGZ8fU3JArDxlx/M9dB8hyURUvsTqpV2vu0n6MUeQo8CIDLiuB+hhsvEw2N5kfqweBDlOgw1cgDbTcfP7xnmBQcwp9kiueI3eUNg8FppS6j0AkJNjT+L5x8TloOIECqd6B2dr27pS5Age92EB88 X-MS-Office365-Filtering-Correlation-Id: 4a024a07-c61a-4b53-3b50-08d59fc0f1f6 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Apr 2018 15:28:58.0401 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4a024a07-c61a-4b53-3b50-08d59fc0f1f6 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW2PR1501MB2011 X-OriginatorOrg: ericsson.com X-IsSubscribed: yes Commit b2e586e ("Defer breakpoint reset when cloning progspace for fork child") fixed following fork childs when the executable is position-independent. This patch adds a little test for it. gdb/testsuite/ChangeLog: * gdb.base/pie-fork.c: New file. * gdb.base/pie-fork.exp: New file. --- gdb/testsuite/gdb.base/pie-fork.c | 34 ++++++++++++++++++ gdb/testsuite/gdb.base/pie-fork.exp | 69 +++++++++++++++++++++++++++++++++++++ 2 files changed, 103 insertions(+) create mode 100644 gdb/testsuite/gdb.base/pie-fork.c create mode 100644 gdb/testsuite/gdb.base/pie-fork.exp diff --git a/gdb/testsuite/gdb.base/pie-fork.c b/gdb/testsuite/gdb.base/pie-fork.c new file mode 100644 index 0000000..a613228 --- /dev/null +++ b/gdb/testsuite/gdb.base/pie-fork.c @@ -0,0 +1,34 @@ +/* This testcase is part of GDB, the GNU debugger. + + Copyright 2018 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +#include + +static void +break_here () +{ + int i; + for (i = 0; i < 30; i++) + sleep (1); +} + +int +main () +{ + fork (); + break_here(); + return 0; +} diff --git a/gdb/testsuite/gdb.base/pie-fork.exp b/gdb/testsuite/gdb.base/pie-fork.exp new file mode 100644 index 0000000..e58c960 --- /dev/null +++ b/gdb/testsuite/gdb.base/pie-fork.exp @@ -0,0 +1,69 @@ +# Copyright 2018 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Test that we can follow forks properly when the executable is +# position-independent. + +standard_testfile + +set opts [list debug additional_flags=-fPIE ldflags=-pie] + +if [prepare_for_testing "failed to prepare" $testfile $srcfile $opts] { + return +} + +if [use_gdb_stub] { + return +} + +proc setup_test {detach_on_fork {follow_fork_mode "parent"}} { + global binfile + + clean_restart ${binfile} + + if ![runto_main] { + fail "can't run to main" + return + } + + gdb_test_no_output "set detach-on-fork ${detach_on_fork}" + gdb_test_no_output "set follow-fork-mode ${follow_fork_mode}" + + gdb_breakpoint "break_here" +} + +proc_with_prefix test_detach_on_fork_follow_parent {} { + setup_test "on" "parent" + + gdb_test "continue" "\r\nBreakpoint 2, break_here.*" +} + +proc_with_prefix test_detach_on_fork_follow_child {} { + setup_test "on" "child" + + gdb_test "continue" "\r\nThread 2.1 .* hit Breakpoint 2, break_here.*" +} + +proc_with_prefix test_no_detach_on_fork {} { + setup_test "off" + + gdb_test "continue" "\r\nThread 1.1 .* hit Breakpoint 2, break_here.*" + gdb_test "thread 2.1" + gdb_test "continue" "\r\nThread 2.1 .* hit Breakpoint 2, break_here.*" +} + +test_detach_on_fork_follow_parent +test_detach_on_fork_follow_child +test_no_detach_on_fork