From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28479 invoked by alias); 24 Nov 2009 06:16:06 -0000 Received: (qmail 28467 invoked by uid 22791); 24 Nov 2009 06:16:05 -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-pw0-f49.google.com (HELO mail-pw0-f49.google.com) (209.85.160.49) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 24 Nov 2009 06:15:59 +0000 Received: by pwj21 with SMTP id 21so4934011pwj.8 for ; Mon, 23 Nov 2009 22:15:58 -0800 (PST) MIME-Version: 1.0 Received: by 10.142.61.35 with SMTP id j35mr646539wfa.52.1259043358205; Mon, 23 Nov 2009 22:15:58 -0800 (PST) In-Reply-To: References: <20090928160728.GB9003@adacore.com> <4AF07CF2.1050902@vmware.com> From: Hui Zhu Date: Tue, 24 Nov 2009 06:16:00 -0000 Message-ID: Subject: Re: [RFA] let record_resume fail immediately on error To: "gdb-patches@sourceware.org" Cc: Michael Snyder , Joel Brobecker , Tom Tromey Content-Type: multipart/mixed; boundary=001636e0b6201f663f047917e0ca 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-11/txt/msg00520.txt.bz2 --001636e0b6201f663f047917e0ca Content-Type: text/plain; charset=ISO-8859-1 Content-length: 3393 Hi guys, I update this patch follow cvs-head and do a small change about the testsuite. Please help me review it. Thanks, Hui 2009-11-24 Hui Zhu * record.c (do_record_message): Add new argument "catch". (record_resume_error): Deleted. (record_resume): Call do_record_message with catch is 1. (record_wait): Deleted record_resume_error. Set status when do_record_message need stop the inferior. 2009-11-24 Hui Zhu * gdb.reverse/sigall-reverse.exp: Adjust. --- record.c | 35 +++++++++++-------------------- testsuite/gdb.reverse/sigall-reverse.exp | 2 - 2 files changed, 14 insertions(+), 23 deletions(-) --- a/record.c +++ b/record.c @@ -650,13 +650,17 @@ record_message (void *args) static int do_record_message (struct regcache *regcache, - enum target_signal signal) + enum target_signal signal, int catch) { struct record_message_args args; args.regcache = regcache; args.signal = signal; - return catch_errors (record_message, &args, NULL, RETURN_MASK_ALL); + + if (catch) + return catch_errors (record_message, &args, NULL, RETURN_MASK_ALL); + + return record_message (&args); } /* Set to 1 if record_store_registers and record_xfer_partial @@ -983,7 +987,6 @@ record_close (int quitting) } static int record_resume_step = 0; -static int record_resume_error; /* "to_resume" target method. Resume the process record target. */ @@ -995,15 +998,7 @@ record_resume (struct target_ops *ops, p if (!RECORD_IS_REPLAY) { - if (do_record_message (get_current_regcache (), signal)) - { - record_resume_error = 0; - } - else - { - record_resume_error = 1; - return; - } + do_record_message (get_current_regcache (), signal, 0); record_beneath_to_resume (record_beneath_to_resume_ops, ptid, 1, signal); } @@ -1067,14 +1062,6 @@ record_wait (struct target_ops *ops, if (!RECORD_IS_REPLAY && ops != &record_core_ops) { - if (record_resume_error) - { - /* If record_resume get error, return directly. */ - status->kind = TARGET_WAITKIND_STOPPED; - status->value.sig = TARGET_SIGNAL_ABRT; - return inferior_ptid; - } - if (record_resume_step) { /* This is a single step. */ @@ -1130,8 +1117,12 @@ record_wait (struct target_ops *ops, { /* This must be a single-step trap. Record the insn and issue another step. */ - if (!do_record_message (regcache, TARGET_SIGNAL_0)) - break; + if (!do_record_message (regcache, TARGET_SIGNAL_0, 1)) + { + status->kind = TARGET_WAITKIND_STOPPED; + status->value.sig = TARGET_SIGNAL_0; + break; + } record_beneath_to_resume (record_beneath_to_resume_ops, ptid, 1, --- a/testsuite/gdb.reverse/sigall-reverse.exp +++ b/testsuite/gdb.reverse/sigall-reverse.exp @@ -262,7 +262,7 @@ gdb_test "continue" \ "get signal TERM" gdb_test "continue" "Breakpoint.*handle_TERM.*" "send signal TERM" -gdb_test "continue" "Program received .*" "continue to sigall exit" \ +gdb_test "continue" "\[process \[0-9\]+ .*" "continue to sigall exit" \ "The next instruction is syscall exit_group.* program...y. or n. " \ "yes" --001636e0b6201f663f047917e0ca Content-Type: text/plain; charset=US-ASCII; name="prec-fix-error-handler.txt" Content-Disposition: attachment; filename="prec-fix-error-handler.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g2ea5cyo0 Content-length: 3921 LS0tCiByZWNvcmQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICAzNSArKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tCiB0ZXN0 c3VpdGUvZ2RiLnJldmVyc2Uvc2lnYWxsLXJldmVyc2UuZXhwIHwgICAgMiAt CiAyIGZpbGVzIGNoYW5nZWQsIDE0IGluc2VydGlvbnMoKyksIDIzIGRlbGV0 aW9ucygtKQoKLS0tIGEvcmVjb3JkLmMKKysrIGIvcmVjb3JkLmMKQEAgLTY1 MCwxMyArNjUwLDE3IEBAIHJlY29yZF9tZXNzYWdlICh2b2lkICphcmdzKQog CiBzdGF0aWMgaW50CiBkb19yZWNvcmRfbWVzc2FnZSAoc3RydWN0IHJlZ2Nh Y2hlICpyZWdjYWNoZSwKLQkJICAgZW51bSB0YXJnZXRfc2lnbmFsIHNpZ25h bCkKKwkJICAgZW51bSB0YXJnZXRfc2lnbmFsIHNpZ25hbCwgaW50IGNhdGNo KQogewogICBzdHJ1Y3QgcmVjb3JkX21lc3NhZ2VfYXJncyBhcmdzOwogCiAg IGFyZ3MucmVnY2FjaGUgPSByZWdjYWNoZTsKICAgYXJncy5zaWduYWwgPSBz aWduYWw7Ci0gIHJldHVybiBjYXRjaF9lcnJvcnMgKHJlY29yZF9tZXNzYWdl LCAmYXJncywgTlVMTCwgUkVUVVJOX01BU0tfQUxMKTsKKworICBpZiAoY2F0 Y2gpCisgICAgcmV0dXJuIGNhdGNoX2Vycm9ycyAocmVjb3JkX21lc3NhZ2Us ICZhcmdzLCBOVUxMLCBSRVRVUk5fTUFTS19BTEwpOworCisgIHJldHVybiBy ZWNvcmRfbWVzc2FnZSAoJmFyZ3MpOwogfQogCiAvKiBTZXQgdG8gMSBpZiBy ZWNvcmRfc3RvcmVfcmVnaXN0ZXJzIGFuZCByZWNvcmRfeGZlcl9wYXJ0aWFs CkBAIC05ODMsNyArOTg3LDYgQEAgcmVjb3JkX2Nsb3NlIChpbnQgcXVpdHRp bmcpCiB9CiAKIHN0YXRpYyBpbnQgcmVjb3JkX3Jlc3VtZV9zdGVwID0gMDsK LXN0YXRpYyBpbnQgcmVjb3JkX3Jlc3VtZV9lcnJvcjsKIAogLyogInRvX3Jl c3VtZSIgdGFyZ2V0IG1ldGhvZC4gIFJlc3VtZSB0aGUgcHJvY2VzcyByZWNv cmQgdGFyZ2V0LiAgKi8KIApAQCAtOTk1LDE1ICs5OTgsNyBAQCByZWNvcmRf cmVzdW1lIChzdHJ1Y3QgdGFyZ2V0X29wcyAqb3BzLCBwCiAKICAgaWYgKCFS RUNPUkRfSVNfUkVQTEFZKQogICAgIHsKLSAgICAgIGlmIChkb19yZWNvcmRf bWVzc2FnZSAoZ2V0X2N1cnJlbnRfcmVnY2FjaGUgKCksIHNpZ25hbCkpCi0g ICAgICAgIHsKLSAgICAgICAgICByZWNvcmRfcmVzdW1lX2Vycm9yID0gMDsK LSAgICAgICAgfQotICAgICAgZWxzZQotICAgICAgICB7Ci0gICAgICAgICAg cmVjb3JkX3Jlc3VtZV9lcnJvciA9IDE7Ci0gICAgICAgICAgcmV0dXJuOwot ICAgICAgICB9CisgICAgICBkb19yZWNvcmRfbWVzc2FnZSAoZ2V0X2N1cnJl bnRfcmVnY2FjaGUgKCksIHNpZ25hbCwgMCk7CiAgICAgICByZWNvcmRfYmVu ZWF0aF90b19yZXN1bWUgKHJlY29yZF9iZW5lYXRoX3RvX3Jlc3VtZV9vcHMs IHB0aWQsIDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNp Z25hbCk7CiAgICAgfQpAQCAtMTA2NywxNCArMTA2Miw2IEBAIHJlY29yZF93 YWl0IChzdHJ1Y3QgdGFyZ2V0X29wcyAqb3BzLAogCiAgIGlmICghUkVDT1JE X0lTX1JFUExBWSAmJiBvcHMgIT0gJnJlY29yZF9jb3JlX29wcykKICAgICB7 Ci0gICAgICBpZiAocmVjb3JkX3Jlc3VtZV9lcnJvcikKLQl7Ci0JICAvKiBJ ZiByZWNvcmRfcmVzdW1lIGdldCBlcnJvciwgcmV0dXJuIGRpcmVjdGx5LiAg Ki8KLQkgIHN0YXR1cy0+a2luZCA9IFRBUkdFVF9XQUlUS0lORF9TVE9QUEVE OwotCSAgc3RhdHVzLT52YWx1ZS5zaWcgPSBUQVJHRVRfU0lHTkFMX0FCUlQ7 Ci0JICByZXR1cm4gaW5mZXJpb3JfcHRpZDsKLQl9Ci0KICAgICAgIGlmIChy ZWNvcmRfcmVzdW1lX3N0ZXApCiAJewogCSAgLyogVGhpcyBpcyBhIHNpbmds ZSBzdGVwLiAgKi8KQEAgLTExMzAsOCArMTExNywxMiBAQCByZWNvcmRfd2Fp dCAoc3RydWN0IHRhcmdldF9vcHMgKm9wcywKIAkJICAgIHsKIAkJICAgICAg LyogVGhpcyBtdXN0IGJlIGEgc2luZ2xlLXN0ZXAgdHJhcC4gIFJlY29yZCB0 aGUKIAkJICAgICAgICAgaW5zbiBhbmQgaXNzdWUgYW5vdGhlciBzdGVwLiAg Ki8KLQkJICAgICAgaWYgKCFkb19yZWNvcmRfbWVzc2FnZSAocmVnY2FjaGUs IFRBUkdFVF9TSUdOQUxfMCkpCi0JCQlicmVhazsKKwkJICAgICAgaWYgKCFk b19yZWNvcmRfbWVzc2FnZSAocmVnY2FjaGUsIFRBUkdFVF9TSUdOQUxfMCwg MSkpCisgIAkJCXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1 cy0+a2luZCA9IFRBUkdFVF9XQUlUS0lORF9TVE9QUEVEOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RhdHVzLT52YWx1ZS5zaWcgPSBUQVJHRVRf U0lHTkFMXzA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK KyAgCQkJfQogCiAJCSAgICAgIHJlY29yZF9iZW5lYXRoX3RvX3Jlc3VtZSAo cmVjb3JkX2JlbmVhdGhfdG9fcmVzdW1lX29wcywKIAkJCQkJCXB0aWQsIDEs Ci0tLSBhL3Rlc3RzdWl0ZS9nZGIucmV2ZXJzZS9zaWdhbGwtcmV2ZXJzZS5l eHAKKysrIGIvdGVzdHN1aXRlL2dkYi5yZXZlcnNlL3NpZ2FsbC1yZXZlcnNl LmV4cApAQCAtMjYyLDcgKzI2Miw3IEBAIGdkYl90ZXN0ICJjb250aW51ZSIg XAogICAgICJnZXQgc2lnbmFsIFRFUk0iCiBnZGJfdGVzdCAiY29udGludWUi ICJCcmVha3BvaW50LipoYW5kbGVfVEVSTS4qIiAic2VuZCBzaWduYWwgVEVS TSIKIAotZ2RiX3Rlc3QgImNvbnRpbnVlIiAiUHJvZ3JhbSByZWNlaXZlZCAu KiIgImNvbnRpbnVlIHRvIHNpZ2FsbCBleGl0IiBcCitnZGJfdGVzdCAiY29u dGludWUiICJcW3Byb2Nlc3MgXFswLTlcXSsgLioiICJjb250aW51ZSB0byBz aWdhbGwgZXhpdCIgXAogICAgICJUaGUgbmV4dCBpbnN0cnVjdGlvbiBpcyBz eXNjYWxsIGV4aXRfZ3JvdXAuKiBwcm9ncmFtLi4ueS4gb3Igbi4gIiBcCiAg ICAgInllcyIKIAo= --001636e0b6201f663f047917e0ca--