From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 85763 invoked by alias); 6 Jun 2017 13:51:57 -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 82660 invoked by uid 89); 6 Jun 2017 13:51:55 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.2 required=5.0 tests=AWL,BAYES_00,KAM_LAZY_DOMAIN_SECURITY,RCVD_IN_DNSWL_NONE,T_RP_MATCHES_RCVD autolearn=no version=3.3.2 spammy=H*M:internal, Hx-spam-relays-external:sk:mailhos, H*RU:sk:mailhos, troubles X-HELO: smtprelay.synopsys.com Received: from us01smtprelay-2.synopsys.com (HELO smtprelay.synopsys.com) (198.182.47.9) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 06 Jun 2017 13:51:53 +0000 Received: from mailhost.synopsys.com (mailhost1.synopsys.com [10.12.238.239]) by smtprelay.synopsys.com (Postfix) with ESMTP id 89B1924E1F4B; Tue, 6 Jun 2017 06:51:56 -0700 (PDT) Received: from mailhost.synopsys.com (localhost [127.0.0.1]) by mailhost.synopsys.com (Postfix) with ESMTP id 70A33D0; Tue, 6 Jun 2017 06:51:56 -0700 (PDT) Received: from US01WXQAHTC1.internal.synopsys.com (us01wxqahtc1.internal.synopsys.com [10.12.238.230]) by mailhost.synopsys.com (Postfix) with ESMTP id 5A600CF; Tue, 6 Jun 2017 06:51:56 -0700 (PDT) Received: from DE02WEHTCB.internal.synopsys.com (10.225.19.94) by US01WXQAHTC1.internal.synopsys.com (10.12.238.230) with Microsoft SMTP Server (TLS) id 14.3.266.1; Tue, 6 Jun 2017 06:51:56 -0700 Received: from DE02WEMBXB.internal.synopsys.com ([fe80::95ce:118a:8321:a099]) by DE02WEHTCB.internal.synopsys.com ([::1]) with mapi id 14.03.0266.001; Tue, 6 Jun 2017 15:51:48 +0200 From: Anton Kolesov To: Simon Marchi CC: "gdb-patches@sourceware.org" , Francois Bedard Subject: RE: [PATCH] arc: Select CPU model properly before disassembling Date: Tue, 06 Jun 2017 13:51:00 -0000 Message-ID: <39A54937CC95F24AA2F794E2D2B66B135874F238@DE02WEMBXB.internal.synopsys.com> References: <20170601160213.16092-1-Anton.Kolesov@synopsys.com> <64a77ae925bca53fed60b579642f07f8@polymtl.ca> In-Reply-To: <64a77ae925bca53fed60b579642f07f8@polymtl.ca> x-dg-ref: =?us-ascii?Q?PG1ldGE+PGF0IG5tPSJib2R5LnR4dCIgcD0iYzpcdXNlcnNcYWtvbGVzb3Yu?= =?us-ascii?Q?c3lub3BzeXNcYXBwZGF0YVxyb2FtaW5nXDA5ZDg0OWI2LTMyZDMtNGE0MC04?= =?us-ascii?Q?NWVlLTZiODRiYTI5ZTM1Ylxtc2dzXG1zZy00NmMxNWU2Ni00YWJmLTExZTct?= =?us-ascii?Q?YTgwYS00ODUxYjc3ZTlhOTVcYW1lLXRlc3RcNDZjMTVlNjctNGFiZi0xMWU3?= =?us-ascii?Q?LWE4MGEtNDg1MWI3N2U5YTk1Ym9keS50eHQiIHN6PSIzMjU1IiB0PSIxMzE0?= =?us-ascii?Q?MTIzMDcwNTY3Mjg5MDMiIGg9InJGakNUNjZ4YU51UU9SY2M5RVFHRURpL1Ni?= =?us-ascii?Q?VT0iIGlkPSIiIGJsPSIwIiBibz0iMSIgY2k9ImNBQUFBRVJIVTFSU1JVRk5D?= =?us-ascii?Q?Z1VBQUJRSkFBQkhHenNKek43U0FaT3U2S2RTZ1RUZGs2N29wMUtCTk4wT0FB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFIQUFBQUNrQ0FBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFFQUFRQUJBQUFBdStNMzN3QUFBQUFBQUFBQUFBQUFBSjRB?= =?us-ascii?Q?QUFCbUFHa0FiZ0JoQUc0QVl3QmxBRjhBY0FCc0FHRUFiZ0J1QUdrQWJnQm5B?= =?us-ascii?Q?RjhBZHdCaEFIUUFaUUJ5QUcwQVlRQnlBR3NBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUVBQUFBQUFBQUFBZ0FBQUFBQW5nQUFBR1lBYndCMUFHNEFa?= =?us-ascii?Q?QUJ5QUhrQVh3QndBR0VBY2dCMEFHNEFaUUJ5QUhNQVh3Qm5BR1lBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFRQUFB?= =?us-ascii?Q?QUFBQUFBQ0FBQUFBQUNlQUFBQVpnQnZBSFVBYmdCa0FISUFlUUJmQUhBQVlR?= =?us-ascii?Q?QnlBSFFBYmdCbEFISUFjd0JmQUhNQVlRQnRBSE1BZFFCdUFHY0FYd0JqQUc4?= =?us-ascii?Q?QWJnQm1BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQUFBQUFBQUFBQUlBQUFBQUFK?= =?us-ascii?Q?NEFBQUJtQUc4QWRRQnVBR1FBY2dCNUFGOEFjQUJoQUhJQWRBQnVBR1VBY2dC?= =?us-ascii?Q?ekFGOEFjd0JoQUcwQWN3QjFBRzRBWndCZkFISUFaUUJ6QUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBRUFBQUFBQUFBQUFnQUFBQUFBbmdBQUFHWUFid0IxQUc0?= =?us-ascii?Q?QVpBQnlBSGtBWHdCd0FHRUFjZ0IwQUc0QVpRQnlBSE1BWHdCekFHMEFhUUJq?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVFB?= =?us-ascii?Q?QUFBQUFBQUFDQUFBQUFBQ2VBQUFBWmdCdkFIVUFiZ0JrQUhJQWVRQmZBSEFB?= =?us-ascii?Q?WVFCeUFIUUFiZ0JsQUhJQWN3QmZBSE1BZEFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQUFBQUFBQUFBSUFBQUFB?= =?us-ascii?Q?QUo0QUFBQm1BRzhBZFFCdUFHUUFjZ0I1QUY4QWNBQmhBSElBZEFCdUFHVUFj?= =?us-ascii?Q?Z0J6QUY4QWRBQnpBRzBBWXdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFFQUFBQUFBQUFBQWdBQUFBQUFuZ0FBQUdZQWJ3QjFB?= =?us-ascii?Q?RzRBWkFCeUFIa0FYd0J3QUdFQWNnQjBBRzRBWlFCeUFITUFYd0IxQUcwQVl3?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?UUFBQUFBQUFBQUNBQUFBQUFDZUFBQUFad0IwQUhNQVh3QndBSElBYndCa0FI?= =?us-ascii?Q?VUFZd0IwQUY4QWRBQnlBR0VBYVFCdUFHa0FiZ0JuQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFBQUFBQUFBQUFJQUFB?= =?us-ascii?Q?QUFBSjRBQUFCekFHRUFiQUJsQUhNQVh3QmhBR01BWXdCdkFIVUFiZ0IwQUY4?= =?us-ascii?Q?QWNBQnNBR0VBYmdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUVBQUFBQUFBQUFBZ0FBQUFBQW5nQUFBSE1BWVFC?= =?us-ascii?Q?c0FHVUFjd0JmQUhFQWRRQnZBSFFBWlFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFRQUFBQUFBQUFBQ0FBQUFBQUNlQUFBQWN3QnVBSEFBY3dCZkFHd0FhUUJq?= =?us-ascii?Q?QUdVQWJnQnpBR1VBWHdCaEFIVUFkQUJvQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQUFBQUFBQUFBQUlB?= =?us-ascii?Q?QUFBQUFKNEFBQUJ6QUc0QWNBQnpBRjhBYkFCcEFHTUFaUUJ1QUhNQVpRQmZB?= =?us-ascii?Q?SE1BZEFCaEFISUFkQUJmQUdRQVlRQjBBR1VBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFBQUFBQUFnQUFBQUFBbmdBQUFITUFi?= =?us-ascii?Q?Z0J3QUhNQVh3QnNBR2tBWXdCbEFHNEFjd0JsQUY4QWRBQmxBSElBYlFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQVFBQUFBQUFBQUFDQUFBQUFBQT0iLz48L21ldGE+?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-SW-Source: 2017-06/txt/msg00143.txt.bz2 Hi Simon > > > > Support for CPU in disassembler options for ARC has been added in [2]. > > > > [1] > > https://sourceware.org/git/?p=3Dbinutils-gdb.git;a=3Dcommit;h=3D39503f8= 2427e22ed8e04d986ccdc8562091ec62e > > [2] > > https://sourceware.org/git/?p=3Dbinutils-gdb.git;a=3Dcommit;h=3D1004547= 8d984f9924cb945423388ba25b7dd3ffe =20 > Hi Anton, >=20 > This is not very clear to me (I haven't really touched disassembly yet), > so let me train to summarize the situation. Let's say you feed the > right executable to GDB, but connect to a gdbserver that doesn't report > the cpu arch in the target description. arc_disassembler_options won't > be set, so we won't pass an explicit disassembler option. opcodes > internals could try to fall back on data from the BFD if > disassemble_info::section was set. However, this is only done in > arc_delayed_print_insn, which is not used in that case (it was removed > as a gdbarch callback in commit [2]). Does that sound right? Yes, your understanding is correct. For ARC this change will not be a regression, because today disassembler never selects properly between ARC EM and HS at all cases - this patch will fix some cases, but not the others, t= hat why I feel this makes sense. >=20 > Could gdb_disassembler set the section field of disassemble_info itself? > What you are doing to set the section field here is not ARC-specific, > it looks like it could potentially help other architectures to have that > field set. >=20 > Other places that use the disassembler would have to set it too, for > example in the object prepared by the arc_disassemble_info function. I think this info->section initialization code can be moved to arch-utils.c:default_print_insn, however I'm not sure if that wouldn't cause any troubles with other architectures. Doing initialization in gdb_disassem= bler constructor is complicated, because we don't really know what would be the disassembled address at this stage, hence what would be the section. Gdb_dissassembler construction can use .text section as a default, but then might now work with some multi-arch ELFs, I presume (unlikely to be a problem for ARC, though). Another option is, of course, to partially revert [2] for ARC - make arc_delayed_print_insn a printer for ARC, but change it, so it will only set info->section and then call default_print_insn. I believe that same cha= nge is needed in mep-tdep.c. At least for ARC we would need to use print_insn anyway to disassemble, because opcodes/arc-dis.c:arc_insn_decode relies on = it. > > + std::string disasm_options > > + =3D string_printf ("cpu=3D%s", tdesc_arch->printable_name); > > + arc_disassembler_options =3D xstrdup (disasm_options.c_str ()); >=20 > You could shorten this by using xstrprintf directly. Will do in v2. Anton >=20 > > + set_gdbarch_disassembler_options (gdbarch, > > + &arc_disassembler_options); > > + } > > + } > > + > > tdesc_use_registers (gdbarch, tdesc, tdesc_data); > > > > return gdbarch; >=20 > This part, which sets the disassembler options based on the target > description, looks good to me. >=20 > Simon