From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8583 invoked by alias); 24 Oct 2008 09:58:02 -0000 Received: (qmail 8573 invoked by uid 22791); 24 Oct 2008 09:58:01 -0000 X-Spam-Check-By: sourceware.org Received: from ti-out-0910.google.com (HELO ti-out-0910.google.com) (209.85.142.189) by sourceware.org (qpsmtpd/0.31) with ESMTP; Fri, 24 Oct 2008 09:57:13 +0000 Received: by ti-out-0910.google.com with SMTP id d10so465638tib.12 for ; Fri, 24 Oct 2008 02:57:09 -0700 (PDT) Received: by 10.110.43.20 with SMTP id q20mr48849tiq.15.1224842229813; Fri, 24 Oct 2008 02:57:09 -0700 (PDT) Received: by 10.110.42.9 with HTTP; Fri, 24 Oct 2008 02:57:09 -0700 (PDT) Message-ID: Date: Fri, 24 Oct 2008 09:58:00 -0000 From: teawater To: "Pedro Alves" , "Michael Snyder" Subject: Re: [reverse/record] adjust_pc_after_break in reverse execution mode? Cc: "gdb-patches@sourceware.org" In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_79850_1446515.1224842229767" References: <200810180210.16346.pedro@codesourcery.com> <200810240045.52818.pedro@codesourcery.com> <490118CB.5000500@vmware.com> <200810240250.20238.pedro@codesourcery.com> 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: 2008-10/txt/msg00604.txt.bz2 ------=_Part_79850_1446515.1224842229767 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Content-length: 2581 Hi buddies, This is the new patch that fix the break bug. But I think I still need to add some code to deal with signal. 2008-10-24 Hui Zhu * record.c (record_wait): Check breakpint before forward execute in replay mode. Check breakpoint use function "breakpoint_inserted_here_p" in replay mode. Set pc if forward execute, gdbarch_decr_pc_after_break is not 0 and this is not single step in replay mode. * linux-nat.c (my_waitpid_record): Add gdbarch_decr_pc_after_break to pc if need. Thanks, Hui On Fri, Oct 24, 2008 at 16:10, teawater wrote: > Thanks Pedro and Michael, > > I think the reason is P record let inferior step recycle in the > linux-nat target. > So when it break by breakpint, it will not let > (pc+gdbarch_decr_pc_after_break (gdbarch)). Then after > adjust_pc_after_break, The PC is error. > > I will try to deal with it. > > Hui > > On Fri, Oct 24, 2008 at 09:50, Pedro Alves wrote: >> On Friday 24 October 2008 01:37:31, Michael Snyder wrote: >>> > In sum, it appears that decr_pc_after_break doesn't matter when you have >>> > continguous breakpoints, as long as you get from from B1's address to B2's >>> > address by single-stepping. All is good then, it appears! >>> >>> I agree, at least that is the conclusion I am leaning toward. >>> >> >> Not so fast! I knew I had to spend a little extra thinking about >> it, 'cause I knew something was broken, just couldn't find what. :-) >> *as long as you get from from B1's address to B2's address >> by single-stepping* was a restriction that doesn't always apply. >> >> Here's a test that will fail in forward record/replay mode, but not >> in normal "play" mode. >> >> volatile int global_foo = 0; >> >> int >> main (int argc, char **argv) >> { >> asm ("nop"); /* 1st insn */ >> asm ("nop"); /* 2nd insn */ >> asm ("nop"); /* 3rd insn */ >> asm ("nop"); /* 4th insn */ >> if (!global_foo) >> goto ahead; >> asm ("nop"); /* 5th insn */ >> asm ("nop"); /* 6th insn */ >> asm ("nop"); /* 7th insn */ >> asm ("nop"); /* 8th insn */ <<< break 1 here >> ahead: >> asm ("nop"); /* 9th insn */ <<< break 2 here >> end: >> return 0; >> } >> >> If you let the program reply until break 2 is hit, and assuming insn >> 8th and 9th are assembled as contiguous (they do on x86 -O0 for me), you'll >> see that adjust_pc_after_break will indeed make it appear that breakpoint >> 1 was hit. Now, nops are nops, but real code could have something >> else there... >> >> /me goes back to bed. >> >> -- >> Pedro Alves >> > ------=_Part_79850_1446515.1224842229767 Content-Type: text/plain; name=record_wait_breakpoint.txt Content-Transfer-Encoding: base64 X-Attachment-Id: f_fmonk1ip0 Content-Disposition: attachment; filename=record_wait_breakpoint.txt Content-length: 5820 LS0tIGEvbGludXgtbmF0LmMKKysrIGIvbGludXgtbmF0LmMKQEAgLTUxNCw2 ICs1MTQsNyBAQCBteV93YWl0cGlkX3JlY29yZCAoaW50IHBpZCwgaW50ICpz dGF0dXMsCiAgIHN0cnVjdCBicF9sb2NhdGlvbiAqYmw7CiAgIHN0cnVjdCBi cmVha3BvaW50ICpiOwogICBDT1JFX0FERFIgcGM7CisgIENPUkVfQUREUiBk ZWNyX3BjX2FmdGVyX2JyZWFrOwogICBzdHJ1Y3QgbHdwX2luZm8gKmxwOwog CiB3YWl0X2JlZ2luOgpAQCAtNTMwLDcgKzUzMSw3IEBAIHdhaXRfYmVnaW46 CiAKICAgaWYgKFdJRlNUT1BQRUQgKCpzdGF0dXMpICYmIFdTVE9QU0lHICgq c3RhdHVzKSA9PSBTSUdUUkFQKQogICAgIHsKLSAgICAgIC8qIENoZWNrIGlm IHRoZXJlIGlzIGEgYnJlYWtwb2ludCAqLworICAgICAgLyogQ2hlY2sgaWYg dGhlcmUgaXMgYSBicmVha3BvaW50LiAgKi8KICAgICAgIHBjID0gMDsKICAg ICAgIHJlZ2lzdGVyc19jaGFuZ2VkICgpOwogICAgICAgZm9yIChibCA9IGJw X2xvY2F0aW9uX2NoYWluOyBibDsgYmwgPSBibC0+Z2xvYmFsX25leHQpCkBA IC02MDMsNiArNjA0LDIwIEBAIHdhaXRfYmVnaW46CiAgICAgfQogCiBvdXQ6 CisgIC8qIEFkZCBnZGJhcmNoX2RlY3JfcGNfYWZ0ZXJfYnJlYWsgdG8gcGMg YmVjYXVzZSBwYyB3aWxsIGJlIGJyZWFrIGFkZHJlc3MKKyAgICAgYWRkIGdk YmFyY2hfZGVjcl9wY19hZnRlcl9icmVhayB3aGVuIGluZmVyaW9yIG5vbi1z dGVwIGV4ZWN1dGUuICAqLworICBkZWNyX3BjX2FmdGVyX2JyZWFrID0gZ2Ri YXJjaF9kZWNyX3BjX2FmdGVyX2JyZWFrCisgICAgKGdldF9yZWdjYWNoZV9h cmNoIChnZXRfdGhyZWFkX3JlZ2NhY2hlIChwaWRfdG9fcHRpZCAocmV0KSkp KTsKKyAgaWYgKGRlY3JfcGNfYWZ0ZXJfYnJlYWspCisgICAgeworICAgICAg aWYgKCFwYykKKwl7CisJICBwYyA9IHJlZ2NhY2hlX3JlYWRfcGMgKGdldF90 aHJlYWRfcmVnY2FjaGUgKHBpZF90b19wdGlkIChyZXQpKSk7CisJfQorICAg ICAgcmVnY2FjaGVfd3JpdGVfcGMgKGdldF90aHJlYWRfcmVnY2FjaGUgKHBp ZF90b19wdGlkIChyZXQpKSwKKwkJCSBwYyArIGRlY3JfcGNfYWZ0ZXJfYnJl YWspOworICAgIH0KKwogICByZXR1cm4gcmV0OwogfQogCi0tLSBhL3JlY29y ZC5jCisrKyBiL3JlY29yZC5jCkBAIC00OTcsNiArNDk3LDMzIEBAIHJlY29y ZF93YWl0IChwdGlkX3QgcHRpZCwgc3RydWN0IHRhcmdldF8KICAgICAgIGlu dCBjb250aW51ZV9mbGFnID0gMTsKICAgICAgIGludCBmaXJzdF9yZWNvcmRf ZW5kID0gMTsKICAgICAgIHN0cnVjdCBjbGVhbnVwICpvbGRfY2xlYW51cHMg PSBtYWtlX2NsZWFudXAgKHJlY29yZF93YWl0X2NsZWFudXBzLCAwKTsKKyAg ICAgIENPUkVfQUREUiB0bXBfcGM7CisKKyAgICAgIHN0YXR1cy0+a2luZCA9 IFRBUkdFVF9XQUlUS0lORF9TVE9QUEVEOworCisgICAgICAvKiBDaGVjayBi cmVha3BvaW50IHdoZW4gZm9yd2FyZCBleGVjdXRlLiAgKi8KKyAgICAgIGlm IChleGVjdXRpb25fZGlyZWN0aW9uID09IEVYRUNfRk9SV0FSRCkKKwl7CisJ ICB0bXBfcGMgPSByZWdjYWNoZV9yZWFkX3BjIChyZWdjYWNoZSk7CisJICBp ZiAoYnJlYWtwb2ludF9pbnNlcnRlZF9oZXJlX3AgKHRtcF9wYykpCisJICAg IHsKKwkgICAgICBpZiAocmVjb3JkX2RlYnVnKQorCQl7CisJCSAgZnByaW50 Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLAorCQkJCSAgICAgICJQcm9jZXNz IHJlY29yZDogYnJlYWsgYXQgMHglcy5cbiIsCisJCQkJICAgICAgcGFkZHJf bnogKHRtcF9wYykpOworCQl9CisJICAgICAgaWYgKGdkYmFyY2hfZGVjcl9w Y19hZnRlcl9icmVhayAoZ2V0X3JlZ2NhY2hlX2FyY2ggKHJlZ2NhY2hlKSkK KwkJICAmJiAhcmVjb3JkX3Jlc3VtZV9zdGVwKQorCQl7CisJCSAgcmVnY2Fj aGVfd3JpdGVfcGMgKHJlZ2NhY2hlLAorCQkJCSAgICAgdG1wX3BjICsKKwkJ CQkgICAgIGdkYmFyY2hfZGVjcl9wY19hZnRlcl9icmVhaworCQkJCSAgICAg KGdldF9yZWdjYWNoZV9hcmNoIChyZWdjYWNoZSkpKTsKKwkJfQorCSAgICAg IGdvdG8gcmVwbGF5X291dDsKKwkgICAgfQorCX0KIAogICAgICAgcmVjb3Jk X2dldF9zaWcgPSAwOwogICAgICAgYWN0LnNhX2hhbmRsZXIgPSByZWNvcmRf c2lnX2hhbmRsZXI7CkBAIC01MjEsNyArNTQ4LDYgQEAgcmVjb3JkX3dhaXQg KHB0aWRfdCBwdGlkLCBzdHJ1Y3QgdGFyZ2V0XwogCiAgICAgICAvKiBMb29w IG92ZXIgdGhlIHJlY29yZF9saXN0LCBsb29raW5nIGZvciB0aGUgbmV4dCBw bGFjZSB0bwogCSBzdG9wLiAgKi8KLSAgICAgIHN0YXR1cy0+a2luZCA9IFRB UkdFVF9XQUlUS0lORF9TVE9QUEVEOwogICAgICAgZG8KIAl7CiAJICAvKiBD aGVjayBmb3IgYmVnaW5uaW5nIGFuZCBlbmQgb2YgbG9nLiAgKi8KQEAgLTU4 OCwxMCArNjE0LDYgQEAgcmVjb3JkX3dhaXQgKHB0aWRfdCBwdGlkLCBzdHJ1 Y3QgdGFyZ2V0XwogCSAgICB9CiAJICBlbHNlCiAJICAgIHsKLQkgICAgICBD T1JFX0FERFIgdG1wX3BjOwotCSAgICAgIHN0cnVjdCBicF9sb2NhdGlvbiAq Ymw7Ci0JICAgICAgc3RydWN0IGJyZWFrcG9pbnQgKmI7Ci0KIAkgICAgICBp ZiAocmVjb3JkX2RlYnVnID4gMSkKIAkJewogCQkgIGZwcmludGZfdW5maWx0 ZXJlZCAoZ2RiX3N0ZGxvZywKQEAgLTYzMiwzNSArNjU0LDI1IEBAIHJlY29y ZF93YWl0IChwdGlkX3QgcHRpZCwgc3RydWN0IHRhcmdldF8KIAkJICAgIH0K IAogCQkgIC8qIGNoZWNrIGJyZWFrcG9pbnQgKi8KLQkJICB0bXBfcGMgPSBy ZWFkX3BjICgpOwotCQkgIGZvciAoYmwgPSBicF9sb2NhdGlvbl9jaGFpbjsg Ymw7IGJsID0gYmwtPmdsb2JhbF9uZXh0KQorCQkgIHRtcF9wYyA9IHJlZ2Nh Y2hlX3JlYWRfcGMgKHJlZ2NhY2hlKTsKKwkJICBpZiAoYnJlYWtwb2ludF9p bnNlcnRlZF9oZXJlX3AgKHRtcF9wYykpCiAJCSAgICB7Ci0JCSAgICAgIGIg PSBibC0+b3duZXI7Ci0JCSAgICAgIGdkYl9hc3NlcnQgKGIpOwotCQkgICAg ICBpZiAoYi0+ZW5hYmxlX3N0YXRlICE9IGJwX2VuYWJsZWQKLQkJCSAgJiYg Yi0+ZW5hYmxlX3N0YXRlICE9IGJwX3Blcm1hbmVudCkKLQkJCWNvbnRpbnVl OwotCi0JCSAgICAgIGlmIChiLT50eXBlID09IGJwX3dhdGNocG9pbnQgfHwg Yi0+dHlwZSA9PSBicF9jYXRjaF9mb3JrCi0JCQkgIHx8IGItPnR5cGUgPT0g YnBfY2F0Y2hfdmZvcmsKLQkJCSAgfHwgYi0+dHlwZSA9PSBicF9jYXRjaF9l eGVjCi0JCQkgIHx8IGItPnR5cGUgPT0gYnBfaGFyZHdhcmVfd2F0Y2hwb2lu dAotCQkJICB8fCBiLT50eXBlID09IGJwX3JlYWRfd2F0Y2hwb2ludAotCQkJ ICB8fCBiLT50eXBlID09IGJwX2FjY2Vzc193YXRjaHBvaW50KQorCQkgICAg ICBpZiAocmVjb3JkX2RlYnVnKQogCQkJewotCQkJICBjb250aW51ZTsKKwkJ CSAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLAorCQkJCQkgICAg ICAiUHJvY2VzcyByZWNvcmQ6IGJyZWFrIGF0IDB4JXMuXG4iLAorCQkJCQkg ICAgICBwYWRkcl9ueiAodG1wX3BjKSk7CiAJCQl9Ci0JCSAgICAgIGlmIChi bC0+YWRkcmVzcyA9PSB0bXBfcGMpCisJCSAgICAgIGlmIChnZGJhcmNoX2Rl Y3JfcGNfYWZ0ZXJfYnJlYWsgKGdldF9yZWdjYWNoZV9hcmNoIChyZWdjYWNo ZSkpCisJCQkgICYmIGV4ZWN1dGlvbl9kaXJlY3Rpb24gPT0gRVhFQ19GT1JX QVJECisJCQkgICYmICFyZWNvcmRfcmVzdW1lX3N0ZXApCiAJCQl7Ci0JCQkg IGlmIChyZWNvcmRfZGVidWcpCi0JCQkgICAgewotCQkJICAgICAgZnByaW50 Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLAotCQkJCQkJICAiUHJvY2VzcyBy ZWNvcmQ6IGJyZWFrIGF0IDB4JXMuXG4iLAotCQkJCQkJICBwYWRkcl9ueiAo dG1wX3BjKSk7Ci0JCQkgICAgfQotCQkJICBjb250aW51ZV9mbGFnID0gMDsK LQkJCSAgYnJlYWs7CisJCQkgIHJlZ2NhY2hlX3dyaXRlX3BjIChyZWdjYWNo ZSwKKwkJCQkJICAgICB0bXBfcGMgKworCQkJCQkgICAgIGdkYmFyY2hfZGVj cl9wY19hZnRlcl9icmVhaworCQkJCQkgICAgIChnZXRfcmVnY2FjaGVfYXJj aCAocmVnY2FjaGUpKSk7CiAJCQl9CisJCSAgICAgIGNvbnRpbnVlX2ZsYWcg PSAwOwogCQkgICAgfQogCQl9CiAJICAgICAgaWYgKGV4ZWN1dGlvbl9kaXJl Y3Rpb24gPT0gRVhFQ19SRVZFUlNFKQpAQCAtNjkxLDYgKzcwMyw3IEBAIG5l eHQ6CiAJICBwZXJyb3Jfd2l0aF9uYW1lIChfKCJQcm9jZXNzIHJlY29yZDog c2lnYWN0aW9uIikpOwogCX0KIAorcmVwbGF5X291dDoKICAgICAgIGlmIChy ZWNvcmRfZ2V0X3NpZykKIAl7CiAJICBzdGF0dXMtPnZhbHVlLnNpZyA9IFRB UkdFVF9TSUdOQUxfSU5UOwo= ------=_Part_79850_1446515.1224842229767--