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 C18683882049 for ; Wed, 12 Jun 2024 13:49:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C18683882049 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 C18683882049 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=1718200181; cv=none; b=nvfm8ONt+PF+RMYTnI2u4+xNcIhXO+C2+eIDy/krIQ7l/ndqUvCEa+jcJ0A3LYPE4YmlexBIbGXP0TmZUZu+ju/7Y6/4envkcmj24bAChEXH0IDhfjQh7cYaojuzGVSi19J5Wt1EV8MyTTScyqnKUdzE2PtOmgeBB0ZHYJ35X6c= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1718200181; c=relaxed/simple; bh=A0GyPICQZNwIsv4LT2rN5JTtfYIja/PI0Eo+uVUe6ns=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From; b=dRRNdgA3DyxRFhB4mzMzpQT+HAgn0vH6iL6pCI6PIDEYt1l8cHbrL6lbeU/6nvMHWBnhVE/HykXlylHGON/jJAt7fPDsCn6OV1QlyrHuawfqIa+HvVd+juGntTNQrDXMdw2+aMdqKVTA5DXqmFRe3dlovF3kFPMXnPCEao0RapA= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1718200178; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=6aoHtd6lPQcfr7zFCBvOh4TZvaDRomB5C2PdG6aTUAc=; b=EnluyRT/ALkY4AyL7HPv6i1Ytw58Pqw4o4fOgQcHRp+dxsPRGsfxxhKE24N9OvlYeDSALf FpUb4fM3QNy7aLgQ92AWS6/31sM4RK2gCwrNSmKR4UOFuxou3dgLZKxJrPVpt8kTSKwdxF YrqdBJnVXrvzk+uLZlf3xFaMc06JJww= Received: from mail-pj1-f70.google.com (mail-pj1-f70.google.com [209.85.216.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-108-3r_HSZXzNbGnZ5O-pWNcVg-1; Wed, 12 Jun 2024 09:49:36 -0400 X-MC-Unique: 3r_HSZXzNbGnZ5O-pWNcVg-1 Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-2c2e7719d30so3936418a91.0 for ; Wed, 12 Jun 2024 06:49:35 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718200174; x=1718804974; h=in-reply-to:from: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=6aoHtd6lPQcfr7zFCBvOh4TZvaDRomB5C2PdG6aTUAc=; b=xO2x3w6TKBN1SWoXlwEUmJYrgOBtIjAnnxGm9Va2yHKdcW2wKDbtrw0gxqpPYPFM8T gbfS3m/MSS1jv7fkdHCCy4WM3AChEf2rHMA4gmSJATP8xiSU1ChqI5nDEDE4PEX1jzYr U1mDrbdL0icXlOZLCplN898eT03JIT+c63ZXV2Qkjbk1p/py+LJ7KKhsR7fv/9nmiiS/ bpT3cHjx5Ga8Pqz3/mubkOWyoBuA6CKo0BenXPlUtOGfGFP2/9uZYRRsgofGr4m+AnQM YohfPB5eoYOSsCbh8n9IVEyeMvvskV3WTyAFH9Iqe4vBp04PVXUnjAFFcbhu6U11zz5R ajpg== X-Forwarded-Encrypted: i=1; AJvYcCVDAa/NBSC4tSyX75Kg56qB0gQKwRjQUDqJVmMvD21ErWMogkbjKbkkp0eZlyoTmt8p7jrH+xVnENhWTqM0NWDg2pSmMFoR3WNUfQ== X-Gm-Message-State: AOJu0YyQ0fzDxmis+nqzr3WCrkE5ZnIr/+hrEiTycNxwTOHRlAsj3t6U lFzOBMRfB/kgaCQ4p5vY1ITc1tb6hWj2fftVLmYAdydb7jzdXvHtCDBfXtRH6Wl6JZFcaB3VyaC TCP64vDy19Okuztw16DPN/rhcsO+7LiUgWHXlmAy1HfRfZXJduJ1dxFz30mitVIWY5Vc= X-Received: by 2002:a17:90b:17ce:b0:2c4:aa69:c4bc with SMTP id 98e67ed59e1d1-2c4aa69c57bmr1572530a91.19.1718200174072; Wed, 12 Jun 2024 06:49:34 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGAJ2YYj4lasplK9ceg6mLPRtpZlriWuvZtESfUWP6g8URjrSuFsU6kWVpdBSdjLbUTW0/VZQ== X-Received: by 2002:a17:90b:17ce:b0:2c4:aa69:c4bc with SMTP id 98e67ed59e1d1-2c4aa69c57bmr1572505a91.19.1718200173429; Wed, 12 Jun 2024 06:49:33 -0700 (PDT) Received: from ?IPV6:2804:14d:8084:92c5::1000? ([2804:14d:8084:92c5::1000]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-2c4a75d1d40sm1754504a91.9.2024.06.12.06.49.31 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 12 Jun 2024 06:49:33 -0700 (PDT) Message-ID: <664fe6bf-99e5-4d51-9964-0c57ea8a7bae@redhat.com> Date: Wed, 12 Jun 2024 10:49:29 -0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PING^2][PATCH v3 0/5] Modernize frame unwinders and add disable feature To: Guinevere Larsen , "gdb-patches@sourceware.org" References: <20240508145455.2550696-1-blarsen@redhat.com> <0078b782-2da4-4b91-8f09-03643fb0c09b@redhat.com> From: Guinevere Larsen In-Reply-To: <0078b782-2da4-4b91-8f09-03643fb0c09b@redhat.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/alternative; boundary="------------sowJG1vkd5xa4TzoIMQBJiRQ" Content-Language: en-US X-Spam-Status: No, score=-4.0 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,T_SCC_BODY_TEXT_LINE 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. --------------sowJG1vkd5xa4TzoIMQBJiRQ Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit 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 >> --------------sowJG1vkd5xa4TzoIMQBJiRQ--