From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.50]) by sourceware.org (Postfix) with ESMTPS id EE2BC3858D3C for ; Mon, 16 May 2022 18:40:59 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org EE2BC3858D3C Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=palves.net Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-wm1-f50.google.com with SMTP id p189so9229839wmp.3 for ; Mon, 16 May 2022 11:40:59 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=XAMMbN7vy8Fxm/Kf5eD7VXo9P7W2mZ8+A1G+76w3v0I=; b=cdSZbiRq9s3n6s1kDsOcbe5phI872weASJh7zuPngN5jQqXicEZewikJsF5mqB17MD WYwLxbnDcngwChm1d6Y1znE1ndXZ/UQDguy+vQjvSJSq8hj66lG7arVK662ZzGgPn+fM fUF7LFtbF67XdzDgVcdY2xq8+C9kXGplG40pb7yuFFxMieJDfhKELJDQVh7zVOlKIKEc pmRTlUXzAeUUU+59LAZd0nuO3Q3+a646XGxyn9E9a3Y0+LvMBd2EzOUWhBQoVwOuN8x2 RpP3y9D26Uxkrx2MoYDwd8EWYckixoklPkPVnYiy8uKsJbQr1DE8ZNWWpAK739fn0AeH hfFw== X-Gm-Message-State: AOAM531lsUWcd+jMmZNzZL4KwG0sfTy/BEepcAgitpz9P9D7hNM6nGn4 ACXA6MEj0k2nMqZAjf58PRb2CkO5hJw= X-Google-Smtp-Source: ABdhPJwJhwm9Jjn97vGbIT1kBkFOmkH2iLsQFN6Vb1/geBET7PuIPsNpo6MLT++iVtsb94tx1Ij7ug== X-Received: by 2002:a05:600c:1547:b0:394:882a:3b5 with SMTP id f7-20020a05600c154700b00394882a03b5mr18208934wmg.97.1652726458436; Mon, 16 May 2022 11:40:58 -0700 (PDT) Received: from localhost ([2001:8a0:f924:2600:209d:85e2:409e:8726]) by smtp.gmail.com with ESMTPSA id x7-20020a05600c420700b003947e11c3ecsm43435wmh.17.2022.05.16.11.40.57 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 16 May 2022 11:40:57 -0700 (PDT) From: Pedro Alves To: gdb-patches@sourceware.org Subject: [PATCH 12/23] Refactor set_internal_breakpoint / internal_breakpoint ctor Date: Mon, 16 May 2022 19:40:19 +0100 Message-Id: <20220516184030.665489-13-pedro@palves.net> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220516184030.665489-1-pedro@palves.net> References: <20220516184030.665489-1-pedro@palves.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00, FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, KAM_DMARC_STATUS, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_PASS, 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 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: , X-List-Received-Date: Mon, 16 May 2022 18:41:01 -0000 This moves initialization of internal_breakpoint's breakpoint fields to internal_breakpoint's ctor, and stops using new_breakpoint_from_type for internal_breakpoint breakpoints. Change-Id: I898ed0565f47cb00e4429f1c6446e6f9a385a78d --- gdb/breakpoint.c | 37 ++++++++++++++++++------------------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c index 3773f317bfe..1659d2b9737 100644 --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c @@ -119,6 +119,8 @@ static struct breakpoint *set_raw_breakpoint (struct gdbarch *gdbarch, struct symtab_and_line, enum bptype); +static breakpoint *add_to_breakpoint_chain (std::unique_ptr &&b); + static struct breakpoint * momentary_breakpoint_from_master (struct breakpoint *orig, enum bptype type, @@ -276,7 +278,19 @@ struct ordinary_breakpoint : public base_breakpoint /* Internal breakpoints. */ struct internal_breakpoint : public base_breakpoint { - using base_breakpoint::base_breakpoint; + internal_breakpoint (struct gdbarch *gdbarch, + enum bptype type, CORE_ADDR address) + : base_breakpoint (gdbarch, type) + { + symtab_and_line sal; + sal.pc = address; + sal.section = find_pc_overlay (sal.pc); + sal.pspace = current_program_space; + add_location (sal); + + pspace = current_program_space; + disposition = disp_donttouch; + } void re_set () override; void check_status (struct bpstat *bs) override; @@ -1285,17 +1299,6 @@ new_breakpoint_from_type (struct gdbarch *gdbarch, bptype type, std::forward (args)...); break; - case bp_overlay_event: - case bp_longjmp_master: - case bp_std_terminate_master: - case bp_exception_master: - case bp_thread_event: - case bp_jit_event: - case bp_shlib_event: - b = new internal_breakpoint (gdbarch, type, - std::forward (args)...); - break; - case bp_longjmp: case bp_exception: b = new longjmp_breakpoint (gdbarch, type, @@ -3294,16 +3297,12 @@ static struct breakpoint * create_internal_breakpoint (struct gdbarch *gdbarch, CORE_ADDR address, enum bptype type) { - symtab_and_line sal; - sal.pc = address; - sal.section = find_pc_overlay (sal.pc); - sal.pspace = current_program_space; + std::unique_ptr b + (new internal_breakpoint (gdbarch, type, address)); - breakpoint *b = set_raw_breakpoint (gdbarch, sal, type); b->number = internal_breakpoint_number--; - b->disposition = disp_donttouch; - return b; + return add_to_breakpoint_chain (std::move (b)); } static const char *const longjmp_names[] = -- 2.36.0