From patchwork Wed Sep 20 07:25:23 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Marchi X-Patchwork-Id: 22968 Received: (qmail 26863 invoked by alias); 20 Sep 2017 07:25:42 -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 25232 invoked by uid 89); 20 Sep 2017 07:25:39 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.9 required=5.0 tests=BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, SPF_PASS autolearn=ham version=3.3.2 spammy=H*r:e400, HX-ClientProxiedBy:2a01, Hx-languages-length:2247, HX-ClientProxiedBy:111 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, 20 Sep 2017 07:25:38 +0000 Received: from ESESSHC001.ericsson.se (Unknown_Domain [153.88.183.21]) by sesbmg22.ericsson.net (Symantec Mail Security) with SMTP id 5F.24.28997.FE712C95; Wed, 20 Sep 2017 09:25:35 +0200 (CEST) Received: from EUR01-VE1-obe.outbound.protection.outlook.com (153.88.183.145) by oa.msg.ericsson.com (153.88.183.21) with Microsoft SMTP Server (TLS) id 14.3.352.0; Wed, 20 Sep 2017 09:25:34 +0200 Received: from elxacz23q12.localdomain (95.204.164.242) by DB4PR07MB315.eurprd07.prod.outlook.com (2a01:111:e400:982f::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.5; Wed, 20 Sep 2017 07:25:32 +0000 From: Simon Marchi To: CC: Simon Marchi Subject: [PATCH] gdbserver x86 on win32: call init_target_desc Date: Wed, 20 Sep 2017 09:25:23 +0200 Message-ID: <1505892323-14964-1-git-send-email-simon.marchi@ericsson.com> MIME-Version: 1.0 X-ClientProxiedBy: HE1PR0701CA0051.eurprd07.prod.outlook.com (2603:10a6:3:9e::19) To DB4PR07MB315.eurprd07.prod.outlook.com (2a01:111:e400:982f::23) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 46a112be-edad-41c2-1d41-08d4fff8c7de X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:DB4PR07MB315; X-Microsoft-Exchange-Diagnostics: 1; DB4PR07MB315; 3:TjTEOOQJPbIL2rTiIUqCAJiWwv+9GIffyuHE7KxQB8Hl4mrGmYd8twXQ9rdYmNOxChvtTsLVtm2AG57r5DlvKBJLfJXQW6lqwX7cpSYx4XRM724UIyD788sCOlE4c5aFkIJ8p9o902E+gEHh/cEUA0LgWz1dE2Z4lE/D6nAJZxWsCP+oA5oslyER5jzz+XTP7jjMnLzIro0aR6Sp+WkfynnzAArV2PMjwxBs888bEl54iAtQI3Z0zPTQdJ1ftIot; 25:EmnOyaJLvoL1WZxEI7tfEmpDydjcEvRSC5tg8wZqbadi8BzXPLTpCjUXIx/7SdC0apgarqD1FetEhzlgXXd1+zFEYgi+7Y9B87lELXOso8+5QGmMJ0CykEthCk+NRAjsdRC3ln3Q9ujxyeGEH4eNuIwcoAld7E+YmxClL/ssDnUGZA4N47Eabh2/snVDKF+iRrt842d2DdFsGFbEbROvpNe4JTJGSDN6ghrHbbYiB5yjtaV8pyJf55qOpb8DIT5uSBzLojZLTo7XlnXU4Wn58RjmgWI0x0gLMZsY4btiMCjg7S/uODOB6MacDW9xuqzAHoan8FLMOPBXtAsxYdKh9g==; 31:P5GLquhKl15dx28tBSTOGMNDF7ldjAbDjrkLzUFXvMGxnLGrrUSwXFaBYf8mG5E1AOgjLbnvxkTK43MNYSRBFRPINruhqyYW2msPfSjVb9PFKELqOVmCOk9mvICP5ZFmff0nSYZvvBWKB0iCzG+TUFqBbjKq+bYiQjQ6j6apEKd5VHcNAAoysuk5ZygyMmX8aTcilR3GA5ZxzmufDTAquVm/xJQHhFRjRl5rulWWxb8= X-MS-TrafficTypeDiagnostic: DB4PR07MB315: Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=simon.marchi@ericsson.com; X-Microsoft-Exchange-Diagnostics: 1; DB4PR07MB315; 20:WH+lwfZt85+gFgS97ubwfFQBAWfvYLXChE0tohv08vjBuEi2NPbvPdZmWY1Ap7+OCedk1/l32lukOAHXj0fOMvoV3TcWuY4DcUDNHJBaUxx9/jgtXrHwdAdLNC1F8EXzQa8Hi9qvfe8bLpfaPs5AYY2GE3F/vmgb3VbWnsY+KOcakCy2ALmyLo0ICKdkmnjy9oEyQToCJ8OZqB+kLYYQe6N2bI+6XgifbmWOIYo+thFecQbG5/MBmIafGOjUtuOtDhLxIbmef18KlTbx6li/V3wqzzHberNbltdjyFsI22Y7fw0pkf3zQNnVY3rHYvIMdZ52t8N2DuU21TWqxnLhuAKNvPtXP2fjqfdMzACEhYUl3rbf10RpSh1KamnJYA9Fcu9W1mlzS5yDbrn15gl4ZwUju69YEe28I3I1xB5AloqyUCB7555D6fzOlvgTZy/IGiQwXA3eeVs/cN+poRPHkDUYlBimVyZhmYlcba17hX4FtKKNGGIHfWVM32aZ49mr; 4:dO5HwU0rTIK9vjhBuLD1jre03lGddLBa8Gm+d7J/8jGWSwH1g+1MTZxBgSptmH3a/DKaDwVNIZtRem7Jj+aFC9olasVLIfs345LSGo5hispeoJZfe5REMJzpRpyDdpxKBZkSny/khctb+gd4gBStzl4cb4pM/yUTUCEuJxZLfsc100EuaoroEsg5tSvsMGpXdaDmWB2GD4jobvB8kT5PDXE6amMP6Eb+0BCKtYNeYO9GoTkUYiiCdlfLOZtOjwUg X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(10201501046)(93006095)(93001095)(100000703101)(100105400095)(3002001)(6041248)(20161123562025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123558100)(20161123560025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DB4PR07MB315; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DB4PR07MB315; X-Forefront-PRVS: 04362AC73B X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(39860400002)(346002)(376002)(189002)(199003)(54534003)(106356001)(2906002)(53936002)(50986999)(105586002)(33646002)(2361001)(6512007)(86362001)(2351001)(6486002)(107886003)(5003940100001)(4326008)(6506006)(6666003)(101416001)(6916009)(68736007)(6116002)(3846002)(25786009)(50226002)(8936002)(81156014)(81166006)(8676002)(50466002)(48376002)(305945005)(36756003)(97736004)(5660300001)(316002)(16586007)(16526017)(189998001)(7736002)(47776003)(478600001)(66066001)(460985005); DIR:OUT; SFP:1101; SCL:1; SRVR:DB4PR07MB315; H:elxacz23q12.localdomain; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DB4PR07MB315; 23:ny0g6TOwxesh6qovD+xjpM/1NJkRIoxnN0uIXaYU5j?= =?us-ascii?Q?QXoCEZ5ls9uypbrBePXtPACckkE6RLi9eB9b5PZg5OFvdPybQPW6PKrhDYBo?= =?us-ascii?Q?iuyLGEmWZSDwlJAEfRrngjudLTDDPg4++1mKq0swP6MsDUiOPvM6vKFOJpdZ?= =?us-ascii?Q?MLFYefr42VU9icCaE5rvBnaLQbXESKO8pBwYMFlbuef+eP4mtxY62War+Bk/?= =?us-ascii?Q?+HpnJLrD3GefzYgtOCtqthNvUVVRudESzmU+C6FM2nxHY3K8bd0DIrkx5eLI?= =?us-ascii?Q?iEQaTDM+tBjY2lFbzG5TqPzuWcQKNaB9SsRRtqNb1xYpSys2wFle+NHXmwNq?= =?us-ascii?Q?yZVB4pjnUQwCgeK1z3ZXuAshcoMf2+DGcRb9TSiT8pwded2wj430vVDMMzr9?= =?us-ascii?Q?KPwIpfRD1cUuU7XLlzigUxxzfeEmsh+1nPLQUQeNq8nfZCbttLCrE1o0g8qE?= =?us-ascii?Q?Xoid/KPgl4Z42h0XSdx1z5JOSpqkZd9kDy8GP16zLtAUagHaTeaM0fM8jRo9?= =?us-ascii?Q?Byi4PI3eRuMXKUTN8G+nRa6tUCFgEQilDKY4g+cb6ofDt6ke/HnJltS+ywXZ?= =?us-ascii?Q?ucY4emnNpYh1zsrxEiHidsMO//d1yg0rPi+1/Hqme4q6ldSm5c/ulCtJNMRL?= =?us-ascii?Q?b8ZIKivIKDSxYfRtl/l6mYncOjMOCQZxamQtK2w2sPklNH15XszAJyIR9gdX?= =?us-ascii?Q?5qMImddI2aq7RryLnhGIgE9Gvrw+U+sAX+z4MdouqRdpJSDjVCycqll4mfoY?= =?us-ascii?Q?mhU+d6e6L5+lM2vxbX8J7tBYdl1bP/foM1CAs9PvXHgbALKOCtWoy6/1Ux6Z?= =?us-ascii?Q?AuXfewsGZju5ppUxFe4Ng+CA2IPaYhyoMdwaQRqOQHre700WBvqcdjXRvuI7?= =?us-ascii?Q?2BhnBW73dnsuFejWKATv/awxL0ti800O10DCxStU4ZUfAGr6P3LbeZUe2aAU?= =?us-ascii?Q?unx9wNnDbkIW4X1l0Cb4J/9jsH1MPaPePIJis9x7AM4jA3scCzg8AEkY8JQ1?= =?us-ascii?Q?/fCtBZ66rdd71GI0I3LR34Em6jBSqitOxUjATrSQBwJSd265TqThNHyTOr24?= =?us-ascii?Q?aKnct7kmaQ9MVVf1uNVKDg7ODtXQ/ibUAAA+vBVhUj42FpthB2FqGGMfDXpX?= =?us-ascii?Q?yTtynmbwZbRidPRx6s0Aco9JX1GXTS?= X-Microsoft-Exchange-Diagnostics: 1; DB4PR07MB315; 6:dulv9uzT0PwLxvf8RZKprqL4XChIMo0OyY2sSznAfmTOIQoCVSOq0f3vgGxiy3DLMH6MALIwt70S4q+Gg7K6hjoMXbPjQpnB8VNon+TJ6bMqSNXflON7nuktIBPIVZXaDFzFTWBIOoQKqB7p9BO/FNGye6myYfpig7l+13V88VLxCF3XsMQEne5T6XfOvC9Bghm9VwqTylfVFEVz7KHdn49x6SJ4NQD7JNf8qsD5bMg7D7t4ZBxD4++ShHl1HQyQ8YK6JFjvSFElI97nBIwFOU/iLarEIZmBVgvZD6aHlT2wCy7VeFX6mKLeM1oL+7eLANG7RJq0hvXSqrgZBZWbDA==; 5:xyRn5eYXKhyZXmTkfQQMhTIMVrTI+Fn0aQ97PjodEu8ee2KebDlyoQlyqqpVdV2dRT0hjPbYwnckd7i4yPimdkWRDEupUuSv5E1hGOr8tQEZIjt530hYxyH6zibDEX6tO0hn8t67OGEmJzbssCSKbTdm+ixInG1tBnwqX1GrzWo=; 24:j66Jlr/DtWVV8YcsBOA26tP2+M8eCrW9Gc81aPuxZQnUwwoRgUdDOYk3IDj8NPl7ZEtGJdo9B8p0pMGtqwcdmxMxyTz5HR9FxzaaLG3tIgw=; 7:Jx/di668gk3bSKPu6O8o8zF2n7wGB33bd8jyR/gVsGZGejRJN1YEBPsGe6jWzlfHIk6wIx68W98Cr1in/GQG8tj1D0SXaF+s7PRJ7B/ThJqEQwRNSHhl+THa/smIj98R3BL/JAcOdtXegVGe8Y8VBOkWC1HIHS5BfOFjXqhu3BuuvJJxbqbw0WsUSk7tYY1eFvGW5N47b/ip4PLMvBVzLbp6hFLFrim8OooNDjJXrMI= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Sep 2017 07:25:32.6902 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR07MB315 X-OriginatorOrg: ericsson.com X-IsSubscribed: yes When trying to run gdbserver compiled for x86 win32 under wine, I get: $ wine ./gdbserver/gdbserver.exe --once :1234 ./test /home/emaisin/src/binutils-gdb/gdb/gdbserver/regcache.c:177: A problem internal to GDBserver has been detected. regcache* new_register_cache(const target_desc*): Assertion `tdesc->registers_size != 0' failed. It seems like on that platform, init_target_desc is never called, so registers_size is never computed. My first thought was to call init_target_desc somewhere in win32-low.c, but it turns out that when using win32 on arm, the target description is already initialized by the generated code. My second thought was to call it in {i386,amd64}_create_target_description, but those functions are shared with GDB, and init_target_desc is gdbserver-specific. So I ended up with the simplest fix, calling it in i386_arch_setup. Now I hit some other problem: $ wine ./gdbserver/gdbserver.exe --once :1234 ./test Killing process(es): 39 No program to debug Exiting but still, I think fixing the tdesc issue this is a step forward. gdb/gdbserver/ChangeLog: * win32-i386-low.c (i386_arch_setup): Call init_target_desc. --- gdb/gdbserver/win32-i386-low.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/gdb/gdbserver/win32-i386-low.c b/gdb/gdbserver/win32-i386-low.c index 4361d82..03d6e17 100644 --- a/gdb/gdbserver/win32-i386-low.c +++ b/gdb/gdbserver/win32-i386-low.c @@ -23,6 +23,7 @@ #include "arch/amd64.h" #endif #include "arch/i386.h" +#include "tdesc.h" #ifndef CONTEXT_EXTENDED_REGISTERS #define CONTEXT_EXTENDED_REGISTERS 0 @@ -443,12 +444,18 @@ static const unsigned char i386_win32_breakpoint = 0xcc; static void i386_arch_setup (void) { + struct target_desc *tdesc; + #ifdef __x86_64__ - win32_tdesc = amd64_create_target_description (X86_XSTATE_SSE_MASK, false, + tdesc = amd64_create_target_description (X86_XSTATE_SSE_MASK, false, false); #else - win32_tdesc = i386_create_target_description (X86_XSTATE_SSE_MASK, false); + tdesc = i386_create_target_description (X86_XSTATE_SSE_MASK, false); #endif + + init_target_desc (tdesc); + + win32_tdesc = tdesc; } struct win32_target_ops the_low_target = {