From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 83280 invoked by alias); 10 Mar 2017 15:49:25 -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 83268 invoked by uid 89); 10 Mar 2017 15:49:25 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=ham version=3.3.2 spammy=packing, shed, interchange, Stroustrups 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; Fri, 10 Mar 2017 15:49:23 +0000 Received: from ESESSHC008.ericsson.se (Unknown_Domain [153.88.183.42]) by (Symantec Mail Security) with SMTP id A1.AD.27164.10BC2C85; Fri, 10 Mar 2017 16:49:21 +0100 (CET) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (153.88.183.145) by oa.msg.ericsson.com (153.88.183.42) with Microsoft SMTP Server (TLS) id 14.3.319.2; Fri, 10 Mar 2017 16:49:00 +0100 Authentication-Results: sourceware.org; dkim=none (message not signed) header.d=none;sourceware.org; dmarc=none action=none header.from=ericsson.com; Received: from [10.0.0.109] (173.246.11.162) by DB5PR07MB1717.eurprd07.prod.outlook.com (2603:10a6:0:12::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.961.8; Fri, 10 Mar 2017 15:48:58 +0000 Subject: Re: [PATCH 1/3] inf-ptrace: Do not stop memory transfers after a single word To: Andreas Arnez References: <1488816060-20776-1-git-send-email-arnez@linux.vnet.ibm.com> <1488816060-20776-2-git-send-email-arnez@linux.vnet.ibm.com> <06e5cf43-bb8b-6fa5-7201-414dc88388a3@ericsson.com> CC: From: Simon Marchi Message-ID: <5a22f112-9443-b796-9f34-aee112b63625@ericsson.com> Date: Fri, 10 Mar 2017 15:49:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit X-ClientProxiedBy: DM5PR06CA0047.namprd06.prod.outlook.com (2603:10b6:3:5d::33) To DB5PR07MB1717.eurprd07.prod.outlook.com (2603:10a6:0:12::22) X-MS-Office365-Filtering-Correlation-Id: ccc8581c-a36b-4bc7-d15e-08d467ccf799 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:DB5PR07MB1717; X-Microsoft-Exchange-Diagnostics: 1;DB5PR07MB1717;3:DyoI91pMWVEA+Y9iAujryGWstjV/n6nsE50VxR/nrAtswzCT3VJbTAnZLhbSYOhW8qmT06S1tgP8oZe/BvmtY97F6qpgclajCl3KggQbGUHdCXlm1hktmr/tCKXf2NtT0a2h35JnfF5d8mMoMAYHnUduGoISW33mwEkBLhyDlexZUezZFzx7YjkWN1dKXvR/yMBnVU8Kc1B7D0wDxOIEJN8MS+5J7A8JUO0nEQHpPotBWF7soM/5vGg2wS356bVr0zrqV1jcdY9buZSylzKd9A==;25:vzMn5tycBWZDqODdpG4JMfRSO7zSSYJ4g9ymDuptZwqX0lt02StV/CRmDs1ikzsYyZyW/7BGMml077LeBaoLkk0EtZ9WsDews05oJRncReB0Ls1p9O5azsAapF/Km+AcYOGdzQyPL7nt4P7CN0jYhdkvfXfYKa9/ODy/1VZk2ykfVRNLJqUeTXnn4GIQV6SSm1eEzrxLNNCMForupHePokGnlVXkhQiPFnIxnKS64M0rsfWrSVqXujJhM2N6Pzcjn2HS4jAXjmGRgFtT6NGsH1Jj2j2Ivo+wyV3Jzr07UORgaC09Aw5c6fRWr/n5P9j7XGT8VD5SIf3MlsX6ad9tQkQ2pHlWnlO5xWEOGcCZ7z6Nv4fnPSFkFKLBsaI90xyuj+MsOr3rZZFx5I2YtB8/v/LFeH0M8PwvmQQkfICvMrT4jyu5snI1/yBQzH7fZoEw9cENADalgFt8+7sdpDYFdQ== X-Microsoft-Exchange-Diagnostics: 1;DB5PR07MB1717;31:BGtolyoe1C9Hv7WNHfiQhT6+R1UCNCkjI1cFYPRqgr9wiQ1bmckl2IBKbKtRKkQqPya3otTzg+TLJzyBHiOWdpvx/hMPcbhtYabhTDtLxMyA695i2Ftu4e8vhG4dauclsXl1OUB5SgCMq/eYZNoTpZSQOiNrsEbwPAIODokCL7+qWFPrMvWxIBvyyi7yNTwQnmTtm2V1ezk4WAKMUwgpb+bcICOofMPp6IxXFqYRRZvw81xEgz9EnCgyWKshnIQXjmbqr6QESjnE9RDrRgaAeB6K7iNJzNGX9ZBhfTimaWI=;20:38Ypos3p7VB+W58aWvH3d0BRTjQzPf2ANmpvV/ZOKfdbLDkXW+Z+uBtQ80rnA4uIDDDsR2cCSCrt7TJYXsWba5rgAiMm/YYEjnMPgXnCEONU8xET72ehYJA2WQvP8zQCUAuJI5WRokPPbSL35fwc4F6M9/m0Ohg1zYLkq2MbHVB2tVEC5FUHECGWj/djeeJFPwu2A+VBW/k/CJ0TvprLnf0cvz7+9A0xGwh9j7ReALJ9GqZD+KEmUkWnSnJetPEXMvKJU5BRmMOoI9RFvxngNWn2bvQa0bhvL3FnU9tjVjHU7TML0jcCZSWB05ibzEsLUqHwTjv6ljXnT/KFCsqEUwGFXbsNbzQ/llaFYCmL6S2kwZE7OEohmJEr1I6FOxdfW9mIbFFiqVT98znswSr54bZ3IgD/8v3Yj3Gly8GlAMj13w1GJUm7BAAgTTXNnXygBk/PCKz3bQHU2CkBFs5j9+YCH8N9MnWgbmTjDtKdmFuYuSdvlCGINFPrax/d9pLq X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6041248)(20161123555025)(20161123558025)(20161123562025)(20161123560025)(20161123564025)(6072148);SRVR:DB5PR07MB1717;BCL:0;PCL:0;RULEID:;SRVR:DB5PR07MB1717; X-Microsoft-Exchange-Diagnostics: 1;DB5PR07MB1717;4:EnKo501MS9SriVH8EYsICvn2U3Lcqi8NbMkPqXZ5Z5myj1Pr2iZ/77HqklHg/Pmav3wYseWYz4cBhZhfeJMbHJm636XJRTbTCD8OVVkDgVua515OvFrtrYUNeaA2+es4hZS49f59ogYeNImCOkFw/hr/qeBAYPyEDQp4xw7KKFD4GievTV3kRVwYffA7SeD/WsJ5NlQYJ9fB7pkdjydNQ37njl9iS0kUkqIM8rLf1BQ5DkN8EibVVchu8+GlPe23WO9x+lgdHu+9s6xpFJldgYDYfeAAisqkpHEEC6xln+8y05QsoerOqe1oiK+Sg4VV12aEZY6WH/l/Xp17u7fpK9KVp6nx30KJOWoQ+DazpKxVUjSz0OItAma0PbydLrG9+4vvV5ZFcmqcOlQ5EHalMFdk3OOJi3vl36hnlxSQxL3DdgBtq2Dri0Nc4ihKA4yTTunTRbOtEc7k3cvCdbL6T2Ufve1FLXrKD/1ISQMPOdEyApYJwf5OOAEHQUEzRxLjXKYtEJC+Y4sl/1mCJZfJxuIICel9cx+fADL5nNu2sZACYUF+RoM0lNSHWon9zhtcYGAs+93mJLbo7wZx5ngmMvB9qYor3X2zpTSA6Y8pJNY= X-Forefront-PRVS: 02426D11FE X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(979002)(6049001)(6009001)(39450400003)(24454002)(377454003)(377424004)(6116002)(65826007)(53936002)(38730400002)(81166006)(3846002)(5660300001)(50466002)(6666003)(110136004)(4326008)(53546006)(8676002)(2950100002)(50986999)(230700001)(966004)(6246003)(64126003)(76176999)(6306002)(93886004)(54356999)(6916009)(217423001)(4001350100001)(229853002)(31686004)(42186005)(7736002)(305945005)(2906002)(86362001)(33646002)(47776003)(23746002)(77096006)(31696002)(6486002)(65956001)(66066001)(83506001)(65806001)(189998001)(36756003)(969003)(989001)(999001)(1009001)(1019001);DIR:OUT;SFP:1101;SCL:1;SRVR:DB5PR07MB1717;H:[10.0.0.109];FPR:;SPF:None;MLV:ovrnspm;PTR:InfoNoRecords;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;DB5PR07MB1717;23:bHTDn5uZxg32gybUBz2kN/9jLY/YJvvBAVkwE?= =?Windows-1252?Q?Hd6/7SJKDjLLuwrW2Xm+peabQi8TS+9HSSss5ue5BGNJFEY3ZBkH9lXS?= =?Windows-1252?Q?F3g8dP1DVe6lF0ZraTrFOoL2XOvtU+gfa5dn3l8xIC7YAN/AgBqoVoc2?= =?Windows-1252?Q?bFYZvVQifzBYHvfOPxjOWFIIxHBVJEyx5biD2Z5gxS++PZpNWGcsgmrp?= =?Windows-1252?Q?T52g9+6VXFoLMP+naWrgofwz+csrZ6iINE6XAr0Q4VFSYMA7jhEskTar?= =?Windows-1252?Q?6DH+orO1ZdSGKNURJO302cUMadSx9PfyeSuoYr0ErkCrS/TJK7kBPLk+?= =?Windows-1252?Q?LA0Pl+JyqKm5wd7SR/MrM1085yeeeT8RgmOn7b8OURGdWafZjfHStxPG?= =?Windows-1252?Q?sbTCSb1aBeT3CRsBR+FP1GkBEEv/PVl4UC2yF2fGvtctVPIEyhambgMX?= =?Windows-1252?Q?LeHJ2+EIwctFfOM5od5qlVAHCFjzLVZbuBrytLAaECj4ZYGIT84eq7oK?= =?Windows-1252?Q?7DgbYmyIKcIDeWldRoePg6PEtfeeJTsuUXhsm22r/eku0zwYYleyBWgD?= =?Windows-1252?Q?qeosOYEr5oRG8PL0AztROYN9fu9yagd99x36jxAN8ZHlqphw5yFgI8W5?= =?Windows-1252?Q?sl1IiGF7mFElvTwCzy/S2oUP2WuBNfXUsgizN3IDkHNiUqozBviqm0DU?= =?Windows-1252?Q?fnPhIu+nilLkqQ2ZAQ8+HJHm906HbsPbiMeIDrIuvKZxjZjcZxWNAERR?= =?Windows-1252?Q?ZeUYzHh52vp6YdjF65tdbl1thREUMvWGypsGiYb0avhAFipTTDI/slIi?= =?Windows-1252?Q?7V97d+KOQyM0/ozSg/0ela/aDlsrDjVml1onA07FroHkEYzf8991hjiy?= =?Windows-1252?Q?eh9zFlYX6EqC5TuuxS5vCGsj3ZachRcQ3AxWBc0/v0cZCYa3mGMXKWOb?= =?Windows-1252?Q?f9ZfyG6P7EM+UCx1lBs1ei3aShFtQ6atmeFpCJxxuVKTTs4BISmdZ91M?= =?Windows-1252?Q?hu8Ort2i2I7JgCc+n3WghLno4NV7+Hghsi2+M1l9MZ7INqjmNeSD2my5?= =?Windows-1252?Q?2E8HmUxOHcv1nkX6UwwlknZipi9bFoAwY+gNKsuNweQG2SeqDXe3Dx6p?= =?Windows-1252?Q?whkuQRZ7WixTU07A/pCzxQSnhJKtDYn0hyI/QuV4V0eC4qXeJOUaqeGu?= =?Windows-1252?Q?VP7J+yD3EA0IYUjLdoUYavkdGyzM2RYN1Voz7Yg5hModdfZ5bUevnT46?= =?Windows-1252?Q?NgTSR7n5peUzus0+3s3rXXGLAfj0Ewbj5zTKOEAZwyCXICPF+kwT+OZP?= =?Windows-1252?Q?yo7GGGtaaJFXvSUYsy5+PZEyZKyLR4ET2c73Yso1D+/Y5FV3nUIulpgY?= =?Windows-1252?Q?T0izxfp5jCklqJ6h5G7V+UnY3k7oW27eHUMYVXrsoI1wZlbArrhTNgoS?= =?Windows-1252?Q?E/dIznhvJVCjupvjVdFn0DRiOzScJUt330uGRMWDw=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;DB5PR07MB1717;6:uQ3BMtCtQ1kJBGN+n6Rzn6yc9d9PEKs90c15bcuhx9/irWb9EvvRVO7a5Vm+HyPZgAA2vq5gmUYrzytl0Kb5PRswo8DKDVUWAFdHLDIw/bWO/O9Dgqr4fTErgduTRwA6O6bxhoOvAx9ZNmzI83I8dXt01olyur7G7hGdLK7QP2EtzTTPs/434K2vYx3q/9sVe3Ixu2hdOD3AX4g3Tr4jVWXH9AGXvdNYXTl7Kw9g1UWBbcPhYAtCQ6h4VAo2YmFxjnWi+A0Eqtq6GfTBTC3QJo9DreGxhZwxSqts9bIbMNrl24JlrswvIq6jAbISu2JGVGuVMx6zEdMIrpVGWVwMvAacvdld3trxxTd5D8wstQMFI1wK7ePWnGUQJvuLCEVxeSqJFaVa303JisvX4stCOA==;5:4cOMrJmtauIt88AFnBrg+pfnQsCD8AvW56lduiho2Ed0EJeD4dH6LIGeCxxBQMXJpZIkyjQsnBvMFdDLpHRwi6IEhepdYpAWJGeNFfjz/1ncOx/ETY/TGkq5bApbc5lmFmxOw4lrG/VNKpcaSfzkIg==;24:G+KI2RO2UAKylUASwMByv4JogSKiVs5JKVXEn6Mnxmt1rkBNcgQ9tKEgpbMyHkDj543IubxJgmgMLIroIlAnFpu/L5BIG35sbhqlO+ZQbZA= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DB5PR07MB1717;7:QdB0HWwQhUTeuFiAbXfM5LlBJ+C8pJrRRBxRYHNa6uuX2TwEQ1ax4DTLs2yvVXk3WvckAZPIfv0S8KLsgK+RNLiZMexZhWXKEAJGRs/6gvdUeWF1lD9pi2t2nBCElRwOR3Dc0tjBCqQgT/nPXojH9W0I+tI+yxFeQWjX/rs/VHEpTp271CFNnFSDzBXsCKhPMwrXhgj7bGVkiOFTi/ikbuNvbumtdtiB+6txmj+6UJegTcGh9Y+zW0250grwK8j+sWDKfQQ9ts4jQbv3R/aP1eMEs8sWvnTfd+oBEnc4NRGR0mVz6GondBEGgnhTnYqDGHrzPFZzPRVcfLVYbAllag== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2017 15:48:58.3155 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR07MB1717 X-OriginatorOrg: ericsson.com X-IsSubscribed: yes X-SW-Source: 2017-03/txt/msg00133.txt.bz2 On 17-03-09 12:22 PM, Andreas Arnez wrote: >> This is not a comment specifically about your patch, since that's how >> it was already, but maybe it would be a good time to address this. I >> understand there's some level of overlap between the read and write >> (like the offset/skip computation), but I don't think that handling >> reading and writing in the same loop is very readable. It just adds a >> bunch of branches and makes it hard to follow. If that code was split >> in two functions (one for read, one for write), it would be way more >> straightforward. > > That's probably a matter of taste. Note that we do have separate > routines in gdbserver/linux-low.c that fulfill the equivalent function: > linux_read_memory() and linux_write_memory(). IMO they have even worse > readability *plus* suffer from heavy code duplication. Maybe that's > just me, though. It's very possible, I just had this thought while reading the patch, I haven't actually tried. > Another thought that crossed my mind is whether we should extract the > whole peek/poke loop into a separate function instead of packing all the > logic under a case statement. So far I didn't, because I wanted to keep > the bug fix small. IMO it never hurt to split up big functions in smaller, more manageable parts... > (1) The GDB C/C++ coding standards provide a dubious explanation for the > "NULL Is Not Zero" rule > (https://sourceware.org/gdb/wiki/Internals%20GDB-C-Coding-Standards#NULL_Is_Not_Zero): > > "Zero constant (0) is not interchangeable with a null pointer constant > (NULL) anywhere. GCC does not give a warning for such interchange." > > To me this seems to imply that the language does not support the > interchangeability. But according to the C standard, it does: > > "An integer constant expression with the value 0, or such an > expression cast to type void *, is called a null pointer constant." > > C++ has a similar definition and specifies boolean conversion from > pointer types as well. See also Stroustrup's style FAQ "should I use > NULL or 0?": http://www.stroustrup.com/bs_faq2.html#null > > So maybe we want to support non-conforming compilers? Or is this in > fact a GDB-specific style rule? In either case we should adjust the > explanation, I think. > I don't the idea behind that rule. I thought it was just for readability, to make it clear that the variable is a pointer without having to refer to the declaration. Perhaps some older timers could shed some light on that :). Simon