From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qk1-x736.google.com (mail-qk1-x736.google.com [IPv6:2607:f8b0:4864:20::736]) by sourceware.org (Postfix) with ESMTPS id 59CFC3854830 for ; Tue, 25 May 2021 13:07:06 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 59CFC3854830 Received: by mail-qk1-x736.google.com with SMTP id 82so18887583qki.8 for ; Tue, 25 May 2021 06:07:06 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=HoCvoMjjuStaPRiDJw7TycQIEdaJIvFvaFb1CA0i/T8=; b=iRbAV6UnJpsp9RCd/hZdjFdCCQk0lsv6xeWgjIpgRhxmgl9m5mDDYwtT3D/uDlvqgp m42ZkBzWP9VkaGOIRYP758aggsTwEmSJCBHW2RjmmsAkT/JpH3VPx2+EpbwDy+kMptkF ThaZDiQ6bsDz/2J7Ep9R3tLrP5r3pavcRk+Qexya9aQ3Iak79Gro7jRHv5Uo7/NCyGwo ltGS4iYZQtjsEzpcneAurH6nrWRjSqc/bStha4SNrK3mxtM6AhexANE4Tsf9kEYkVCTf ko+I6VDeHXfV95pStzMEnF+XiWv5L+er/RDD9G5nxk3O2UJDMBM23Q6xzeKNTLvBOoPv KSCQ== X-Gm-Message-State: AOAM530hpS+kpEyZFGVEqfx26HJBv2ht/0nDrjxE0vbaVZFoww8IGyr6 /sRKPdEnKSnbQPmll3QoZyI5B9dXEAPjxcgqJsqblMhKXvA= X-Google-Smtp-Source: ABdhPJzApmG5w409ks+KOXwcLBgwfRqO92faWCOcHeiPfIGgC+CRmFR/h9hXicOe3QsUC8vE9d3iQ/TH+HaWK29hr0Q= X-Received: by 2002:a05:620a:787:: with SMTP id 7mr9000740qka.397.1621948025404; Tue, 25 May 2021 06:07:05 -0700 (PDT) MIME-Version: 1.0 References: <20210412140128.296921-1-sroettger@google.com> In-Reply-To: <20210412140128.296921-1-sroettger@google.com> From: =?UTF-8?Q?Stephen_R=C3=B6ttger?= Date: Tue, 25 May 2021 15:06:53 +0200 Message-ID: Subject: Re: [PING] [PATCH] Update btrace data in maintenance btrace commands To: gdb-patches@sourceware.org Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="000000000000ecad4805c3273378" X-Spam-Status: No, score=-27.1 required=5.0 tests=BAYES_00, DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, ENV_AND_HDR_SPF_MATCH, GIT_PATCH_0, HTML_MESSAGE, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, USER_IN_DEF_DKIM_WL, USER_IN_DEF_SPF_WL autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-Content-Filtered-By: Mailman/MimeDel 2.1.29 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: Tue, 25 May 2021 13:07:08 -0000 --000000000000ecad4805c3273378 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, Apr 12, 2021 at 4:01 PM Stephen R=C3=B6ttger wrote: > From: Stephen Roettger > > When calling `maintenance btrace packet-history` or `maintenance info > btrace`, > the commands wouldn't show any data unless it was updated previously by > some > other means, for example by running `info record`. > To fix this, use the require_btrace function from record-brace.h which > will update the data before returning the btrace_thread_info pointer. > > Here's an example of the issue: > ``` > $ gdb -nx /usr/bin/ls > (gdb) break malloc > Breakpoint 1 at 0x46c8 > (gdb) run > Starting program: /usr/bin/ls > > Breakpoint 1, 0x00007ffff7fec240 in malloc () from > /lib64/ld-linux-x86-64.so.2 > (gdb) record btrace bts > (gdb) c > Continuing. > > Breakpoint 1, 0x00007ffff7fec240 in malloc () from > /lib64/ld-linux-x86-64.so.2 > (gdb) maintenance btrace packet-history > No trace. > (gdb) maintenance info btrace > Format: Branch Trace Store. > Aborted > ``` > > gdb/ChangeLog: > > * btrace.c (maint_btrace_packet_history_cmd): use require_btrace > (maint_info_btrace_cmd): use require_btrace > * record-btrace.c (struct btrace_thread_info): mark non-static > * record-btrace.h (require_btrace): export function > > --- > gdb/btrace.c | 13 ++----------- > gdb/record-btrace.c | 2 +- > gdb/record-btrace.h | 7 +++++++ > 3 files changed, 10 insertions(+), 12 deletions(-) > > diff --git a/gdb/btrace.c b/gdb/btrace.c > index c697f37f46c..177e818f0cf 100644 > --- a/gdb/btrace.c > +++ b/gdb/btrace.c > @@ -3231,12 +3231,8 @@ maint_btrace_packet_history_cmd (const char *arg, > int from_tty) > struct btrace_thread_info *btinfo; > unsigned int size, begin, end, from, to; > > - thread_info *tp =3D find_thread_ptid (current_inferior (), inferior_pt= id); > - if (tp =3D=3D NULL) > - error (_("No thread.")); > - > + btinfo =3D require_btrace (); > size =3D 10; > - btinfo =3D &tp->btrace; > > btrace_maint_update_packets (btinfo, &begin, &end, &from, &to); > if (begin =3D=3D end) > @@ -3372,12 +3368,7 @@ maint_info_btrace_cmd (const char *args, int > from_tty) > if (args !=3D NULL && *args !=3D 0) > error (_("Invalid argument.")); > > - if (inferior_ptid =3D=3D null_ptid) > - error (_("No thread.")); > - > - thread_info *tp =3D inferior_thread (); > - > - btinfo =3D &tp->btrace; > + btinfo =3D require_btrace (); > > conf =3D btrace_conf (btinfo); > if (conf =3D=3D NULL) > diff --git a/gdb/record-btrace.c b/gdb/record-btrace.c > index b7b3c91f85d..79a6e47a4a6 100644 > --- a/gdb/record-btrace.c > +++ b/gdb/record-btrace.c > @@ -269,7 +269,7 @@ require_btrace_thread (void) > Throws an error if there is no thread or no trace. This function nev= er > returns NULL. */ > > -static struct btrace_thread_info * > +struct btrace_thread_info * > require_btrace (void) > { > struct thread_info *tp; > diff --git a/gdb/record-btrace.h b/gdb/record-btrace.h > index 8e7bbd90e60..b56e720e5a5 100644 > --- a/gdb/record-btrace.h > +++ b/gdb/record-btrace.h > @@ -29,4 +29,11 @@ extern void record_btrace_push_target (void); > NULL if the cpu was configured as auto. */ > extern const struct btrace_cpu *record_btrace_get_cpu (void); > > +/* Update the branch trace for the current thread and return a pointer t= o > its > + branch trace information struct. > + > + Throws an error if there is no thread or no trace. This function nev= er > + returns NULL. */ > +extern struct btrace_thread_info * require_btrace (void); > + > #endif /* RECORD_BTRACE_H */ > -- > 2.31.1.295.g9ea45b61b8-goog > > --000000000000ecad4805c3273378 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature MIIPngYJKoZIhvcNAQcCoIIPjzCCD4sCAQExDzANBglghkgBZQMEAgEFADALBgkqhkiG9w0BBwGg ggz4MIIEtjCCA56gAwIBAgIQeAMYYHb81ngUVR0WyMTzqzANBgkqhkiG9w0BAQsFADBMMSAwHgYD VQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UE AxMKR2xvYmFsU2lnbjAeFw0yMDA3MjgwMDAwMDBaFw0yOTAzMTgwMDAwMDBaMFQxCzAJBgNVBAYT AkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMSowKAYDVQQDEyFHbG9iYWxTaWduIEF0bGFz IFIzIFNNSU1FIENBIDIwMjAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvLe9xPU9W dpiHLAvX7kFnaFZPuJLey7LYaMO8P/xSngB9IN73mVc7YiLov12Fekdtn5kL8PjmDBEvTYmWsuQS 6VBo3vdlqqXZ0M9eMkjcKqijrmDRleudEoPDzTumwQ18VB/3I+vbN039HIaRQ5x+NHGiPHVfk6Rx c6KAbYceyeqqfuJEcq23vhTdium/Bf5hHqYUhuJwnBQ+dAUcFndUKMJrth6lHeoifkbw2bv81zxJ I9cvIy516+oUekqiSFGfzAqByv41OrgLV4fLGCDH3yRh1tj7EtV3l2TngqtrDLUs5R+sWIItPa/4 AJXB1Q3nGNl2tNjVpcSn0uJ7aFPbAgMBAAGjggGKMIIBhjAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0l BBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFHzM CmjXouseLHIb0c1dlW+N+/JjMB8GA1UdIwQYMBaAFI/wS3+oLkUkrk1Q+mOai97i3Ru8MHsGCCsG AQUFBwEBBG8wbTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3AyLmdsb2JhbHNpZ24uY29tL3Jvb3Ry MzA7BggrBgEFBQcwAoYvaHR0cDovL3NlY3VyZS5nbG9iYWxzaWduLmNvbS9jYWNlcnQvcm9vdC1y My5jcnQwNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9iYWxzaWduLmNvbS9yb290LXIz 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 nbi51nPjAE5JAKdQp7AOJO8wTAYDVR0gBEUwQzBBBgkrBgEEAaAyASgwNDAyBggrBgEFBQcCARYm aHR0cHM6Ly93d3cuZ2xvYmFsc2lnbi5jb20vcmVwb3NpdG9yeS8wCQYDVR0TBAIwADCBmgYIKwYB BQUHAQEEgY0wgYowPgYIKwYBBQUHMAGGMmh0dHA6Ly9vY3NwLmdsb2JhbHNpZ24uY29tL2NhL2dz YXRsYXNyM3NtaW1lY2EyMDIwMEgGCCsGAQUFBzAChjxodHRwOi8vc2VjdXJlLmdsb2JhbHNpZ24u Y29tL2NhY2VydC9nc2F0bGFzcjNzbWltZWNhMjAyMC5jcnQwHwYDVR0jBBgwFoAUfMwKaNei6x4s chvRzV2Vb4378mMwRgYDVR0fBD8wPTA7oDmgN4Y1aHR0cDovL2NybC5nbG9iYWxzaWduLmNvbS9j YS9nc2F0bGFzcjNzbWltZWNhMjAyMC5jcmwwDQYJKoZIhvcNAQELBQADggEBABel2z+x+2srOVRD Q0viCZ2+LJuwavtDvQ4+l3Rd3XCtw5i0XQBG9VlzfbHI1zKgefvQB+JS9N+u6ROIji6eGGLOvKg0 HDjOIi2s/rnPQfY1wKxC1m5MakKFjSrUwDBKZ3wWdMdcorV3UGAYzazn8cNQaCSKtBj7oaRLLskc /g+0TO2jliiOJ11vtVzsoqIAMZKx8MZi+Dzab4X63iZmPN+HVgkpCCQLRXcsIoIPQpHDw7sUW/d6 Cr4Wi1qgaAZjiE/MFZ3b3DsinOD7ujKVTOmYTtxqC1JsGSKBQG12z01ISxJfl8fEVcwu/PvQJIOS 9uS51RBg3ao/8BwDABS6eNQxggJqMIICZgIBATBoMFQxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBH bG9iYWxTaWduIG52LXNhMSowKAYDVQQDEyFHbG9iYWxTaWduIEF0bGFzIFIzIFNNSU1FIENBIDIw MjACEAE1rJpD8V26JWoZ9eTv0fIwDQYJYIZIAWUDBAIBBQCggdQwLwYJKoZIhvcNAQkEMSIEIIqp l+fzpB8+vE5OQgsP5fMUHmF4LK7JKVN8kYvLQ6FyMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEw HAYJKoZIhvcNAQkFMQ8XDTIxMDUyNTEzMDcwNVowaQYJKoZIhvcNAQkPMVwwWjALBglghkgBZQME ASowCwYJYIZIAWUDBAEWMAsGCWCGSAFlAwQBAjAKBggqhkiG9w0DBzALBgkqhkiG9w0BAQowCwYJ KoZIhvcNAQEHMAsGCWCGSAFlAwQCATANBgkqhkiG9w0BAQEFAASCAQAkjphPtJXSXofkhfNo3kY+ KCGsdIcRCv1Zeu+gIX1WB/LD7sgy352omATdMrlxolOaFEGQl8hMqAVRthNuG107l3i0gsdKVA0w 5Dk/OyYTthmkUTil+DfdXT483qkkyv5pCVWyizyhpOEO+sLLSLgGOgVrMC3HOPNgus4Bq8mnkJmo D+E0lEtBUvMNY3x4uISBmu7NoxAAXDDweAa9umCA5ij+69hoJxn+fX2U35FwZtWQvaKhMl1eKUJz IP2bCV1RlYWfRAS913A4u1CBlpzEL6wPZpMVfK+SlrzQRt1fksFpU31ozvZlTEohNFqRm2ebZ0NG FFBflFLgn8momftd --000000000000ecad4805c3273378--