From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23102 invoked by alias); 21 Oct 2008 06:52:16 -0000 Received: (qmail 23076 invoked by uid 22791); 21 Oct 2008 06:52:14 -0000 X-Spam-Check-By: sourceware.org Received: from ti-out-0910.google.com (HELO ti-out-0910.google.com) (209.85.142.187) by sourceware.org (qpsmtpd/0.31) with ESMTP; Tue, 21 Oct 2008 06:51:38 +0000 Received: by ti-out-0910.google.com with SMTP id d10so1141457tib.12 for ; Mon, 20 Oct 2008 23:51:35 -0700 (PDT) Received: by 10.110.46.3 with SMTP id t3mr5656009tit.19.1224571894926; Mon, 20 Oct 2008 23:51:34 -0700 (PDT) Received: by 10.110.42.9 with HTTP; Mon, 20 Oct 2008 23:51:34 -0700 (PDT) Message-ID: Date: Tue, 21 Oct 2008 06:52:00 -0000 From: teawater To: "Pedro Alves" Subject: Re: [reverse/record] adjust_pc_after_break in reverse execution mode? Cc: "Michael Snyder" , "gdb-patches@sourceware.org" In-Reply-To: <200810210121.07914.pedro@codesourcery.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_2543_14094046.1224571894936" References: <200810180210.16346.pedro@codesourcery.com> <48FCC413.3040506@vmware.com> <200810210121.07914.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/msg00504.txt.bz2 ------=_Part_2543_14094046.1224571894936 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Content-length: 1752 Sorry for understand your mean so later Pedro. I made a new patch that Set pc if forward execute and gdbarch_decr_pc_after_break is not 0 in replay mode. How do you think about it? And I think 20080930 branch is need your "adjust_pc_reverse.diff". Do you mind I check it in? On Tue, Oct 21, 2008 at 08:21, Pedro Alves wrote: > On Tuesday 21 October 2008 00:36:12, teawater wrote: >> I think your mean is check breakpoint in address >> read_pc()+gdbarch_decr_pc_after_break (gdbarch) in record_wait, right? > > Taking x86 as an example, when you're doing normal debugging and you > hit a breakpoint (SIGTRAP), the first read_pc GDB does to check where > what breakpoint was hit, will read back `breakpoint_PC + 1' --- GDB takes care > getting rid of that `+ 1' offset in infrun.c:adjust_pc_after_break. The > idea is for you to do the same as the kernel/hardware would --- still > check for breakpoints at read_pc, but increment PC by 1 before reporting the > breakpoint to GDB's core. E.g., see the `pc += gdbarch...' line from > the patch I posted previously, something like: > > record.c:record_wait () > { > ... > + /* Check for breakpoint hits in forward execution. */ > + pc = read_pc (); > + if (execution_direction == EXEC_FORWARD > + && regular_breakpoint_inserted_here_p (pc) > + /* && !single-stepping */) > + { > + status->kind = TARGET_WAITKIND_STOPPED; > + status->value.sig = TARGET_SIGNAL_TRAP; > + if (software_breakpoint_inserted_here_p (pc)) > + { > + pc += gdbarch_decr_pc_after_break (gdbarch); > + write_pc (pc); > + } > + > > -- > Pedro Alves > ------=_Part_2543_14094046.1224571894936 Content-Type: text/plain; name=record_wait_breakpoint.txt Content-Transfer-Encoding: base64 X-Attachment-Id: f_fmk6juij0 Content-Disposition: attachment; filename=record_wait_breakpoint.txt Content-length: 3827 LS0tIGEvcmVjb3JkLmMKKysrIGIvcmVjb3JkLmMKQEAgLTQ5Nyw2ICs0OTcs MzAgQEAgcmVjb3JkX3dhaXQgKHB0aWRfdCBwdGlkLCBzdHJ1Y3QgdGFyZ2V0 XwogICAgICAgaW50IGNvbnRpbnVlX2ZsYWcgPSAxOwogICAgICAgaW50IGZp cnN0X3JlY29yZF9lbmQgPSAxOwogICAgICAgc3RydWN0IGNsZWFudXAgKm9s ZF9jbGVhbnVwcyA9IG1ha2VfY2xlYW51cCAocmVjb3JkX3dhaXRfY2xlYW51 cHMsIDApOworICAgICAgQ09SRV9BRERSIHRtcF9wYzsKKworICAgICAgLyog Q2hlY2sgYnJlYWtwb2ludCB3aGVuIGZvcndhcmQgZXhlY3V0ZS4gICovCisg ICAgICBpZiAoZXhlY3V0aW9uX2RpcmVjdGlvbiA9PSBFWEVDX0ZPUldBUkQp CisJeworCSAgdG1wX3BjID0gcmVnY2FjaGVfcmVhZF9wYyAocmVnY2FjaGUp OworCSAgaWYgKGJyZWFrcG9pbnRfaW5zZXJ0ZWRfaGVyZV9wICh0bXBfcGMp KQorCSAgICB7CisJICAgICAgaWYgKHJlY29yZF9kZWJ1ZykKKwkJeworCQkg IGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywKKwkJCQkgICAgICAi UHJvY2VzcyByZWNvcmQ6IGJyZWFrIGF0IDB4JXMuXG4iLAorCQkJCSAgICAg IHBhZGRyX256ICh0bXBfcGMpKTsKKwkJfQorCSAgICAgIGlmIChnZGJhcmNo X2RlY3JfcGNfYWZ0ZXJfYnJlYWsgKGdldF9yZWdjYWNoZV9hcmNoIChyZWdj YWNoZSkpKQorCQl7CisJCSAgcmVnY2FjaGVfd3JpdGVfcGMgKHJlZ2NhY2hl LAorCQkJCSAgICAgdG1wX3BjICsKKwkJCQkgICAgIGdkYmFyY2hfZGVjcl9w Y19hZnRlcl9icmVhaworCQkJCSAgICAgKGdldF9yZWdjYWNoZV9hcmNoIChy ZWdjYWNoZSkpKTsKKwkJfQorCSAgICAgIGdvdG8gcmVwbGF5X291dDsKKwkg ICAgfQorCX0KIAogICAgICAgcmVjb3JkX2dldF9zaWcgPSAwOwogICAgICAg YWN0LnNhX2hhbmRsZXIgPSByZWNvcmRfc2lnX2hhbmRsZXI7CkBAIC01ODgs MTAgKzYxMiw2IEBAIHJlY29yZF93YWl0IChwdGlkX3QgcHRpZCwgc3RydWN0 IHRhcmdldF8KIAkgICAgfQogCSAgZWxzZQogCSAgICB7Ci0JICAgICAgQ09S RV9BRERSIHRtcF9wYzsKLQkgICAgICBzdHJ1Y3QgYnBfbG9jYXRpb24gKmJs OwotCSAgICAgIHN0cnVjdCBicmVha3BvaW50ICpiOwotCiAJICAgICAgaWYg KHJlY29yZF9kZWJ1ZyA+IDEpCiAJCXsKIAkJICBmcHJpbnRmX3VuZmlsdGVy ZWQgKGdkYl9zdGRsb2csCkBAIC02MzIsMzUgKzY1MiwyNCBAQCByZWNvcmRf d2FpdCAocHRpZF90IHB0aWQsIHN0cnVjdCB0YXJnZXRfCiAJCSAgICB9CiAK IAkJICAvKiBjaGVjayBicmVha3BvaW50ICovCi0JCSAgdG1wX3BjID0gcmVh ZF9wYyAoKTsKLQkJICBmb3IgKGJsID0gYnBfbG9jYXRpb25fY2hhaW47IGJs OyBibCA9IGJsLT5nbG9iYWxfbmV4dCkKKwkJICB0bXBfcGMgPSByZWdjYWNo ZV9yZWFkX3BjIChyZWdjYWNoZSk7CisJCSAgaWYgKGJyZWFrcG9pbnRfaW5z ZXJ0ZWRfaGVyZV9wICh0bXBfcGMpKQogCQkgICAgewotCQkgICAgICBiID0g YmwtPm93bmVyOwotCQkgICAgICBnZGJfYXNzZXJ0IChiKTsKLQkJICAgICAg aWYgKGItPmVuYWJsZV9zdGF0ZSAhPSBicF9lbmFibGVkCi0JCQkgICYmIGIt PmVuYWJsZV9zdGF0ZSAhPSBicF9wZXJtYW5lbnQpCi0JCQljb250aW51ZTsK LQotCQkgICAgICBpZiAoYi0+dHlwZSA9PSBicF93YXRjaHBvaW50IHx8IGIt PnR5cGUgPT0gYnBfY2F0Y2hfZm9yawotCQkJICB8fCBiLT50eXBlID09IGJw X2NhdGNoX3Zmb3JrCi0JCQkgIHx8IGItPnR5cGUgPT0gYnBfY2F0Y2hfZXhl YwotCQkJICB8fCBiLT50eXBlID09IGJwX2hhcmR3YXJlX3dhdGNocG9pbnQK LQkJCSAgfHwgYi0+dHlwZSA9PSBicF9yZWFkX3dhdGNocG9pbnQKLQkJCSAg fHwgYi0+dHlwZSA9PSBicF9hY2Nlc3Nfd2F0Y2hwb2ludCkKKwkJICAgICAg aWYgKHJlY29yZF9kZWJ1ZykKIAkJCXsKLQkJCSAgY29udGludWU7CisJCQkg IGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywKKwkJCQkJICAgICAg IlByb2Nlc3MgcmVjb3JkOiBicmVhayBhdCAweCVzLlxuIiwKKwkJCQkJICAg ICAgcGFkZHJfbnogKHRtcF9wYykpOwogCQkJfQotCQkgICAgICBpZiAoYmwt PmFkZHJlc3MgPT0gdG1wX3BjKQorCQkgICAgICBpZiAoZ2RiYXJjaF9kZWNy X3BjX2FmdGVyX2JyZWFrIChnZXRfcmVnY2FjaGVfYXJjaCAocmVnY2FjaGUp KQorCQkJICAmJiBleGVjdXRpb25fZGlyZWN0aW9uID09IEVYRUNfRk9SV0FS RCkKIAkJCXsKLQkJCSAgaWYgKHJlY29yZF9kZWJ1ZykKLQkJCSAgICB7Ci0J CQkgICAgICBmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRsb2csCi0JCQkJ CQkgICJQcm9jZXNzIHJlY29yZDogYnJlYWsgYXQgMHglcy5cbiIsCi0JCQkJ CQkgIHBhZGRyX256ICh0bXBfcGMpKTsKLQkJCSAgICB9Ci0JCQkgIGNvbnRp bnVlX2ZsYWcgPSAwOwotCQkJICBicmVhazsKKwkJCSAgcmVnY2FjaGVfd3Jp dGVfcGMgKHJlZ2NhY2hlLAorCQkJCQkgICAgIHRtcF9wYyArCisJCQkJCSAg ICAgZ2RiYXJjaF9kZWNyX3BjX2FmdGVyX2JyZWFrCisJCQkJCSAgICAgKGdl dF9yZWdjYWNoZV9hcmNoIChyZWdjYWNoZSkpKTsKIAkJCX0KKwkJICAgICAg Y29udGludWVfZmxhZyA9IDA7CiAJCSAgICB9CiAJCX0KIAkgICAgICBpZiAo ZXhlY3V0aW9uX2RpcmVjdGlvbiA9PSBFWEVDX1JFVkVSU0UpCkBAIC02OTEs NiArNzAwLDcgQEAgbmV4dDoKIAkgIHBlcnJvcl93aXRoX25hbWUgKF8oIlBy b2Nlc3MgcmVjb3JkOiBzaWdhY3Rpb24iKSk7CiAJfQogCityZXBsYXlfb3V0 OgogICAgICAgaWYgKHJlY29yZF9nZXRfc2lnKQogCXsKIAkgIHN0YXR1cy0+ dmFsdWUuc2lnID0gVEFSR0VUX1NJR05BTF9JTlQ7Cg== ------=_Part_2543_14094046.1224571894936--