From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28014 invoked by alias); 13 Oct 2009 02:17:51 -0000 Received: (qmail 28004 invoked by uid 22791); 13 Oct 2009 02:17:50 -0000 X-SWARE-Spam-Status: No, hits=-1.9 required=5.0 tests=AWL,BAYES_00,SARE_MSGID_LONG40,SPF_PASS X-Spam-Check-By: sourceware.org Received: from mail-qy0-f185.google.com (HELO mail-qy0-f185.google.com) (209.85.221.185) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 13 Oct 2009 02:17:45 +0000 Received: by qyk15 with SMTP id 15so8181386qyk.23 for ; Mon, 12 Oct 2009 19:17:44 -0700 (PDT) MIME-Version: 1.0 Received: by 10.229.93.41 with SMTP id t41mr2431545qcm.81.1255400264242; Mon, 12 Oct 2009 19:17:44 -0700 (PDT) In-Reply-To: <4AD35AB6.2050903@vmware.com> References: <4AD35AB6.2050903@vmware.com> From: Jiang Jilin Date: Tue, 13 Oct 2009 02:17:00 -0000 Message-ID: <7d77a27d0910121917w4abfc09cx43e5667393ef9f79@mail.gmail.com> Subject: Re: [RFA] Fix off-by-one error in record.c (record_list_release_first) To: Michael Snyder Cc: "gdb-patches@sourceware.org" , Hui Zhu Content-Type: multipart/mixed; boundary=000e0cd6aa62cd17190475c7a625 X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2009-10/txt/msg00255.txt.bz2 --000e0cd6aa62cd17190475c7a625 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 1993 On Tue, Oct 13, 2009 at 12:35 AM, Michael Snyder wrote: > Hui, > > My "info record" patch helped me to find a bug. > I found that, once we start calling record_list_release_first, > we start adding two instructions to the log for every one > instruction we remove. =A0Therefore the log continues to grow, > even though it is supposed to remain constant in size. > > This is because record_insn_num is not incremented if we > call record_list_release_first -- but record_list_release_first > does decrement it. Hi Michael, I've noticed this bug(maybe) earlier, but I prefer fixing the caller functions, not the callee function record_list_release_first. And your patch doesn't handle set_record_insn_max_num. Thanks! 2009-10-13 Michael Snyder Jiang Jilin * record.c (record_message): Increase record_insn_num after record_list_release_first. (record_registers_change): Ditto. (record_xfer_partial): Ditto. diff --git a/gdb/record.c b/gdb/record.c index 8b56010..0208dac 100644 --- a/gdb/record.c +++ b/gdb/record.c @@ -438,8 +438,8 @@ record_message (void *args) if (record_insn_num =3D=3D record_insn_max_num && record_insn_max_num) record_list_release_first (); - else - record_insn_num++; + + record_insn_num++; return 1; } @@ -1008,8 +1008,8 @@ record_registers_change (struct regcache *regcache, int regnum) if (record_insn_num =3D=3D record_insn_max_num && record_insn_max_num) record_list_release_first (); - else - record_insn_num++; + + record_insn_num++; } static void @@ -1121,8 +1121,8 @@ record_xfer_partial (struct target_ops *ops, enum target_object object, if (record_insn_num =3D=3D record_insn_max_num && record_insn_max_nu= m) record_list_release_first (); - else - record_insn_num++; + + record_insn_num++; } return record_beneath_to_xfer_partial (record_beneath_to_xfer_partial_op= s, --000e0cd6aa62cd17190475c7a625 Content-Type: text/plain; charset=US-ASCII; name="0001-Fix-off-by-one-error-in-record.c-record_list_releas.patch.txt" Content-Disposition: attachment; filename="0001-Fix-off-by-one-error-in-record.c-record_list_releas.patch.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g0q0uehd0 Content-length: 1298 ZGlmZiAtLWdpdCBhL2dkYi9yZWNvcmQuYyBiL2dkYi9yZWNvcmQuYwppbmRl eCA4YjU2MDEwLi4wMjA4ZGFjIDEwMDY0NAotLS0gYS9nZGIvcmVjb3JkLmMK KysrIGIvZ2RiL3JlY29yZC5jCkBAIC00MzgsOCArNDM4LDggQEAgcmVjb3Jk X21lc3NhZ2UgKHZvaWQgKmFyZ3MpCiAKICAgaWYgKHJlY29yZF9pbnNuX251 bSA9PSByZWNvcmRfaW5zbl9tYXhfbnVtICYmIHJlY29yZF9pbnNuX21heF9u dW0pCiAgICAgcmVjb3JkX2xpc3RfcmVsZWFzZV9maXJzdCAoKTsKLSAgZWxz ZQotICAgIHJlY29yZF9pbnNuX251bSsrOworCisgIHJlY29yZF9pbnNuX251 bSsrOwogCiAgIHJldHVybiAxOwogfQpAQCAtMTAwOCw4ICsxMDA4LDggQEAg cmVjb3JkX3JlZ2lzdGVyc19jaGFuZ2UgKHN0cnVjdCByZWdjYWNoZSAqcmVn Y2FjaGUsIGludCByZWdudW0pCiAKICAgaWYgKHJlY29yZF9pbnNuX251bSA9 PSByZWNvcmRfaW5zbl9tYXhfbnVtICYmIHJlY29yZF9pbnNuX21heF9udW0p CiAgICAgcmVjb3JkX2xpc3RfcmVsZWFzZV9maXJzdCAoKTsKLSAgZWxzZQot ICAgIHJlY29yZF9pbnNuX251bSsrOworCisgIHJlY29yZF9pbnNuX251bSsr OwogfQogCiBzdGF0aWMgdm9pZApAQCAtMTEyMSw4ICsxMTIxLDggQEAgcmVj b3JkX3hmZXJfcGFydGlhbCAoc3RydWN0IHRhcmdldF9vcHMgKm9wcywgZW51 bSB0YXJnZXRfb2JqZWN0IG9iamVjdCwKIAogICAgICAgaWYgKHJlY29yZF9p bnNuX251bSA9PSByZWNvcmRfaW5zbl9tYXhfbnVtICYmIHJlY29yZF9pbnNu X21heF9udW0pCiAJcmVjb3JkX2xpc3RfcmVsZWFzZV9maXJzdCAoKTsKLSAg ICAgIGVsc2UKLQlyZWNvcmRfaW5zbl9udW0rKzsKKworICAgICAgcmVjb3Jk X2luc25fbnVtKys7CiAgICAgfQogCiAgIHJldHVybiByZWNvcmRfYmVuZWF0 aF90b194ZmVyX3BhcnRpYWwgKHJlY29yZF9iZW5lYXRoX3RvX3hmZXJfcGFy dGlhbF9vcHMsCg== --000e0cd6aa62cd17190475c7a625--