From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTPS id 85A7E3831380 for ; Fri, 21 Jun 2024 19:24:27 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 85A7E3831380 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 85A7E3831380 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1718997870; cv=none; b=A/r/UwhaYwpwadjhY9NFNrWOVZadMThXbEE8Ie/KJ4lpvhCcEPS6HxDpo7G4ITm4PzPwzaj7NHaSG3EyARYoagMSHgII2dsNpsO7LKDD+ekbb1GpxHWP1kCGmpd/5NO1IDvdiIWgga9n1SZpo7VrME3mjx8yBx1grgdiKWGNZZE= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1718997870; c=relaxed/simple; bh=E7qz4nVQkwv65+bhdBXgsZQtU3kzzDuuJdXuJpZ1Ytg=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From; b=b8q46/SARokYYGlZasLFWTw9OAFjEL0JJDBXwzu+oR12YZkjH2V3TWIWSKpjtATf6Dg5w4/709Uu8jBIwTUtNapqW0pjrgXds/69hYb2tJmr5B/haaBaqAcwxHg9vI6RPwzm0LSbyMt5NVO68arWqy8AFwrRnmlnrqn8hLSqh8I= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1718997867; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=pwdL1JI4FThQ8ImRyi2MPTu3gMlkhnQ8lznCWY94qnE=; b=CBfLtzBqiZktUsaaCp0Y/0COG7fQc/54Bx/SK+Lb6ZEd+QNHSawLqhmWqiAWJWy8TTzMGl BVVLFzvIAW9/EXLkycGKan+BS+hk30A1hPedEtuMBUnuqNdJn2xFj94i+akoKawYygf44O wJ7uGUOF3R4izKEcNEqgrQG91aQjEsE= Received: from mail-pg1-f197.google.com (mail-pg1-f197.google.com [209.85.215.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-270-rDLrphqGNoqmpKViyEr1AA-1; Fri, 21 Jun 2024 15:24:25 -0400 X-MC-Unique: rDLrphqGNoqmpKViyEr1AA-1 Received: by mail-pg1-f197.google.com with SMTP id 41be03b00d2f7-6c7e13b6a62so2199570a12.0 for ; Fri, 21 Jun 2024 12:24:25 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718997864; x=1719602664; h=in-reply-to:from:cc:content-language:references:to:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=pwdL1JI4FThQ8ImRyi2MPTu3gMlkhnQ8lznCWY94qnE=; b=d6b/X4P52n5MqwV6pZ9FzfSFJ8MazkWa35yGLJwIQeYXdJVkZTbXUUC3rEEUAig8lt GRs42EJPXO3DWU8Kw30HqdyYkcmKZCFNG5X5xRic3rXRrXkeK+wLKgYnPw+0MTaDEluy 5r+qbn5L5lFUTb5qCIWPh2IdMjzlTGT14H1MzLMguvp97ccObphf7xy9J82IA6ljt5jx LtUtfoUJUhyzb/rUkevqxyVhRwgB3M1UDzxmktK3PBlPCjnxUJf/pKuRUSFrw10jYkh5 CSDJuW41Q7bkHwyryLo+4mK9f28n8jtnTFMz6+nRTdO43lCFtLXzDkvdnGi4RN3Z/YTV sgew== X-Gm-Message-State: AOJu0YzwHToVcn11zk126Env2+OLYjuBHrMxn6fWsUsdJAMp+29qnkH0 g/oQ1Pi9Wkhw4Do1M6y5jorsanDJAOez6ds3sw0GTnTS9qMcp+qPNtgef2d57RfiWhj3T7vOU20 vpFdx50SQSxI5VLc3saKZCex/MB7l16N2mQnM9hXRYPsDkJJfbxMQCWvsGuYQr5yonDxfNRFMCX yiLoWxQeyHJOcMttfkyIkrqBNXM9cJLsiFGFr2yGDjeA== X-Received: by 2002:a17:903:32d2:b0:1f9:cb0c:5b8f with SMTP id d9443c01a7336-1f9cb0c5e2fmr64456795ad.10.1718997864104; Fri, 21 Jun 2024 12:24:24 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFlHDpao+eaJxYsOTtNRXGMucyn53Nb5w1M84JIHFSAMX5LrlIIlW1MfU31RQlwmoe6IS6kFA== X-Received: by 2002:a17:903:32d2:b0:1f9:cb0c:5b8f with SMTP id d9443c01a7336-1f9cb0c5e2fmr64456515ad.10.1718997863409; Fri, 21 Jun 2024 12:24:23 -0700 (PDT) Received: from ?IPV6:2804:14d:8084:92c5::1001? ([2804:14d:8084:92c5::1001]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-1f9eb3d507csm17420535ad.192.2024.06.21.12.24.21 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 21 Jun 2024 12:24:23 -0700 (PDT) Message-ID: <2fa00a6f-e62b-4df4-9dd5-5ba1a18a0c69@redhat.com> Date: Fri, 21 Jun 2024 16:24:19 -0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PING^2][PATCH v3 0/5] Modernize frame unwinders and add disable feature To: "gdb-patches@sourceware.org" References: <20240508145455.2550696-1-blarsen@redhat.com> <0078b782-2da4-4b91-8f09-03643fb0c09b@redhat.com> <664fe6bf-99e5-4d51-9964-0c57ea8a7bae@redhat.com> Cc: Guinevere Larsen From: Guinevere Larsen In-Reply-To: <664fe6bf-99e5-4d51-9964-0c57ea8a7bae@redhat.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/alternative; boundary="------------AjEq0IwynS0BvncDundb02KS" Content-Language: en-US X-Spam-Status: No, score=-3.8 required=5.0 tests=BAYES_00,BODY_8BITS,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,HTML_MESSAGE,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. --------------AjEq0IwynS0BvncDundb02KS Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Ping :) On 6/12/24 10:49 AM, Guinevere Larsen wrote: > Ping! :) > -- > Cheers, > Guinevere Larsen > She/Her/Hers > On 5/27/24 10:40 AM, Guinevere Larsen wrote: >> Now that we've branched, we should be safe to merge this change, >> so... ping 🙂 >> >> -- >> Cheers, >> Guinevere Larsen >> She/Her/Hers >> >> On 5/8/24 11:54, Guinevere Larsen wrote: >>> This patch series started with me trying to make it easier to test >>> GDB's >>> ability to unwind using CFI data, to improve a previous patch I sent to >>> the list. >>> >>> The first patch is just a minor change, storing frame unwinders in a >>> vector instead of through an unwinder table accessible using the >>> registry system. This isn't required (like I originally thought it >>> was), >>> but it does make the whole system more readable in my opinion. >>> >>> Patch 3 has the real meat of the modernization, making GDB use >>> polymorphism to handle frame unwinders. This is slightly slower than >>> using function pointers, but much more readable in my opinion. >>> >>> As for the unwinder classes, they were chosen somewhat arbitrarily, >>> mostly based on where I found an unwinder and its name. >>> >>> Despite sending it now, I don't think this patch series should be >>> merged before gdb 15 is branched. >>> >>> Changes for v3: >>> * Fixed Linaro CI issue in 32 bit arm >>> * Fixed the few comments from Eli. >>> * Documented addition of unwinder class in the oatch that adds it. >>> >>> Changes for v2: >>> * Added back the test that checks if GDB can handle a mix of CUs with >>>    and without debuginfo in a single backtrace. >>> * Fixed all the nitpicks for style. >>> * Removed FRAME_UNWIND_ prefix when talking about classes >>> * Thoroughly changed the documentation, to be more readable >>> >>> >>> Guinevere Larsen (5): >>>    gdb: make gdbarch store a vector of frame unwinders >>>    gdb: add "unwinder class" to frame unwinders >>>    gdb: Migrate frame unwinders to use C++ classes >>>    gdb: introduce ability to disable frame unwinders >>>    gdb/testsuite: Test for a backtrace through object without debuginfo >>> >>>   gdb/NEWS                                      |  11 + >>>   gdb/aarch64-tdep.c                            |  12 +- >>>   gdb/alpha-mdebug-tdep.c                       |   6 +- >>>   gdb/alpha-tdep.c                              |  12 +- >>>   gdb/amd64-obsd-tdep.c                         |   6 +- >>>   gdb/amd64-tdep.c                              |  24 +- >>>   gdb/amd64-windows-tdep.c                      |   6 +- >>>   gdb/amdgpu-tdep.c                             |   7 +- >>>   gdb/arc-tdep.c                                |  10 +- >>>   gdb/arch-utils.c                              |   8 + >>>   gdb/arm-tdep.c                                |  29 +- >>>   gdb/avr-tdep.c                                |   5 +- >>>   gdb/bfin-tdep.c                               |   6 +- >>>   gdb/bpf-tdep.c                                |   6 +- >>>   gdb/cris-tdep.c                               |  12 +- >>>   gdb/csky-tdep.c                               |  10 +- >>>   gdb/doc/gdb.texinfo                           |  26 +- >>>   gdb/dummy-frame.c                             |   8 +- >>>   gdb/dummy-frame.h                             |   2 +- >>>   gdb/dwarf2/frame-tailcall.c                   |   6 +- >>>   gdb/dwarf2/frame-tailcall.h                   |   2 +- >>>   gdb/dwarf2/frame.c                            |  16 +- >>>   gdb/frame-unwind.c                            | 335 >>> ++++++++++++++---- >>>   gdb/frame-unwind.h                            | 178 +++++++++- >>>   gdb/frame.c                                   |  28 +- >>>   gdb/frv-linux-tdep.c                          |   6 +- >>>   gdb/frv-tdep.c                                |   5 +- >>>   gdb/ft32-tdep.c                               |   6 +- >>>   gdb/gdbarch.c                                 |   3 + >>>   gdb/gdbarch.h                                 |   5 + >>>   gdb/gdbarch.py                                |   3 + >>>   gdb/h8300-tdep.c                              |   5 +- >>>   gdb/hppa-linux-tdep.c                         |   5 +- >>>   gdb/hppa-tdep.c                               |  17 +- >>>   gdb/i386-obsd-tdep.c                          |   5 +- >>>   gdb/i386-tdep.c                               |  30 +- >>>   gdb/ia64-tdep.c                               |  24 +- >>>   gdb/inline-frame.c                            |   5 +- >>>   gdb/inline-frame.h                            |   2 +- >>>   gdb/iq2000-tdep.c                             |   5 +- >>>   gdb/jit.c                                     |   6 +- >>>   gdb/lm32-tdep.c                               |   5 +- >>>   gdb/loongarch-tdep.c                          |   7 +- >>>   gdb/m32c-tdep.c                               |   5 +- >>>   gdb/m32r-linux-tdep.c                         |   5 +- >>>   gdb/m32r-tdep.c                               |   5 +- >>>   gdb/m68hc11-tdep.c                            |   5 +- >>>   gdb/m68k-linux-tdep.c                         |   6 +- >>>   gdb/m68k-tdep.c                               |   6 +- >>>   gdb/mep-tdep.c                                |   5 +- >>>   gdb/microblaze-tdep.c                         |   6 +- >>>   gdb/mips-sde-tdep.c                           |   6 +- >>>   gdb/mips-tdep.c                               |  24 +- >>>   gdb/mn10300-tdep.c                            |   5 +- >>>   gdb/moxie-tdep.c                              |   5 +- >>>   gdb/msp430-tdep.c                             |   5 +- >>>   gdb/nds32-tdep.c                              |  14 +- >>>   gdb/nios2-tdep.c                              |  12 +- >>>   gdb/or1k-tdep.c                               |   7 +- >>>   gdb/ppc-fbsd-tdep.c                           |   5 +- >>>   gdb/ppc-obsd-tdep.c                           |   5 +- >>>   gdb/python/py-unwind.c                        |  50 ++- >>>   gdb/record-btrace.c                           |  12 +- >>>   gdb/record.h                                  |   4 +- >>>   gdb/riscv-tdep.c                              |   8 +- >>>   gdb/rl78-tdep.c                               |   6 +- >>>   gdb/rs6000-aix-tdep.c                         |   5 +- >>>   gdb/rs6000-tdep.c                             |  12 +- >>>   gdb/rx-tdep.c                                 |  10 +- >>>   gdb/s12z-tdep.c                               |   7 +- >>>   gdb/s390-linux-tdep.c                         |   5 +- >>>   gdb/s390-tdep.c                               |  10 +- >>>   gdb/sentinel-frame.c                          |   8 +- >>>   gdb/sentinel-frame.h                          |   2 +- >>>   gdb/sh-tdep.c                                 |  11 +- >>>   gdb/sparc-netbsd-tdep.c                       |   6 +- >>>   gdb/sparc-obsd-tdep.c                         |   6 +- >>>   gdb/sparc-sol2-tdep.c                         |   6 +- >>>   gdb/sparc-tdep.c                              |   6 +- >>>   gdb/sparc64-fbsd-tdep.c                       |   6 +- >>>   gdb/sparc64-netbsd-tdep.c                     |   6 +- >>>   gdb/sparc64-obsd-tdep.c                       |  12 +- >>>   gdb/sparc64-sol2-tdep.c                       |   6 +- >>>   gdb/sparc64-tdep.c                            |   6 +- >>>   .../backtrace-through-cu-nodebug-caller.c     |  28 ++ >>>   .../backtrace-through-cu-nodebug-main.c       |  32 ++ >>>   .../gdb.base/backtrace-through-cu-nodebug.exp |  87 +++++ >>>   gdb/testsuite/gdb.base/frame-unwind-disable.c |  21 ++ >>>   .../gdb.base/frame-unwind-disable.exp         | 114 ++++++ >>>   gdb/tic6x-tdep.c                              |  12 +- >>>   gdb/tilegx-tdep.c                             |   5 +- >>>   gdb/tramp-frame.c                             |  58 ++- >>>   gdb/v850-tdep.c                               |   5 +- >>>   gdb/vax-tdep.c                                |   6 +- >>>   gdb/windows-tdep.c                            |  33 +- >>>   gdb/windows-tdep.h                            |  16 +- >>>   gdb/xstormy16-tdep.c                          |   5 +- >>>   gdb/xtensa-tdep.c                             |   7 +- >>>   gdb/z80-tdep.c                                |   7 +- >>>   99 files changed, 1247 insertions(+), 445 deletions(-) >>>   create mode 100644 >>> gdb/testsuite/gdb.base/backtrace-through-cu-nodebug-caller.c >>>   create mode 100644 >>> gdb/testsuite/gdb.base/backtrace-through-cu-nodebug-main.c >>>   create mode 100644 >>> gdb/testsuite/gdb.base/backtrace-through-cu-nodebug.exp >>>   create mode 100644 gdb/testsuite/gdb.base/frame-unwind-disable.c >>>   create mode 100644 gdb/testsuite/gdb.base/frame-unwind-disable.exp >>> -- Cheers, Guinevere Larsen She/Her/Hers --------------AjEq0IwynS0BvncDundb02KS--