From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20312 invoked by alias); 22 Oct 2008 00:39:25 -0000 Received: (qmail 20299 invoked by uid 22791); 22 Oct 2008 00:39:24 -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; Wed, 22 Oct 2008 00:38:47 +0000 Received: by ti-out-0910.google.com with SMTP id d10so1330443tib.12 for ; Tue, 21 Oct 2008 17:38:44 -0700 (PDT) Received: by 10.110.5.14 with SMTP id 14mr6415608tie.58.1224635924124; Tue, 21 Oct 2008 17:38:44 -0700 (PDT) Received: by 10.110.42.9 with HTTP; Tue, 21 Oct 2008 17:38:43 -0700 (PDT) Message-ID: Date: Wed, 22 Oct 2008 00:39:00 -0000 From: teawater To: "Michael Snyder" Subject: Re: [reverse/record] adjust_pc_after_break in reverse execution mode? Cc: "Pedro Alves" , "gdb-patches@sourceware.org" In-Reply-To: <48FE1FE0.7040803@vmware.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_21653_7617282.1224635924034" References: <200810180210.16346.pedro@codesourcery.com> <48FCC413.3040506@vmware.com> <200810210121.07914.pedro@codesourcery.com> <48FE1FE0.7040803@vmware.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/msg00527.txt.bz2 ------=_Part_21653_7617282.1224635924034 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Content-length: 1820 I see. I make a patch for it. 2008-10-21 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. Thanks, Hui On Wed, Oct 22, 2008 at 02:30, Michael Snyder wrote: > teawater wrote: >> >> Sorry I send too much Email. I found that: >> >> if (singlestep_breakpoints_inserted_p >> || !ptid_equal (ecs->ptid, inferior_ptid) >> || !currently_stepping (ecs->event_thread) >> || ecs->event_thread->prev_pc == breakpoint_pc) >> regcache_write_pc (regcache, breakpoint_pc); >> >> Before write_pc, there are a lot of thing to check. Do we need to >> check it in record_wait? >> If so, it actually useless cause it will be set back in >> adjust_pc_after_break? >> Maybe we can let adjust_pc_after_break disable in replay mode. >> >> How do you think? > > I think we should leave adjust_pc_after_break alone, > and change record_wait so that it adjusts the pc by > adding decr_pc_after_break(gdbarch) when appropriate. > > Whenever possible, gdb should not need to know the difference > between replay and live debugging. This keeps things simple, > and preserves modularity. > > Of course, you don't have access to the "ecs" object, which > is local to infrun. But you do know whether or not gdb is > stepping. And (for now) you know that there is only one > thread, so you can (for now) ignore the thread id (ptid). > > The value of "step" that was passed to record_resume > came from "currently_stepping", so you should be able > to use that. > > Something close to the patch that Pedro posted should work... > > > > ------=_Part_21653_7617282.1224635924034 Content-Type: text/plain; name=record_wait_breakpoint.txt Content-Transfer-Encoding: base64 X-Attachment-Id: f_fml8juia0 Content-Disposition: attachment; filename=record_wait_breakpoint.txt Content-length: 3904 LS0tIGEvcmVjb3JkLmMKKysrIGIvcmVjb3JkLmMKQEAgLTQ5Nyw2ICs0OTcs MzEgQEAgcmVjb3JkX3dhaXQgKHB0aWRfdCBwdGlkLCBzdHJ1Y3QgdGFyZ2V0 XwogICAgICAgaW50IGNvbnRpbnVlX2ZsYWcgPSAxOwogICAgICAgaW50IGZp cnN0X3JlY29yZF9lbmQgPSAxOwogICAgICAgc3RydWN0IGNsZWFudXAgKm9s ZF9jbGVhbnVwcyA9IG1ha2VfY2xlYW51cCAocmVjb3JkX3dhaXRfY2xlYW51 cHMsIDApOworICAgICAgQ09SRV9BRERSIHRtcF9wYzsKKworICAgICAgLyog Q2hlY2sgYnJlYWtwb2ludCB3aGVuIGZvcndhcmQgZXhlY3V0ZS4gICovCisg ICAgICBpZiAoZXhlY3V0aW9uX2RpcmVjdGlvbiA9PSBFWEVDX0ZPUldBUkQp CisJeworCSAgdG1wX3BjID0gcmVnY2FjaGVfcmVhZF9wYyAocmVnY2FjaGUp OworCSAgaWYgKGJyZWFrcG9pbnRfaW5zZXJ0ZWRfaGVyZV9wICh0bXBfcGMp KQorCSAgICB7CisJICAgICAgaWYgKHJlY29yZF9kZWJ1ZykKKwkJeworCQkg IGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywKKwkJCQkgICAgICAi UHJvY2VzcyByZWNvcmQ6IGJyZWFrIGF0IDB4JXMuXG4iLAorCQkJCSAgICAg IHBhZGRyX256ICh0bXBfcGMpKTsKKwkJfQorCSAgICAgIGlmIChnZGJhcmNo X2RlY3JfcGNfYWZ0ZXJfYnJlYWsgKGdldF9yZWdjYWNoZV9hcmNoIChyZWdj YWNoZSkpCisJCSAgJiYgIXJlY29yZF9yZXN1bWVfc3RlcCkKKwkJeworCQkg IHJlZ2NhY2hlX3dyaXRlX3BjIChyZWdjYWNoZSwKKwkJCQkgICAgIHRtcF9w YyArCisJCQkJICAgICBnZGJhcmNoX2RlY3JfcGNfYWZ0ZXJfYnJlYWsKKwkJ CQkgICAgIChnZXRfcmVnY2FjaGVfYXJjaCAocmVnY2FjaGUpKSk7CisJCX0K KwkgICAgICBnb3RvIHJlcGxheV9vdXQ7CisJICAgIH0KKwl9CiAKICAgICAg IHJlY29yZF9nZXRfc2lnID0gMDsKICAgICAgIGFjdC5zYV9oYW5kbGVyID0g cmVjb3JkX3NpZ19oYW5kbGVyOwpAQCAtNTg4LDEwICs2MTMsNiBAQCByZWNv cmRfd2FpdCAocHRpZF90IHB0aWQsIHN0cnVjdCB0YXJnZXRfCiAJICAgIH0K IAkgIGVsc2UKIAkgICAgewotCSAgICAgIENPUkVfQUREUiB0bXBfcGM7Ci0J ICAgICAgc3RydWN0IGJwX2xvY2F0aW9uICpibDsKLQkgICAgICBzdHJ1Y3Qg YnJlYWtwb2ludCAqYjsKLQogCSAgICAgIGlmIChyZWNvcmRfZGVidWcgPiAx KQogCQl7CiAJCSAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLApA QCAtNjMyLDM1ICs2NTMsMjUgQEAgcmVjb3JkX3dhaXQgKHB0aWRfdCBwdGlk LCBzdHJ1Y3QgdGFyZ2V0XwogCQkgICAgfQogCiAJCSAgLyogY2hlY2sgYnJl YWtwb2ludCAqLwotCQkgIHRtcF9wYyA9IHJlYWRfcGMgKCk7Ci0JCSAgZm9y IChibCA9IGJwX2xvY2F0aW9uX2NoYWluOyBibDsgYmwgPSBibC0+Z2xvYmFs X25leHQpCisJCSAgdG1wX3BjID0gcmVnY2FjaGVfcmVhZF9wYyAocmVnY2Fj aGUpOworCQkgIGlmIChicmVha3BvaW50X2luc2VydGVkX2hlcmVfcCAodG1w X3BjKSkKIAkJICAgIHsKLQkJICAgICAgYiA9IGJsLT5vd25lcjsKLQkJICAg ICAgZ2RiX2Fzc2VydCAoYik7Ci0JCSAgICAgIGlmIChiLT5lbmFibGVfc3Rh dGUgIT0gYnBfZW5hYmxlZAotCQkJICAmJiBiLT5lbmFibGVfc3RhdGUgIT0g YnBfcGVybWFuZW50KQotCQkJY29udGludWU7Ci0KLQkJICAgICAgaWYgKGIt PnR5cGUgPT0gYnBfd2F0Y2hwb2ludCB8fCBiLT50eXBlID09IGJwX2NhdGNo X2ZvcmsKLQkJCSAgfHwgYi0+dHlwZSA9PSBicF9jYXRjaF92Zm9yawotCQkJ ICB8fCBiLT50eXBlID09IGJwX2NhdGNoX2V4ZWMKLQkJCSAgfHwgYi0+dHlw ZSA9PSBicF9oYXJkd2FyZV93YXRjaHBvaW50Ci0JCQkgIHx8IGItPnR5cGUg PT0gYnBfcmVhZF93YXRjaHBvaW50Ci0JCQkgIHx8IGItPnR5cGUgPT0gYnBf YWNjZXNzX3dhdGNocG9pbnQpCisJCSAgICAgIGlmIChyZWNvcmRfZGVidWcp CiAJCQl7Ci0JCQkgIGNvbnRpbnVlOworCQkJICBmcHJpbnRmX3VuZmlsdGVy ZWQgKGdkYl9zdGRsb2csCisJCQkJCSAgICAgICJQcm9jZXNzIHJlY29yZDog YnJlYWsgYXQgMHglcy5cbiIsCisJCQkJCSAgICAgIHBhZGRyX256ICh0bXBf cGMpKTsKIAkJCX0KLQkJICAgICAgaWYgKGJsLT5hZGRyZXNzID09IHRtcF9w YykKKwkJICAgICAgaWYgKGdkYmFyY2hfZGVjcl9wY19hZnRlcl9icmVhayAo Z2V0X3JlZ2NhY2hlX2FyY2ggKHJlZ2NhY2hlKSkKKwkJCSAgJiYgZXhlY3V0 aW9uX2RpcmVjdGlvbiA9PSBFWEVDX0ZPUldBUkQKKwkJCSAgJiYgIXJlY29y ZF9yZXN1bWVfc3RlcCkKIAkJCXsKLQkJCSAgaWYgKHJlY29yZF9kZWJ1ZykK LQkJCSAgICB7Ci0JCQkgICAgICBmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9z dGRsb2csCi0JCQkJCQkgICJQcm9jZXNzIHJlY29yZDogYnJlYWsgYXQgMHgl cy5cbiIsCi0JCQkJCQkgIHBhZGRyX256ICh0bXBfcGMpKTsKLQkJCSAgICB9 Ci0JCQkgIGNvbnRpbnVlX2ZsYWcgPSAwOwotCQkJICBicmVhazsKKwkJCSAg cmVnY2FjaGVfd3JpdGVfcGMgKHJlZ2NhY2hlLAorCQkJCQkgICAgIHRtcF9w YyArCisJCQkJCSAgICAgZ2RiYXJjaF9kZWNyX3BjX2FmdGVyX2JyZWFrCisJ CQkJCSAgICAgKGdldF9yZWdjYWNoZV9hcmNoIChyZWdjYWNoZSkpKTsKIAkJ CX0KKwkJICAgICAgY29udGludWVfZmxhZyA9IDA7CiAJCSAgICB9CiAJCX0K IAkgICAgICBpZiAoZXhlY3V0aW9uX2RpcmVjdGlvbiA9PSBFWEVDX1JFVkVS U0UpCkBAIC02OTEsNiArNzAyLDcgQEAgbmV4dDoKIAkgIHBlcnJvcl93aXRo X25hbWUgKF8oIlByb2Nlc3MgcmVjb3JkOiBzaWdhY3Rpb24iKSk7CiAJfQog CityZXBsYXlfb3V0OgogICAgICAgaWYgKHJlY29yZF9nZXRfc2lnKQogCXsK IAkgIHN0YXR1cy0+dmFsdWUuc2lnID0gVEFSR0VUX1NJR05BTF9JTlQ7Cg== ------=_Part_21653_7617282.1224635924034--