From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11476 invoked by alias); 28 Aug 2009 06:44:12 -0000 Received: (qmail 11461 invoked by uid 22791); 28 Aug 2009 06:44:11 -0000 X-SWARE-Spam-Status: No, hits=-1.7 required=5.0 tests=AWL,BAYES_00,SARE_MSGID_LONG40,SPF_PASS X-Spam-Check-By: sourceware.org Received: from mail-pz0-f202.google.com (HELO mail-pz0-f202.google.com) (209.85.222.202) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 28 Aug 2009 06:44:03 +0000 Received: by pzk40 with SMTP id 40so1679180pzk.26 for ; Thu, 27 Aug 2009 23:44:02 -0700 (PDT) MIME-Version: 1.0 Received: by 10.142.250.6 with SMTP id x6mr40896wfh.292.1251441842145; Thu, 27 Aug 2009 23:44:02 -0700 (PDT) In-Reply-To: <4A9749A2.3010500@vmware.com> References: <4A7BA1DE.6010103@vmware.com> <8363cbenvt.fsf@gnu.org> <4A95C927.8020607@vmware.com> <4A95D342.6070304@vmware.com> <4A97345F.1010508@vmware.com> <4A9749A2.3010500@vmware.com> From: Hui Zhu Date: Fri, 28 Aug 2009 08:46:00 -0000 Message-ID: Subject: Re: Bug in i386_process_record? To: Michael Snyder Cc: Eli Zaretskii , "gdb-patches@sourceware.org" Content-Type: multipart/mixed; boundary=001636ed6a19754b2504722e0207 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-08/txt/msg00509.txt.bz2 --001636ed6a19754b2504722e0207 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 4238 On Fri, Aug 28, 2009 at 11:06, Michael Snyder wrote: > Hui Zhu wrote: >> >> On Fri, Aug 28, 2009 at 09:35, Michael Snyder wrote: >>> >>> Hui Zhu wrote: >>>> >>>> On Thu, Aug 27, 2009 at 09:43, Hui Zhu wrote: >>>>> >>>>> On Thu, Aug 27, 2009 at 08:28, Michael Snyder >>>>> wrote: >>>>>> >>>>>> Do you think you could add some new tests to i386-reverse.exp, >>>>>> to verify the string instructions? >>>>>> >>>>>> Thanks, >>>>>> Michael >>>>>> >>>>> OK. I will do it. >>>>> >>>>> Thanks, >>>>> Hui >>>>> >>>> Hi Michael, >>>> >>>> I make a patch to add the test for string insn. >>>> >>>> Please help me review it. >>> >>> Good start -- but you need to write some expect script to go with it! >>> ;-) >> >> Hi Michael, >> >> This patch can make inferior without string_insn_patch get fail in: >> gdb_test "continue" \ >> =A0 =A0" end of main .*" \ >> =A0 =A0"continue to end of main" >> Prec will get error in asm volatile("rep\n" line when continue. >> >> Do you think I need make string_insn test =A0divide with inc_test in >> expect script? > > My intention when I wrote the i386-reverse test was > that it should be extended with more tests over time. > > In fact, I had this one in mind. =A0 ;-) > > Don't worry about "without string_insn_patch", since you will > check it in tomorrow. =A0You will check in this test later than > that, so nobody will get this test unles they already have the > string_insn_patch. OK. I make a new version patch that divide the inc_test and string_insn_test. Please help me review it. Thanks, Hui 2009-08-28 Hui Zhu * gdb.reverse/i386-reverse.c (string_insn_tests): New function. (main): Call "string_insn_tests". * gdb.reverse/i386-reverse.exp: Add test for string insn. --- testsuite/gdb.reverse/i386-reverse.c | 16 ++++++++++++++++ testsuite/gdb.reverse/i386-reverse.exp | 27 +++++++++++++++++---------- 2 files changed, 33 insertions(+), 10 deletions(-) --- a/testsuite/gdb.reverse/i386-reverse.c +++ b/testsuite/gdb.reverse/i386-reverse.c @@ -38,9 +38,25 @@ inc_dec_tests (void) asm ("dec %edi"); } /* end inc_dec_tests */ +void +string_insn_tests (void) +{ + register char x asm("ax"); + char *dstp =3D (char *) 1; + int d0; + int len =3D 0; + + asm volatile("rep\n" + "stosb" /* %0, %2, %3 */ : + "=3DD" (dstp), "=3Dc" (d0) : + "0" (dstp), "1" (len), "a" (x) : + "memory"); +} /* end string_insn_tests */ + int main () { inc_dec_tests (); + string_insn_tests (); return 0; /* end of main */ } --- a/testsuite/gdb.reverse/i386-reverse.exp +++ b/testsuite/gdb.reverse/i386-reverse.exp @@ -53,6 +53,7 @@ if { [gdb_compile "${srcdir}/${subdir}/$ set end_of_main [gdb_get_line_number " end of main "] set end_of_inc_dec_tests [gdb_get_line_number " end inc_dec_tests "] +set string_insn_tests [gdb_get_line_number " end string_insn_tests "] # Get things started. @@ -201,21 +202,13 @@ gdb_expect { # gdb_test "step" "end inc_dec_tests .*" "step to end inc_dec_tests 1st ti= me" -gdb_test "break $end_of_main" \ - "Breakpoint $decimal at .* line $end_of_main\." \ - "set breakpoint at end of main" - -gdb_test "continue" \ - " end of main .*" \ - "continue to end of main" - gdb_test "break $end_of_inc_dec_tests" \ "Breakpoint $decimal at .* line $end_of_inc_dec_tests\." \ "set breakpoint at end of inc_dec_tests" -gdb_test "reverse-continue" \ +gdb_test "continue" \ " end inc_dec_tests .*" \ - "reverse to inc_dec_tests" + "continue to inc_dec_tests" # # Now reverse step, and check register values. @@ -285,4 +278,18 @@ gdb_test "info reg eax" "eax *$predec_ea gdb_test "reverse-step" "inc .eax.*" "reverse-step to inc eax" gdb_test "info reg eax" "eax *$preinc_eax\t.*" "eax after reverse-inc" +gdb_test "continue" \ + " end inc_dec_tests .*" \ + "continue to inc_dec_tests" +# +# Test string instruction. +# + +gdb_test "break $string_insn_tests" \ + "Breakpoint $decimal at .* line $string_insn_tests\." \ + "set breakpoint at end of string_insn_tests" + +gdb_test "continue" \ + " end string_insn_tests .*" \ + "continue to inc_dec_tests" --001636ed6a19754b2504722e0207 Content-Type: text/plain; charset=US-ASCII; name="prec-testsuite-string-insn.txt" Content-Disposition: attachment; filename="prec-testsuite-string-insn.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fywka3wl0 Content-length: 3278 LS0tCiB0ZXN0c3VpdGUvZ2RiLnJldmVyc2UvaTM4Ni1yZXZlcnNlLmMgICB8 ICAgMTYgKysrKysrKysrKysrKysrKwogdGVzdHN1aXRlL2dkYi5yZXZlcnNl L2kzODYtcmV2ZXJzZS5leHAgfCAgIDI3ICsrKysrKysrKysrKysrKysrLS0t LS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAzMyBpbnNlcnRpb25zKCspLCAx MCBkZWxldGlvbnMoLSkKCi0tLSBhL3Rlc3RzdWl0ZS9nZGIucmV2ZXJzZS9p Mzg2LXJldmVyc2UuYworKysgYi90ZXN0c3VpdGUvZ2RiLnJldmVyc2UvaTM4 Ni1yZXZlcnNlLmMKQEAgLTM4LDkgKzM4LDI1IEBAIGluY19kZWNfdGVzdHMg KHZvaWQpCiAgIGFzbSAoImRlYyAlZWRpIik7CiB9IC8qIGVuZCBpbmNfZGVj X3Rlc3RzICovCiAKK3ZvaWQKK3N0cmluZ19pbnNuX3Rlc3RzICh2b2lkKQor eworICByZWdpc3RlciBjaGFyIHggYXNtKCJheCIpOworICBjaGFyICpkc3Rw ID0gKGNoYXIgKikgMTsKKyAgaW50IGQwOworICBpbnQgbGVuID0gMDsKKwor ICBhc20gdm9sYXRpbGUoInJlcFxuIgorCSAgICAgICAic3Rvc2IiIC8qICUw LCAlMiwgJTMgKi8gOgorCSAgICAgICAiPUQiIChkc3RwKSwgIj1jIiAoZDAp IDoKKwkgICAgICAgIjAiIChkc3RwKSwgIjEiIChsZW4pLCAiYSIgKHgpIDoK KwkgICAgICAgIm1lbW9yeSIpOworfSAvKiBlbmQgc3RyaW5nX2luc25fdGVz dHMgKi8KKwogaW50IAogbWFpbiAoKQogewogICBpbmNfZGVjX3Rlc3RzICgp OworICBzdHJpbmdfaW5zbl90ZXN0cyAoKTsKICAgcmV0dXJuIDA7CS8qIGVu ZCBvZiBtYWluICovCiB9Ci0tLSBhL3Rlc3RzdWl0ZS9nZGIucmV2ZXJzZS9p Mzg2LXJldmVyc2UuZXhwCisrKyBiL3Rlc3RzdWl0ZS9nZGIucmV2ZXJzZS9p Mzg2LXJldmVyc2UuZXhwCkBAIC01Myw2ICs1Myw3IEBAIGlmIHsgW2dkYl9j b21waWxlICIke3NyY2Rpcn0vJHtzdWJkaXJ9LyQKIAogc2V0IGVuZF9vZl9t YWluICAgICAgICAgIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICIgZW5kIG9mIG1h aW4gIl0KIHNldCBlbmRfb2ZfaW5jX2RlY190ZXN0cyBbZ2RiX2dldF9saW5l X251bWJlciAiIGVuZCBpbmNfZGVjX3Rlc3RzICJdCitzZXQgc3RyaW5nX2lu c25fdGVzdHMgICAgW2dkYl9nZXRfbGluZV9udW1iZXIgIiBlbmQgc3RyaW5n X2luc25fdGVzdHMgIl0KIAogIyBHZXQgdGhpbmdzIHN0YXJ0ZWQuCiAKQEAg LTIwMSwyMSArMjAyLDEzIEBAIGdkYl9leHBlY3QgewogCiAjIGdkYl90ZXN0 ICJzdGVwIiAiZW5kIGluY19kZWNfdGVzdHMgLioiICJzdGVwIHRvIGVuZCBp bmNfZGVjX3Rlc3RzIDFzdCB0aW1lIgogCi1nZGJfdGVzdCAiYnJlYWsgJGVu ZF9vZl9tYWluIiBcCi0gICAgIkJyZWFrcG9pbnQgJGRlY2ltYWwgYXQgLiog bGluZSAkZW5kX29mX21haW5cLiIgXAotICAgICJzZXQgYnJlYWtwb2ludCBh dCBlbmQgb2YgbWFpbiIKLQotZ2RiX3Rlc3QgImNvbnRpbnVlIiBcCi0gICAg IiBlbmQgb2YgbWFpbiAuKiIgXAotICAgICJjb250aW51ZSB0byBlbmQgb2Yg bWFpbiIKLQogZ2RiX3Rlc3QgImJyZWFrICRlbmRfb2ZfaW5jX2RlY190ZXN0 cyIgXAogICAgICJCcmVha3BvaW50ICRkZWNpbWFsIGF0IC4qIGxpbmUgJGVu ZF9vZl9pbmNfZGVjX3Rlc3RzXC4iIFwKICAgICAic2V0IGJyZWFrcG9pbnQg YXQgZW5kIG9mIGluY19kZWNfdGVzdHMiCiAKLWdkYl90ZXN0ICJyZXZlcnNl LWNvbnRpbnVlIiBcCitnZGJfdGVzdCAiY29udGludWUiIFwKICAgICAiIGVu ZCBpbmNfZGVjX3Rlc3RzIC4qIiBcCi0gICAgInJldmVyc2UgdG8gaW5jX2Rl Y190ZXN0cyIKKyAgICAiY29udGludWUgdG8gaW5jX2RlY190ZXN0cyIKIAog IwogIyBOb3cgcmV2ZXJzZSBzdGVwLCBhbmQgY2hlY2sgcmVnaXN0ZXIgdmFs dWVzLgpAQCAtMjg1LDQgKzI3OCwxOCBAQCBnZGJfdGVzdCAiaW5mbyByZWcg ZWF4IiAiZWF4ICokcHJlZGVjX2VhCiBnZGJfdGVzdCAicmV2ZXJzZS1zdGVw IiAiaW5jIC5lYXguKiIgInJldmVyc2Utc3RlcCB0byBpbmMgZWF4IgogZ2Ri X3Rlc3QgImluZm8gcmVnIGVheCIgImVheCAqJHByZWluY19lYXhcdC4qIiAi ZWF4IGFmdGVyIHJldmVyc2UtaW5jIgogCitnZGJfdGVzdCAiY29udGludWUi IFwKKyAgICAiIGVuZCBpbmNfZGVjX3Rlc3RzIC4qIiBcCisgICAgImNvbnRp bnVlIHRvIGluY19kZWNfdGVzdHMiCiAKKyMKKyMgVGVzdCBzdHJpbmcgaW5z dHJ1Y3Rpb24uCisjCisKK2dkYl90ZXN0ICJicmVhayAkc3RyaW5nX2luc25f dGVzdHMiIFwKKyAgICAiQnJlYWtwb2ludCAkZGVjaW1hbCBhdCAuKiBsaW5l ICRzdHJpbmdfaW5zbl90ZXN0c1wuIiBcCisgICAgInNldCBicmVha3BvaW50 IGF0IGVuZCBvZiBzdHJpbmdfaW5zbl90ZXN0cyIKKworZ2RiX3Rlc3QgImNv bnRpbnVlIiBcCisgICAgIiBlbmQgc3RyaW5nX2luc25fdGVzdHMgLioiIFwK KyAgICAiY29udGludWUgdG8gaW5jX2RlY190ZXN0cyIK --001636ed6a19754b2504722e0207--