From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 67584 invoked by alias); 21 Mar 2018 19:28:05 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 67569 invoked by uid 89); 21 Mar 2018 19:28:05 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.4 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,SPF_PASS autolearn=ham version=3.3.2 spammy=Follow 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, 21 Mar 2018 19:28:03 +0000 Received: from ESESSHC011.ericsson.se (Unknown_Domain [153.88.183.51]) by sesbmg22.ericsson.net (Symantec Mail Security) with SMTP id 76.ED.02394.042B2BA5; Wed, 21 Mar 2018 20:28:00 +0100 (CET) Received: from ESESSMB501.ericsson.se (153.88.183.162) by ESESSHC011.ericsson.se (153.88.183.51) with Microsoft SMTP Server (TLS) id 14.3.382.0; Wed, 21 Mar 2018 20:27:59 +0100 Received: from ESESBMB505.ericsson.se (153.88.183.172) by ESESSMB501.ericsson.se (153.88.183.162) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1034.26; Wed, 21 Mar 2018 20:27:59 +0100 Received: from NAM03-DM3-obe.outbound.protection.outlook.com (153.88.183.157) by ESESBMB505.ericsson.se (153.88.183.172) 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, 21 Mar 2018 20:27:59 +0100 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=simon.marchi@ericsson.com; Received: from [100.94.33.64] (192.176.1.80) by BL0PR1501MB2003.namprd15.prod.outlook.com (2603:10b6:207:31::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.609.10; Wed, 21 Mar 2018 19:27:56 +0000 Subject: Re: [PATCH] Make "info proc cmdline" show args on GNU/Linux To: Andreas Arnez , References: From: Simon Marchi Message-ID: Date: Wed, 21 Mar 2018 19:28:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-ClientProxiedBy: AM5P190CA0025.EURP190.PROD.OUTLOOK.COM (2603:10a6:206:14::38) To BL0PR1501MB2003.namprd15.prod.outlook.com (2603:10b6:207:31::33) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 81cf80d0-fae1-46a7-15b3-08d58f61d9c6 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(5600026)(4604075)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020);SRVR:BL0PR1501MB2003; X-Microsoft-Exchange-Diagnostics: 1;BL0PR1501MB2003;3:iyJnUREqpbkxzS6wj8INnhW5e/Ox0wqNZVBJ9S1+dylGfXgnN2jztay+mKbkufLML+qMy6U81l7HnipeqQZUDjv7j6u6JaKd1pQR721qg2wtJLx3WN4OFC1GOfL2J9jc4X4b6+5nOeETkiZupmG4WAnCkT8RcB7Jhynmr13mHAkELNZW6/MS7+PdUDBIMiUeLCzplwPKUlAX70V6FGuhGwqo8z0TYYINurABHOnCGqc33h4jaLkmVlcM1vMDP2l4;25:kMUt0LF1tgvS1roryOahirLKACjQKPXm+vwFDzWQsOsw80z8lM1mAfK0KK8iiQu5CxXd0WEs5HNHTyPq8yiZyJeOwCv5QklZx7Zo6Eq6C290Ldf/e0iDmlP+DmL+QHoxzR6pAEeNgkSkDTmF/DT1ulTcDgKd1rSwL5URl1AdM7G+IzEiXPOzYFwczeIfqbjtKDv2FsE2z7aMTwtQFwqTfdVWba6qiG81npPplTWiFQaDyc8yRKogyrMsxkn/pqF75mTBqr+V0isFGyjVbjbe8N7/b5yyxYq8h7L5Pk/3FObYsM1Y9kDAHZu66p/2/B/WcHVrJOcCY3YkQ+pcR/y9Ug==;31:vwW1xtTlVtelLFmz2XAj7j/zlYU5c3XeTI9FUcWVeUIN6/s6BLiIPPLn3gCPGnycWnziB6bnVhoL5EAovNnoA8TOiD52Rajsbl3U8dZKIm73L0uydsHO49jF5+L45ow3wOPWt1p08txuKFhwrqd52Tuaer/W2FraWg/f0pEMmpRa+HEzoEBNzUQAltvIo8nXs7LdLJb/XiWHMXpgL/PSKk/eAa0zvQPMEh0kQ/Rt6wo= X-MS-TrafficTypeDiagnostic: BL0PR1501MB2003: X-Microsoft-Exchange-Diagnostics: 1;BL0PR1501MB2003;20:lbw6RMKwdChG8OcLW2wkZTrmYmhBrjKjND1Swc+rn1KnpixbcoJMpBEfclf/Nz56X/WGskwKZfG+d49zfVGM1yMWslcPeG5ZIFYKASgsizEvXFci1+f6vy90tJlib5POofOgp5Ne3adNIDJHnZObzY+diMeoA6/C0dFtqs3XIzz/6dWWsOOEppyTmGj3rJbfIVPulYJtaD4qYENfTpiavEQN5w+CK2gYnsFBTM+9rXKRlYrs157MRfG7Am+vaRmm2OJwMKwtOIZVynMMZlpexGSAti+6SNB4uLzFqoTK5onZhcbVSbFl5GQAU7AtWFYcM6Pyj6OolfL5aVxCZRsno6JeSigzExeVDU6XrRX+5U9VZDJybRKh0aRA9Xuz6U4+mZJyMEoABOee5l35R74MRZTq5Mcol5lUfuqX6GGa4hVvWaR72mHnQWR+qsKaQm+DDu5ZKEXlWCOvQffJCaFcYP4j7IeQ6ZNmjs65h4NM3TmHsv4TGIIb8PjScbUQlqfk;4:tDUUMeIRhnoXWnRIbALRp/qu22z6xEu5kTUEjPxRn6ZHDbE+6D9WDL4zRbS54SsBgCsfqJZXg2kUdOCLFAmOaUjYMVq4MeBMEqhejQbWxkY/088j4r8woMXYFy7/U3oCLg/rOMrSWXX7CjnsOtVhLPqLAERb9Hp7BMEvYbJ/9UOtUJtzW2SIz4uy/9j9iVNdFKlA8L+K1FL+au7j3XHav7yAaojUjB1jWHNwffs/XcVefSSej7esjpr5mIpzgcZMJu4DMvq6WY5GJIwe97PlEFF6PncgwSvlRhUFGHMJ3P5SiMXBC7EdeQrnTDXo8rqe X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(788757137089); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3002001)(10201501046)(93006095)(93001095)(3231221)(944501326)(52105095)(6041310)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123564045)(20161123558120)(6072148)(201708071742011);SRVR:BL0PR1501MB2003;BCL:0;PCL:0;RULEID:;SRVR:BL0PR1501MB2003; X-Forefront-PRVS: 0618E4E7E1 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6049001)(346002)(39860400002)(366004)(396003)(376002)(39380400002)(54534003)(199004)(189003)(377424004)(50466002)(81166006)(59450400001)(2950100002)(6666003)(97736004)(86362001)(16526019)(6246003)(7736002)(49976009)(3846002)(6116002)(6306002)(186003)(58126008)(6486002)(53546011)(446003)(229853002)(76176011)(23676004)(316002)(53936002)(52116002)(16576012)(386003)(52146003)(2486003)(26005)(966005)(8676002)(305945005)(66066001)(31696002)(106356001)(65806001)(65956001)(47776003)(36756003)(230700001)(105586002)(8936002)(81156014)(68736007)(25786009)(31686004)(64126003)(478600001)(2906002)(65826007)(5660300001)(78286006);DIR:OUT;SFP:1101;SCL:1;SRVR:BL0PR1501MB2003;H:[100.94.33.64];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; Received-SPF: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTDBQUjE1MDFNQjIwMDM7MjM6Q2JJVnFBNkxOZWZsdVZCeVVZaFFubWtt?= =?utf-8?B?WjdScm1NbHM3c0tzN3JoSlNFclJSM2d4WDZWQmh1N3FIUDRYcmdlaFhnQTlq?= =?utf-8?B?K3EyK3Axb2d2ai8wSTdKUnN6dVFOaGh0OUNZSnBSOC9FL2NxdmlRL0ZNRFJB?= =?utf-8?B?ZDR3NUNMcGxvL25RbzZqZzBXMXJPaHZaNmMwcm1qdUxxRW5ybEhoZXJFOGUw?= =?utf-8?B?aWxpbVBVcDU1MUFqTHZzY1ZwSHN3MUswYnFIemNDSkNyN3V0czlOd1RVUWU5?= =?utf-8?B?UXlBNDI3anJjemd6ekUraDMwVlBpZFNuK1ZBamR1Y040QmJ1ODhVQUdOUXh1?= =?utf-8?B?UElwTmh6QkVja0FURHlBdHVqa2pVRjZHMmEyNld0aEIwTGRkbTN1WGNHaXh4?= =?utf-8?B?U1FyTGROSzYybmFlckxCOVk2MkJaYjJ2R0FoWmFZeGlycUMyUkFJaTU3U1pj?= =?utf-8?B?V0tWbEtDNDBxWEd6R3V6d2Q2ZHNzeGNVb0JkZEYzQnJUTUhSTmNRRFh0Ykxw?= =?utf-8?B?SyszcGtPZ3E0SlhFdlR2SkFMRG9aM1JYWmVTOGxxaEZQYjcrSldZRDRIdFpE?= =?utf-8?B?TGgvc3dZQnNndEpTaS9KS055WjZ4THRLcjBLVnpSS0tqVHNlOXVXVlorL2xp?= =?utf-8?B?K0Z1L0g1ei9YcWZNQkIxMkpIaTNUazZJTG1OMmpRMVFLc09RS1RvaXR2NEZu?= =?utf-8?B?N2hOTjVrU0NnQnFPTVhPaHdQdXRJaE1IUkxHbENvaVJTUVFUWUF4UTZVS1Jk?= =?utf-8?B?V25aZGxoclZXUDIreE5iRy9yZ2JCZWM2Zk1qNCt6aDVGMGVRRmEzMlVtYjFX?= =?utf-8?B?RGo0MTBhNklyOGVGSS9jWnM3QjE0SFNuZTcwcU5pMmR1QmxYRUFEQ1BiV29s?= =?utf-8?B?MW9KQWI4ZmFJdGtuZm9zZ0ZySjdjRWRyWmtqTVBSS1lTKzJDVnJtWjhEM0tJ?= =?utf-8?B?MndYOUdtWk1DcXNZTVJHUXppbWw4cWJZNTZaUnRZTTJOYi9DcVZrOEUvajBT?= =?utf-8?B?c200OWM2RFFsMXBjOVRadURnMzROdUFUSWQ2TUtZdEdjTVloQmJVS244S1Zl?= =?utf-8?B?TmpJNVVTWnoxY2oyTkVVZ1NnZVpIYkRJcDFqOUZRS0RTemhmWTVEamhZL2xk?= =?utf-8?B?Z2wwSFVFVUU1VUtWWXVrdzlIamt4eWNoWE5QYXN5Q2swSVJXbElPU3dEOWVs?= =?utf-8?B?UWorU0RqZW42cUdobktuRHZCc2x0S2pjQ3hlcVlFbi9oODIrUGpKbUIzbDNM?= =?utf-8?B?SGV6a01pdlNuZ2xrNG5ldFhidDRKNDd3QWZEM2xIMmE2WkpTZTRNZXlCeGxl?= =?utf-8?B?L1FRV2hDbzJWaWdDY1B4SEltMlp6Vi9IOUtWMzAwYnlSaHRIa1RHNmd6TkNY?= =?utf-8?B?M3ozK05Jc0dCbHFnTFd0T0JQb1A3Z0g2TjM4SE00WFY0L09jRnNkWWJqYS9Z?= =?utf-8?B?cWlvV3ZKckE2Z1NmUWFRb2dLSHgwUHNlcUVoQ1kzTHdPRjRrNy9uN3U2OC9O?= =?utf-8?B?UkszRCttZFJleUdGUXFCVlZqQ3FTd0NVVUZYMUREMUozZFdpcDhiUGRMcG42?= =?utf-8?B?bVFxTW1hOVhVYnVLVTRuSGpkWWtVSlhhc1NLTzd3K3lyckxEZjdOOVVrckdM?= =?utf-8?B?N3A2Z09tL3l2K05SMlhadCtNMmFxRlJPZG9nZERlQzh3V0phUnd6R0tmWDFj?= =?utf-8?B?MDczUjc1WFVVam5mOHZqMm85ZzJoMXJQTGIrelA4RUF6c0tBZ2ZNODNvMGpp?= =?utf-8?B?ZVhVTlpyNEkyYnlXbUJvdmVKZUtSemdIb3dkUVljTEhkMmIvZ3V1NEVzeTdi?= =?utf-8?B?ZmJNQk5RdFJ0MzVvejBFazR5TlNOenRqY00xN0dLOVNaRGk3b3l6QjRDenNU?= =?utf-8?B?a3BvVXR0eWliVmptMjhudUl5dGNPWFZkNnpsVXJVUXp1ZVUwYXNqWTZPdVpr?= =?utf-8?Q?ikkh7sJbQyfIpm/ysNwjBnISUO8cofoE=3D?= X-Microsoft-Antispam-Message-Info: iWNki1OhveKaWcrl0cd9t8BCJbKEkaguhmBiGS4AzStS4YnO2nnRKfm3nKoDUnn+RO8gY4D+adAzbz/NNwBYk95J0X6dnO/gZkj77GrIAMYHIDbL1fpw5xSPqSelMUQTCkOoFMsHka0mfz2AuQdZyfv4u4AnL3w/ZJwJEMnQZK/KkpgmLSTznS5srhkPZb28 X-Microsoft-Exchange-Diagnostics: 1;BL0PR1501MB2003;6:s+xuI4LzTNzi1J6aawALterJbm5bbTmfH7rsvRblZx2cZKqnCFenVKHMC9+N9ID62tKRWgHUp2Ing75o1Q3nyQafEVKq7jktEF8/lLCT3PaoZ6b+kLjvNuz7WFn2XT/VsSB7lwC3eXeUZoOFpdnd0fS+2mizsxkBtwqlEjzIHUE696jpvaWCZV8sS7SuGaYP7GEAojWLhdbUtq9Er/ir+pv+N358XLz7i05IvN/1KiC+3De6AuZrBcOnf1AcA+53TFKrsLj8v6lZDOtcf+3iE9dAizt52g39oCIhGm/3MTWY7UgfUDG3hrwtKEZ82dTQJ/tI2T/gRuEuOcUOK+v5sNxQsD7Efdy8IVZc20SdV5GkjeNyuaHqwbHqtcSE0qPodz3fwkM3wUk9f5Ihzq+GIMd3kskMESikDrDYBjNJhJgj1ZyEVX8lAIY+BDCrFfbM2q4BT9K6kJl4d9CYevhW/g==;5:IoY8BDMYrDLQ8Pv9WIFVqk486ljF9umaZqesSUfI3FXtEWCMldpVRbLlGWNH9i8JpFtVUDCKrZDQDWIpUdBolyN18yReOs7xxQJu1x6Z54U9LvSuJYqC50G1CnbwW+5pncy10u2xzIb4ITXtS2E0ygM7ixo4kD97UCVd4KpdDEc=;24:RA2wrqh+G8EzR4fQavO/WkPOwle1c3j2qdmJYBIYpcpAat3ELUV639vQ69CKf/af/KIKTbfjtWBIrEoqL2dPoHQW8wmg4BuTnUnMm7+mOGg= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BL0PR1501MB2003;7:dRC9DRDPqamu7l3HonbRtpwUaiCjOwgxxKvaeucwTFjZxm+UoIoilOO2DPC0oTgNdwWT5FiY+7VNiJowgxAhHrCHLXbM8MmWdAl5llRHxMrAAiFgn0pTiZvqHwLCPKzo5wscmMhgj5v0cxH44tcqwqWWoARMWSFHDZWjb/sAgL41GHMTjoeVhn9jPRXvkGzEsUxNiiNfWZwwZmCmAvtyI56KN3FgWhJzcmIEoICKdupzyXMBxGONL0sy6UGnhXh/ X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Mar 2018 19:27:56.0717 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 81cf80d0-fae1-46a7-15b3-08d58f61d9c6 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR1501MB2003 X-OriginatorOrg: ericsson.com X-IsSubscribed: yes X-SW-Source: 2018-03/txt/msg00389.txt.bz2 On 2018-03-21 09:15 AM, Andreas Arnez wrote: > Currently "info proc cmdline" on GNU/Linux does not show the full command > line, but only argument 0. And even a warning is shown if there are more. > This was discussed in 2014 already: > > https://sourceware.org/ml/gdb-patches/2014-04/msg00212.html > > Follow the advice there and avoid target_fileio_read_stralloc. Instead, > use target_fileio_read_alloc to read the whole command line and then > replace NUL characters by spaces. Also add an appropriate test case. > Note that gdbserver already handles this correctly. Hi Andreas, This LGTM with two minor nits: > gdb/ChangeLog: > > * linux-tdep.c (linux_info_proc): For "info proc cmdline", print > command line args instead of emitting a warning. > > gdb/testsuite/ChangeLog: > > * gdb.base/info-proc.exp: Add test for "info proc cmdline". > --- > gdb/linux-tdep.c | 20 ++++++++++++++++---- > gdb/testsuite/gdb.base/info-proc.exp | 13 +++++++++++++ > 2 files changed, 29 insertions(+), 4 deletions(-) > > diff --git a/gdb/linux-tdep.c b/gdb/linux-tdep.c > index b4b87dd..0ac78c2 100644 > --- a/gdb/linux-tdep.c > +++ b/gdb/linux-tdep.c > @@ -754,10 +754,22 @@ linux_info_proc (struct gdbarch *gdbarch, const char *args, > if (cmdline_f) > { > xsnprintf (filename, sizeof filename, "/proc/%ld/cmdline", pid); > - gdb::unique_xmalloc_ptr cmdline > - = target_fileio_read_stralloc (NULL, filename); > - if (cmdline) > - printf_filtered ("cmdline = '%s'\n", cmdline.get ()); > + gdb_byte *buffer; > + ssize_t len = target_fileio_read_alloc (NULL, filename, &buffer); > + > + if (len > 0) > + { > + gdb::unique_xmalloc_ptr cmdline ((char *) buffer); > + ssize_t pos; > + > + for (pos = 0; pos < len - 1; pos++) > + { > + if (buffer[pos] == '\0') > + buffer[pos] = ' '; > + } > + buffer[len - 1] = '\0'; > + printf_filtered ("cmdline = '%s'\n", buffer); > + } > else > warning (_("unable to open /proc file '%s'"), filename); > } > diff --git a/gdb/testsuite/gdb.base/info-proc.exp b/gdb/testsuite/gdb.base/info-proc.exp > index 72355bf..eadcb15 100644 > --- a/gdb/testsuite/gdb.base/info-proc.exp > +++ b/gdb/testsuite/gdb.base/info-proc.exp > @@ -38,6 +38,16 @@ gdb_test_multiple "info proc" "info proc without a process" { > } > } > > +# Set command line arguments to be verified later with "info proc > +# cmdline". However, if we're using a stub, then "set args" would not > +# have any effect, so then just skip this. > + > +set cmdline "" > +if { ! [target_info exists use_gdb_stub] } { The use_gdb_stub proc from lib/gdb.exp should be used instead (its comment explains why). > + set cmdline "-i foo bar -o baz 1234" > + gdb_test_no_output "set args $cmdline" "set args" > +} > + > if { ! [ runto_main ] } then { > untested "could not run to main" > return -1 > @@ -50,6 +60,9 @@ gdb_test "info proc mapping" \ > "info proc mapping" > > if {[istarget "*-*-linux*"]} { > + if { $cmdline != "" } { > + gdb_test "info proc cmdline" "cmdline = \'.* $cmdline\'" The backslashes are unnecessary. Simon