From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 117346 invoked by alias); 8 Mar 2017 16:42: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 116574 invoked by uid 89); 8 Mar 2017 16:42:03 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-6.5 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_2,SPF_PASS autolearn=ham version=3.3.2 spammy=sk:mipsli, sk:mips-li, indirectly, H*RU:193.180.251.45 X-HELO: sessmg23.ericsson.net Received: from sessmg23.ericsson.net (HELO sessmg23.ericsson.net) (193.180.251.45) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 08 Mar 2017 16:42:01 +0000 Received: from ESESSHC015.ericsson.se (Unknown_Domain [153.88.183.63]) by (Symantec Mail Security) with SMTP id 3A.46.10506.75430C85; Wed, 8 Mar 2017 17:41:59 +0100 (CET) Received: from EUR03-AM5-obe.outbound.protection.outlook.com (153.88.183.145) by oa.msg.ericsson.com (153.88.183.63) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 8 Mar 2017 17:41:58 +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 elxcz23q12-y4.ca.am.ericsson.se (192.75.88.130) 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; Wed, 8 Mar 2017 16:41:55 +0000 From: Simon Marchi To: CC: Simon Marchi Subject: [PATCH 0/7] Pass ptid to target_ops register methods Date: Wed, 08 Mar 2017 16:42:00 -0000 Message-ID: <20170308164140.7281-1-simon.marchi@ericsson.com> MIME-Version: 1.0 Content-Type: text/plain X-ClientProxiedBy: MWHPR21CA0024.namprd21.prod.outlook.com (2603:10b6:300:6e::34) To DB5PR07MB1717.eurprd07.prod.outlook.com (2603:10a6:0:12::22) X-MS-Office365-Filtering-Correlation-Id: 2c58c3d7-ac8d-409c-d2ac-08d4664208a8 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:DB5PR07MB1717; X-Microsoft-Exchange-Diagnostics: 1;DB5PR07MB1717;3:lvbPL9FBj+hJ1Wiz1mC74lfXEIUvppPeDKt6HcZEUbkMp3KeWy8n9Lj0sqBTU2oLW0zXMfHwpdS6jy3EOccIo7Xt4N609XV+YAvP97TxMnIlC/W7Epk9gZqVbJKfvTq12wkNkpctkkSktjnA5pbnbsrRIaswZesqJVkUPU12Gan1JjTzZ72ZSz6WzIYi81hvhF6aoFQ+4J9h2BTz78SLIhCEnhqOKmC84S831ioPpCt+jb6rhO0mRp9sRmJslAyZM9D7pcQJiW+6EFAN7uYHRQ==;25:pnI0cH08HF7Yros/AwU0WgY4d+cCOmeqjE1ccUEBwXjcGaLhra8IWmpOLyxl69+JR4xzlKoJM7y4uBYukd8Wm9Fy6bCSHtr9khzrJEPjzF21qzAhgMJ9J+kUgZ0tMMR7iFu/FzHdjWuxpwVxF8qM9w0Q3vbsgfVMf66N4SRP6Qagj60XEpsdokQE6aPVy5nQWRBNpOaFoLUgJ3Fzw5W55ib3M3WleMS5Jo1WfFBLemmj2s+N5rhNa2m6WSBJHCqzbCU+JopdAKYXJvbR27KYyMGeFzOh/Sne6u4RFIIS3v6s2AQRxDv0eyw9QfDmjJiHdn6w9iaZgt00KeZGaZKwlLjiprArjxIbHqwIO/H/2JnN0w1C/CU9DhcjHFp2Wb0Z4JIWRQvNPpHiXk2MQBqww6gNbyTtNB6X0B23ej87FiMHSjV389fM2cu7hEtt0QQV9oRtgeuZkJhmD1r5FB2dgQ== X-Microsoft-Exchange-Diagnostics: 1;DB5PR07MB1717;31:Muj841aPF2P/5Sv4HrNMr2Nc3so4HviKydfOk7PB3ET0pfKoPWRyRL9NtlOQE17XTTFzZjOa0FuYRNaMj+BjIZ4ocqQpI9tWMk/b0scDq+Opjy8QnjO78IfbM2dOhjlKizMcOucJMZaBxArPyWvq76D5LAw5LDVV/8q2BFCkopxcEhMH28DFSdc5Gp9/WIRXaTioz/++PbqURAHGJM2Z5FuFeD8j8HqS1YH/CjIwNzM=;20:voWaAtzNCBwoNo/Bdw84O/w2We7IoZZDnZ7aV4deZmf2XosMaJOuiRv9tvc9V4TDgVYKwycKuskLJJqsOzRHYWGDCbOq/zf2z5NTVhQzyAUcNmpKPX4wrbAcGJ53IpvP8GKo/wdLckxPm1z7Eovf4RlfWDO0KFGnjN8m9D5qZuQ37nI72p3B3+j8LdgH6lng9nRozvze48su+qTqh6owMwAeb8pICLlZfBvbHhlIxNAoBZMn7vsmvbArMsQPlMI2OMcn+PZPfzV1x4oWvj5L8d/UVcTlwdR27RLaZmNLGjcRFd+MZYhSPI5AzbFggDIgH4ro838KpSnFM+Sjv+3XbexrENALyJ97Z7m1uD6H2ODOVxru0qL19/uDMZ2JT5IvO593BnnfRFrreUqdrSHeBCbTdYadWaxncEGAVRpKholVWFJlRqP1MaZ66UYHPpH8GI8ZzPuWKvhGIQKrfu8dgs2PwB3X1xABbLxZgN+Q/BTXWhmD1ug8A/BiSsYVt/SX X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6041248)(20161123558025)(20161123560025)(20161123564025)(20161123555025)(20161123562025)(6072148);SRVR:DB5PR07MB1717;BCL:0;PCL:0;RULEID:;SRVR:DB5PR07MB1717; X-Microsoft-Exchange-Diagnostics: 1;DB5PR07MB1717;4:8Q5K6t9dmowsAtNz5zf+jpdjVPQDbZ8q4mFRZhVN4uHB2xxsW5GDNBWhMp7nAwhQ5BmkVjwZxb6kTQtsxoXhUOl+XBUH79gm1uhoB+sitRMW6guETpVJJWnEqAlzSmuPLYM0Sa2F0mKXEPwukgIck2XLa5Yumv7nbMReKu4DhqY2NhauMLVXBq9jeTbPeQbG89Y78+Hc65MhCeVgPGVG5bU7nGPoNRUbusQhj4vUKcgPfpgHzUaKeE52nxyjbyAjrs2baf4+hmLA+YGMNmLo0tC1HCOxM28/R4VF7OldhavXCRAB7J1BZ6+4OD4+KR8jziScuyf/3BfZcOrkeo6nVlQixgIhedkFP3SyzkBLc6swtJxVFealv9rkAXsWnUeNVFGQIyXJeKcIy/E2bXu7esK1pI0qzzQNFnLyrV3NpvzPp4d/6ZeS5voMKgoiVFXh2410u+71MmMHDSq2/VOsIOhsXJL2/WWcgMv3bI46UzDDWNhRQzP+abUI8+biDDADfbuM5ol9bfiY3AKPcnKzjtjjTbmtYQkKF4ju/MFQk08zE7b/TjSt21DGSdDu4ii5RSse7dpGFBwxXIgTAfpp3+cPxg5iixkKGBB0HcCEb2Y= X-Forefront-PRVS: 02408926C4 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(39450400003)(6116002)(107886003)(38730400002)(53936002)(5003940100001)(110136004)(48376002)(81166006)(8676002)(189998001)(50226002)(6512007)(4326008)(3846002)(5660300001)(47776003)(50986999)(6486002)(6506006)(66066001)(6666003)(305945005)(36756003)(2351001)(2906002)(86362001)(1076002)(33646002)(50466002)(7736002)(42186005);DIR:OUT;SFP:1101;SCL:1;SRVR:DB5PR07MB1717;H:elxcz23q12-y4.ca.am.ericsson.se;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;DB5PR07MB1717;23:bKWmz/cm62P4cdcZLTg7dx2Bq9ngr4h7enHpG7DqhOPBxizcNC6gMv5UzNMl26R2BfKNTV08aqD3bjM53BOzDiX7yL5wNNDRy3m025YwjwCReIe31o0WYM9j8LotB3yVyr0/2t4IA5rtLcbQnrEOWictRo3Pep2r8fe0u0smzM+metFsDkBc36i52dMUvE1g5gRlzm/b/c2Pw6138KbIMHGgjQg3OBSSehVF82oWCc4qCbzeQ2qs8KqRouRV2vD+YdMpxlndC58rcbfjksD5tY0vA07PYsubRmZ6bMQ5GupjY71EeZtob8xBTaKIilQPYs6feWbJgS4W/0I5r/aQPdEHlwfhinyLYrWnWwIZIz85lK7py18M2W1umDabNDTrT1bXJEbFj63lF9Cxvc9guwNmjqS4+HFj02GvwO11Rfvmm9Mj0K+QGYnlBWtGk7ggpcxZKcj8O0UMc3fLoKIS2nMw7BcRSHypXnVqix2OP12bQHX7mf8g7dqMYo062YDrSeQwvpyhYZH0NVE3KEzYz+1ivkpXOpHnR6Khxup30noinQ6y2UB0+hL0+wMbNFya1h0yulTL5/wRtB/vuO26uxf2T1CZ3y+W/ZJOwD7+qoWN3c9Yidu2AJnu56/tmtMJMGrOtg8EMB8O1XJHXZd+BQg2r4QN5BQZrsJN+CG0eCmMCmGIGMtt/+o6vyfuhMUh/bEEw8wACuUOUSgs8dK1TGz4KDofJZHrDB3ZZM1SOOqr8/hX5evDlfSIwXKlNU28D3Cpu8bPynkbFVzwqYobSAHCfTHuTeDK86OzxjDsp3ishacCnOTJhHwQPG7dp4eCjsUCgyHfYVOASakxfDp8siNnARthid2mypQTRQhdAew= X-Microsoft-Exchange-Diagnostics: 1;DB5PR07MB1717;6:IHSFD6XDXxAvBUukOk+e450rt4ifygx+A5sAfY/mY/l8zge4HdhqTAUOWtSXrfPR7rr8u/JGRz9iGDMYO1LfL32c/IirtujgBh7wglh32UvIJEaSy46CG/Ed8Jser5Awr343tOTVvXQFFwIOPyW2FhpQI5OubGKCFkKez4zAVpj5+xe2bVbKbns0e2x0gEyFjC8Xo7dXaRCJ4VN829Fz4ER+srWFEEU/15GI9lGTSxJG3v4kpHftzJPa7znQMnJWg+DApomOsb3vXDIncQEyoOClUdcS+UDCSidAL7FxDyu5KGwnwGShCD83/NvFGOYN8LUC4++MmUistSigxe5rv4lWU75GnCFaon/wzGq0IP7DjRWPV1xh2DDAXXwR6z0ThCe7HDKApoOubSzSyw5qwg==;5:Q3QhM8SnnwHTxlTl2wJLhitOcr9CvAB0IuD70W5jQd6sIMHBGDxsHHgVaG9173VeagOqkFRIwOvt8r3WBQtAHqBLvGnUU/4Q1xAC1Xx1SUuCi8ovRwbwaaVcoKDswZVf5cIiFiXla+kzezxJXyZegw==;24:nj6zDGj+h1wwqs3DHjmxJA/ak5AfDK8lXpNVT7zD6ZstanlgV/vs+Yp96TNo4qCaltBJsUAVb6QpWea8543DmAbsST7yfMnOgL9tZpnePjk= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DB5PR07MB1717;7:SO1BqXeaV0vF8N+zbxhlYrThqcMqopJtlqQXUC71L13LI0EKxGCSDA40q1XQ4v0jDFuzwEfO78camm8m2zJazq/OOYWomHo3/4cdyC9p1hkTKOp/MM+7YalTCsuv4UpPk73JS5l7fbDu1s8MXXrm7eLy2/dLrPQILYk+XovWI2FbszieJadgrD4Izyutj+9vBAIB+je9h8l8PprQC3AZWczGVOocQfcrwQQSkc5gdoJoW6H7aYC743SM3276H8scB/tgmTDmBW5/I6IEQKes5M/esB7FvqpaOrPThDg1dCDkJByELrzILPyI4cx7xfYzp0Q1I+pJLFvnnQ/t6B2a6g== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Mar 2017 16:41:55.6801 (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/msg00100.txt.bz2 GDB uses global variables a lot to indirectly pass information about the debug context between functions. This patch series tries to reduce this practice a tiny bit by adding a ptid parameter to the register access methods of the target_ops interface. This removes a lot of direct references to inferior_ptid in low level code. Instead, the callers of to_fetch_registers / to_store_registers / to_prepare_to_store provide the ptid on which to operate. One of the goals is to reduce the number of times we need to save and restore inferior_ptid. It should also make it easier to track down the context of why we are reading/writing registers of a certain thread by looking at the stack. The buildbot shows good results x86 (32 and 64) and PowerPC. s390 has some regressions, but I think it's unrelated: new FAIL: gdb.python/py-mi-events.exp: verify python support new FAIL: gdb.python/py-mi-events.exp: check if python 2.4 PASS -> FAIL: gdb.threads/schedlock.exp: schedlock=off: cmd=next: call_function=0: other threads ran - unlocked I built-tested a few other platforms: - mips64el/linux - m68k/linux - powerpc/linux - powerpc/aix - arm/linux - aarch64/linux - s390x/linux - x86-64/windows (a x86_64-w64-mingw32 toolchain) Here are the platforms I didn't test at all: - anything BSD - OS X I tried to identify all the locations impacted by this change and update them accordingly, but it's almost certain that I forgot or messed up some, sorry in advance. Simon Marchi (7): windows: Don't use current_thread for register fetch/store Add overload of s390_inferior_tid with a parameter Define and use typedefs for bsd_uthread_ops fields Pass down ptid in bsd_uthread_ops layer Pass ptid to target_fetch_registers Pass ptid to target_store_registers Pass ptid to to_prepare_to_store gdb/aarch64-linux-nat.c | 36 +++++++++++------------ gdb/aix-thread.c | 22 +++++++------- gdb/alpha-bsd-nat.c | 18 +++++++----- gdb/amd64-bsd-nat.c | 24 ++++++++------- gdb/amd64-fbsd-tdep.c | 13 ++++++-- gdb/amd64-linux-nat.c | 14 +++++---- gdb/amd64-obsd-tdep.c | 13 ++++++-- gdb/arm-linux-nat.c | 70 +++++++++++++++++++++++--------------------- gdb/arm-nbsd-nat.c | 56 ++++++++++++++++++----------------- gdb/bsd-kvm.c | 3 +- gdb/bsd-uthread.c | 39 ++++++++++++------------ gdb/bsd-uthread.h | 19 +++++++----- gdb/corelow.c | 6 ++-- gdb/ctf.c | 3 +- gdb/fbsd-tdep.c | 6 +--- gdb/go32-nat.c | 6 ++-- gdb/hppa-linux-nat.c | 26 ++++++++-------- gdb/hppa-nbsd-nat.c | 18 +++++++----- gdb/hppa-obsd-nat.c | 18 +++++++----- gdb/i386-bsd-nat.c | 30 ++++++++++--------- gdb/i386-darwin-nat.c | 10 ++++--- gdb/i386-fbsd-tdep.c | 13 ++++++-- gdb/i386-gnu-nat.c | 14 +++++---- gdb/i386-linux-nat.c | 32 ++++++++++---------- gdb/i386-obsd-tdep.c | 13 ++++++-- gdb/ia64-linux-nat.c | 27 +++++++++-------- gdb/inf-child.c | 9 ++++-- gdb/inf-ptrace.c | 28 ++++++++++-------- gdb/linux-tdep.c | 4 ++- gdb/m32r-linux-nat.c | 14 +++++---- gdb/m68k-bsd-nat.c | 18 +++++++----- gdb/m68k-linux-nat.c | 45 +++++++++++++++------------- gdb/m88k-bsd-nat.c | 12 ++++---- gdb/mips-fbsd-nat.c | 18 +++++++----- gdb/mips-linux-nat.c | 45 +++++++++++++++------------- gdb/mips-nbsd-nat.c | 18 +++++++----- gdb/mips64-obsd-nat.c | 12 ++++---- gdb/nto-procfs.c | 12 ++++---- gdb/ppc-fbsd-nat.c | 18 +++++++----- gdb/ppc-linux-nat.c | 14 +++++---- gdb/ppc-nbsd-nat.c | 18 +++++++----- gdb/ppc-obsd-nat.c | 18 +++++++----- gdb/ppc-ravenscar-thread.c | 32 ++++++++++++-------- gdb/proc-service.c | 36 ++++++++--------------- gdb/procfs.c | 22 +++++++------- gdb/ravenscar-thread.c | 41 +++++++++++++------------- gdb/ravenscar-thread.h | 6 ++-- gdb/record-btrace.c | 21 +++++++------ gdb/record-full.c | 13 ++++---- gdb/regcache.c | 6 ++-- gdb/remote-sim.c | 22 +++++++++----- gdb/remote.c | 17 ++++++----- gdb/rs6000-aix-tdep.c | 3 +- gdb/rs6000-lynx178-tdep.c | 3 +- gdb/rs6000-nat.c | 66 +++++++++++++++++++++-------------------- gdb/s390-linux-nat.c | 26 +++++++++++----- gdb/sh-nbsd-nat.c | 12 ++++---- gdb/sol-thread.c | 22 +++++++------- gdb/sparc-nat.c | 14 +++++---- gdb/sparc-nat.h | 4 +-- gdb/sparc-obsd-tdep.c | 13 ++++++-- gdb/sparc-ravenscar-thread.c | 20 ++++++------- gdb/sparc64-obsd-tdep.c | 13 ++++++-- gdb/spu-linux-nat.c | 3 +- gdb/spu-multiarch.c | 14 ++++----- gdb/target-delegates.c | 40 ++++++++++++++----------- gdb/target.c | 8 ++--- gdb/target.h | 21 ++++++++----- gdb/tilegx-linux-nat.c | 14 +++++---- gdb/tracefile-tfile.c | 4 +-- gdb/vax-bsd-nat.c | 12 ++++---- gdb/windows-nat.c | 49 +++++++++++++++---------------- gdb/xtensa-linux-nat.c | 46 +++++++++++++++-------------- 73 files changed, 819 insertions(+), 656 deletions(-) -- 2.11.0