From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id i1U3CDlQ/F9gGAAAWB0awg (envelope-from ) for ; Mon, 11 Jan 2021 08:18:49 -0500 Received: by simark.ca (Postfix, from userid 112) id 15CE01EEEF; Mon, 11 Jan 2021 08:18:49 -0500 (EST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,MAILING_LIST_MULTI,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 714131E590 for ; Mon, 11 Jan 2021 08:18:47 -0500 (EST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id E25EF386486B; Mon, 11 Jan 2021 13:18:46 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E25EF386486B DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1610371126; bh=ttl80WWBo0Ti4XL7Qn6AQrcPXuaZ4vy8vQKREZV0/nY=; h=Subject:To:References:Date:In-Reply-To:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=O2Ul9RZ1kzRNFYHtNbpYwkYSX0gjDEU4USj8AK2gcrUgQ0P+omrPacRiMiVKq603q 2wGSAcE0uH+ezKUXk2I7fy+SfejKpjF/UXf9svAKWE+sygH944ZsYwLV4ZI7tTztMt PrGWwmq0dkN1LDRIPhbs+kp6/Llb8pWXKG1WgXko= Received: from mail-qv1-xf2c.google.com (mail-qv1-xf2c.google.com [IPv6:2607:f8b0:4864:20::f2c]) by sourceware.org (Postfix) with ESMTPS id 75F76386184F for ; Mon, 11 Jan 2021 13:18:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 75F76386184F Received: by mail-qv1-xf2c.google.com with SMTP id h16so7355983qvu.8 for ; Mon, 11 Jan 2021 05:18:41 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=ttl80WWBo0Ti4XL7Qn6AQrcPXuaZ4vy8vQKREZV0/nY=; b=oj9Tk6CUCk30NcW0uuNfXFtq0B9sbEA8w/J7ZsIkl9O8AXveZgFcjLiY2EhnSOkQt0 JKjolfF8iFmuOuFXoFZy3ZF1iO2p57T1mR2adGGUgU8XjEwauUe04EXmG/Yvt3FG8ASt WFWvppCLfe10uRQDJJNPDuiYprcSILIYu18L+tXaiv14aNRxHWKsskktf7e1NPgplLUa HHBe+bAMWWINf18BhEdcBZ8hOKK0/lfoxHFrYHcgl9HCXjGSMLAEoY0kmZcQw76/G0Ul yV2tPkCJYm6aIIEzwM8kC+FBJk1Qk/uI3o5QPMXfdghkN5LqtDwLtqaVs76N8GaRqER4 uEMQ== X-Gm-Message-State: AOAM53251AVkY7Ct36ofphq2buIBi46urr9wFzYH7uiDO6CNsHhgjamW DtSZqA3m2T8GCsJvc14bgqdMGc4lnirHcQ== X-Google-Smtp-Source: ABdhPJzf/mP8b5rx1R0DK2RuLiG1IBUcrOs8I2yDUx3uhXx310M7M2/RImLsFiZNgWSUB3WUv8t5XA== X-Received: by 2002:a05:6214:140d:: with SMTP id n13mr15650432qvx.45.1610371120840; Mon, 11 Jan 2021 05:18:40 -0800 (PST) Received: from ?IPv6:2804:7f0:8284:874d:20e9:a3d4:1db5:c30a? ([2804:7f0:8284:874d:20e9:a3d4:1db5:c30a]) by smtp.gmail.com with ESMTPSA id b12sm7810710qtj.12.2021.01.11.05.18.38 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 11 Jan 2021 05:18:40 -0800 (PST) Subject: Re: [PATCH 3/5] gdb: convert aarch64 to new-style debug macros To: Simon Marchi References: <20210109042816.4140840-1-simon.marchi@polymtl.ca> <20210109042816.4140840-3-simon.marchi@polymtl.ca> Message-ID: Date: Mon, 11 Jan 2021 10:18:36 -0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Luis Machado via Gdb-patches Reply-To: Luis Machado Cc: Gdb-patches Errors-To: gdb-patches-bounces@sourceware.org Sender: "Gdb-patches" Hi, On 1/9/21 1:31 AM, Simon Marchi wrote: > Hi Luis, > > Would you mind giving this patch a quick look? > > Thanks! > > Simon > > On 2021-01-08 11:28 p.m., Simon Marchi wrote: >> I haven't tried this on an actual aarch64 machine, but I am able to >> exercise it like this: >> >> (gdb) set debug aarch64 >> (gdb) maintenance selftest aa >> Running selftest aarch64-analyze-prologue. >> [aarch64] aarch64_analyze_prologue: prologue analysis gave up addr=0x14 opcode=0xf94013e0 >> Running selftest aarch64-process-record. >> Ran 2 unit tests, 0 failed >> >> gdb/ChangeLog: >> >> * arch/aarch64-insn.h (aarch64_debug_printf): New. >> * arch/aarch64-insn.c: Use aarch64_debug_printf. >> * aarch64-tdep.c: Use aarch64_debug_printf. >> >> Change-Id: Ifdb40e2816ab8e55a9aabb066d1833d9b5a46094 >> --- >> gdb/aarch64-tdep.c | 89 ++++++++++++++++------------------------- >> gdb/arch/aarch64-insn.c | 9 ++--- >> gdb/arch/aarch64-insn.h | 5 +++ >> 3 files changed, 42 insertions(+), 61 deletions(-) >> >> diff --git a/gdb/aarch64-tdep.c b/gdb/aarch64-tdep.c >> index 77e6ad700fcd..a51b3341e789 100644 >> --- a/gdb/aarch64-tdep.c >> +++ b/gdb/aarch64-tdep.c >> @@ -388,12 +388,10 @@ aarch64_analyze_prologue (struct gdbarch *gdbarch, >> regs[rd] = regs[rm]; >> else >> { >> - if (aarch64_debug) >> - { >> - debug_printf ("aarch64: prologue analysis gave up " >> - "addr=%s opcode=0x%x (orr x register)\n", >> - core_addr_to_string_nz (start), insn); >> - } >> + aarch64_debug_printf ("prologue analysis gave up " >> + "addr=%s opcode=0x%x (orr x register)", >> + core_addr_to_string_nz (start), insn); >> + >> break; >> } >> } >> @@ -513,10 +511,9 @@ aarch64_analyze_prologue (struct gdbarch *gdbarch, >> } >> else >> { >> - if (aarch64_debug) >> - debug_printf ("aarch64: prologue analysis gave up addr=%s" >> - " opcode=0x%x (iclass)\n", >> - core_addr_to_string_nz (start), insn); >> + aarch64_debug_printf ("prologue analysis gave up addr=%s" >> + " opcode=0x%x (iclass)", >> + core_addr_to_string_nz (start), insn); >> break; >> } >> >> @@ -527,12 +524,10 @@ aarch64_analyze_prologue (struct gdbarch *gdbarch, >> } >> else >> { >> - if (aarch64_debug) >> - { >> - debug_printf ("aarch64: prologue analysis gave up addr=%s" >> - " opcode=0x%x\n", >> - core_addr_to_string_nz (start), insn); >> - } >> + aarch64_debug_printf ("prologue analysis gave up addr=%s" >> + " opcode=0x%x", >> + core_addr_to_string_nz (start), insn); >> + >> break; >> } >> } >> @@ -1606,12 +1601,10 @@ pass_in_x (struct gdbarch *gdbarch, struct regcache *regcache, >> && (typecode == TYPE_CODE_STRUCT || typecode == TYPE_CODE_UNION)) >> regval <<= ((X_REGISTER_SIZE - partial_len) * TARGET_CHAR_BIT); >> >> - if (aarch64_debug) >> - { >> - debug_printf ("arg %d in %s = 0x%s\n", info->argnum, >> - gdbarch_register_name (gdbarch, regnum), >> - phex (regval, X_REGISTER_SIZE)); >> - } >> + aarch64_debug_printf ("arg %d in %s = 0x%s", info->argnum, >> + gdbarch_register_name (gdbarch, regnum), >> + phex (regval, X_REGISTER_SIZE)); >> + >> regcache_cooked_write_unsigned (regcache, regnum, regval); >> len -= partial_len; >> buf += partial_len; >> @@ -1646,11 +1639,9 @@ pass_in_v (struct gdbarch *gdbarch, >> memcpy (reg, buf, len); >> regcache->cooked_write (regnum, reg); >> >> - if (aarch64_debug) >> - { >> - debug_printf ("arg %d in %s\n", info->argnum, >> - gdbarch_register_name (gdbarch, regnum)); >> - } >> + aarch64_debug_printf ("arg %d in %s", info->argnum, >> + gdbarch_register_name (gdbarch, regnum)); >> + >> return 1; >> } >> info->nsrn = 8; >> @@ -1680,11 +1671,8 @@ pass_on_stack (struct aarch64_call_info *info, struct type *type, >> if (align > 16) >> align = 16; >> >> - if (aarch64_debug) >> - { >> - debug_printf ("arg %d len=%d @ sp + %d\n", info->argnum, len, >> - info->nsaa); >> - } >> + aarch64_debug_printf ("arg %d len=%d @ sp + %d\n", info->argnum, len, >> + info->nsaa); >> >> item.len = len; >> item.data = buf; >> @@ -1833,13 +1821,11 @@ aarch64_push_dummy_call (struct gdbarch *gdbarch, struct value *function, >> /* The struct_return pointer occupies X8. */ >> if (return_method != return_method_normal) >> { >> - if (aarch64_debug) >> - { >> - debug_printf ("struct return in %s = 0x%s\n", >> - gdbarch_register_name (gdbarch, >> - AARCH64_STRUCT_RETURN_REGNUM), >> - paddress (gdbarch, struct_addr)); >> - } >> + aarch64_debug_printf >> + ("struct return in %s = 0x%s", >> + gdbarch_register_name (gdbarch, AARCH64_STRUCT_RETURN_REGNUM), >> + paddress (gdbarch, struct_addr)); >> + Would it be possible to split this up differently, while still keeping the opening parenthesis on the same line as the call? >> regcache_cooked_write_unsigned (regcache, AARCH64_STRUCT_RETURN_REGNUM, >> struct_addr); >> } >> @@ -2246,12 +2232,10 @@ aarch64_extract_return_value (struct type *type, struct regcache *regs, >> gdb_byte buf[register_size (gdbarch, regno)]; >> gdb_assert (len <= sizeof (buf)); >> >> - if (aarch64_debug) >> - { >> - debug_printf ("read HFA or HVA return value element %d from %s\n", >> - i + 1, >> - gdbarch_register_name (gdbarch, regno)); >> - } >> + aarch64_debug_printf >> + ("read HFA or HVA return value element %d from %s", >> + i + 1, gdbarch_register_name (gdbarch, regno)); >> + Same here. Otherwise, this looks OK. Thanks for converting it. >> regs->cooked_read (regno, buf); >> >> memcpy (valbuf, buf, len); >> @@ -2358,12 +2342,9 @@ aarch64_store_return_value (struct type *type, struct regcache *regs, >> gdb_byte tmpbuf[register_size (gdbarch, regno)]; >> gdb_assert (len <= sizeof (tmpbuf)); >> >> - if (aarch64_debug) >> - { >> - debug_printf ("write HFA or HVA return value element %d to %s\n", >> - i + 1, >> - gdbarch_register_name (gdbarch, regno)); >> - } >> + aarch64_debug_printf >> + ("write HFA or HVA return value element %d to %s", >> + i + 1, gdbarch_register_name (gdbarch, regno)); >> >> memcpy (tmpbuf, valbuf, >> len > V_REGISTER_SIZE ? V_REGISTER_SIZE : len); >> @@ -2438,8 +2419,7 @@ aarch64_return_value (struct gdbarch *gdbarch, struct value *func_value, >> { >> if (aarch64_return_in_memory (gdbarch, valtype)) >> { >> - if (aarch64_debug) >> - debug_printf ("return value in memory\n"); >> + aarch64_debug_printf ("return value in memory"); >> return RETURN_VALUE_STRUCT_CONVENTION; >> } >> } >> @@ -2450,8 +2430,7 @@ aarch64_return_value (struct gdbarch *gdbarch, struct value *func_value, >> if (readbuf) >> aarch64_extract_return_value (valtype, regcache, readbuf); >> >> - if (aarch64_debug) >> - debug_printf ("return value in registers\n"); >> + aarch64_debug_printf ("return value in registers"); >> >> return RETURN_VALUE_REGISTER_CONVENTION; >> } >> diff --git a/gdb/arch/aarch64-insn.c b/gdb/arch/aarch64-insn.c >> index 125288909137..6a5abf729bb2 100644 >> --- a/gdb/arch/aarch64-insn.c >> +++ b/gdb/arch/aarch64-insn.c >> @@ -69,12 +69,9 @@ aarch64_decode_adr (CORE_ADDR addr, uint32_t insn, int *is_adrp, >> else >> *offset = (immhi | immlo); >> >> - if (aarch64_debug) >> - { >> - debug_printf ("decode: 0x%s 0x%x %s x%u, #?\n", >> - core_addr_to_string_nz (addr), insn, >> - *is_adrp ? "adrp" : "adr", *rd); >> - } >> + aarch64_debug_printf ("decode: 0x%s 0x%x %s x%u, #?", >> + core_addr_to_string_nz (addr), insn, >> + *is_adrp ? "adrp" : "adr", *rd); >> return 1; >> } >> return 0; >> diff --git a/gdb/arch/aarch64-insn.h b/gdb/arch/aarch64-insn.h >> index 57aeb23feab1..1e8c5eac940e 100644 >> --- a/gdb/arch/aarch64-insn.h >> +++ b/gdb/arch/aarch64-insn.h >> @@ -21,6 +21,11 @@ >> >> extern bool aarch64_debug; >> >> +/* Print an "aarch64" debug statement. */ >> + >> +#define aarch64_debug_printf(fmt, ...) \ >> + debug_prefixed_printf_cond (aarch64_debug, "aarch64", fmt, ##__VA_ARGS__) >> + >> /* Support routines for instruction parsing. */ >> >> /* Create a mask of X bits. */ >>