From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 110143 invoked by alias); 4 Jan 2017 00:02:41 -0000 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 Received: (qmail 108768 invoked by uid 89); 4 Jan 2017 00:02:40 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.4 required=5.0 tests=BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_SPAM,SPF_PASS autolearn=no version=3.3.2 spammy=20170104, 2017-01-04, recognised, Hx-languages-length:3733 X-HELO: mail-vk0-f46.google.com Received: from mail-vk0-f46.google.com (HELO mail-vk0-f46.google.com) (209.85.213.46) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 04 Jan 2017 00:02:30 +0000 Received: by mail-vk0-f46.google.com with SMTP id 137so281281308vkl.0 for ; Tue, 03 Jan 2017 16:02:30 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:from:date:message-id:subject :to; bh=Qz8Ifb0/zxGRNfiyOOPSbX6kz28fDlAwODYwBPqzu7M=; b=OoeAN2dUfCeXYcAaN1efkWK5XfxqKzlyuZU14XFWsKxJZAJ8+hhsrOll4VcVNKXgWx UW9HN4IOYiTWh1DSM+S67B7FXqt2pnmfkaJ/rkBiBLhN8CIjXMjdzTILpnqjlsuPyC1Y 5BEVAcDzW9tCP2e81kTUofMw+msHJ1Kvv2b5N+4OsBDTp57LekyiUkxj5p0JCv2ZAo4g fe0rlgLBfMYuvztS3UE+aRHs8bPms45v0mbOuW16ueitRIN0rEjZ6pfjOd+eh/CyFMQ9 wyGpm6H9eebM+F+WPfjY9LwkSww/l3Ul5LGWWwSxW4/Ae6uUWfJMW46N9RsR5o43oEuS EyfA== X-Gm-Message-State: AIkVDXL1mL46fhsXLghMtwpGTfpIbeivZAVyDKbuzVoumT2KISmJjGtKRGChzZ89noiQlZBDW0epwkzZy+XsNw== X-Received: by 10.31.7.200 with SMTP id 191mr23051747vkh.132.1483488148248; Tue, 03 Jan 2017 16:02:28 -0800 (PST) MIME-Version: 1.0 Received: by 10.176.16.7 with HTTP; Tue, 3 Jan 2017 16:02:27 -0800 (PST) From: Iain Buclaw Date: Wed, 04 Jan 2017 00:02:00 -0000 Message-ID: Subject: [PATCH] D: Fix crash when expression debugging To: GDB Patches Content-Type: multipart/mixed; boundary=001a1143d3181dae3405453980e2 X-IsSubscribed: yes X-SW-Source: 2017-01/txt/msg00037.txt.bz2 --001a1143d3181dae3405453980e2 Content-Type: text/plain; charset=UTF-8 Content-length: 1621 This patch fixes a crash found on "p *(type *)0x1234" when using "set debug expression 1". While casting works as expected with expression debugging turned off, this seems to be an indication that I'm infact doing something wrong in the building of the expression. (gdb) print *(int*)(0x0) Dump of expression @ 0x12db320, before conversion to prefix form: Language d, 11 elements, 16 bytes each. Index Opcode Hex Value String Value 0 OP_TYPE 87 W............... 1 20114800 p.2............. 2 OP_TYPE 87 W............... 3 OP_LONG 38 &............... 4 19696640 ..,............. 5 OP_NULL 0 ................ 6 OP_LONG 38 &............... 7 UNOP_CAST 51 3............... 8 20114800 p.2............. 9 UNOP_CAST 51 3............... 10 UNOP_IND 61 =............... Dump of expression @ 0x12db320, after conversion to prefix form: Expression: `*(int *) 0' Language d, 11 elements, 16 bytes each. 0 UNOP_IND 1 UNOP_CAST Type @0x132ed70 (int *) 4 OP_LONG Type @0x12c8c00 (int), value 0 (0x0) 8 Unknown format 9 UNOP_CAST Type @0x3d (Segmentation fault Looks like using UNOP_CAST_TYPE is the right thing to do here, as the TypeExp handler has wrapped the type around a pair of OP_TYPE opcodes. --001a1143d3181dae3405453980e2 Content-Type: text/x-patch; charset=US-ASCII; name="dlang-debug-expr.patch" Content-Disposition: attachment; filename="dlang-debug-expr.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ixi6hacb0 Content-length: 3347 MjAxNy0wMS0wNCAgSWFpbiBCdWNsYXcgIDxpYnVjbGF3QGdkY3Byb2plY3Qu b3JnPgoKZ2RiL0NoYW5nZUxvZzoKCgkqIGQtZXhwLnkgKENhc3RFeHByZXNz aW9uKTogRW1pdCBVTk9QX0NBU1RfVFlQRS4KCmdkYi90ZXN0c3VpdGUvQ2hh bmdlTG9nOgoKCSogZ2RiLmRsYW5nL2RlYnVnLWV4cHIuZXhwOiBOZXcgZmls ZS4KCi0tLQpkaWZmIC0tZ2l0IGEvZ2RiL2QtZXhwLnkgYi9nZGIvZC1leHAu eQppbmRleCAwNzdlNjQ1Li45MWQxNWYyIDEwMDY0NAotLS0gYS9nZGIvZC1l eHAueQorKysgYi9nZGIvZC1leHAueQpAQCAtMzIxLDE1ICszMjEsMTIgQEAg VW5hcnlFeHByZXNzaW9uOgogCiBDYXN0RXhwcmVzc2lvbjoKIAlDQVNUX0tF WVdPUkQgJygnIFR5cGVFeHAgJyknIFVuYXJ5RXhwcmVzc2lvbgotCQl7IHdy aXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIFVOT1BfQ0FTVCk7Ci0JCSAg d3JpdGVfZXhwX2VsdF90eXBlIChwc3RhdGUsICQzKTsKLQkJICB3cml0ZV9l eHBfZWx0X29wY29kZSAocHN0YXRlLCBVTk9QX0NBU1QpOyB9CisJCXsgd3Jp dGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgVU5PUF9DQVNUX1RZUEUpOyB9 CiAJLyogQyBzdHlsZSBjYXN0IGlzIGlsbGVnYWwgRCwgYnV0IGlzIHN0aWxs IHJlY29nbmlzZWQgaW4KIAkgICB0aGUgZ3JhbW1hciwgc28gd2Uga2VlcCB0 aGlzIGFyb3VuZCBmb3IgY29udmVuaWVuY2UuICAqLwogfAknKCcgVHlwZUV4 cCAnKScgVW5hcnlFeHByZXNzaW9uCi0JCXsgd3JpdGVfZXhwX2VsdF9vcGNv ZGUgKHBzdGF0ZSwgVU5PUF9DQVNUKTsKLQkJICB3cml0ZV9leHBfZWx0X3R5 cGUgKHBzdGF0ZSwgJDIpOwotCQkgIHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChw c3RhdGUsIFVOT1BfQ0FTVCk7IH0KKwkJeyB3cml0ZV9leHBfZWx0X29wY29k ZSAocHN0YXRlLCBVTk9QX0NBU1RfVFlQRSk7IH0KKwogOwogCiBQb3dFeHBy ZXNzaW9uOgpkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZGxhbmcv ZGVidWctZXhwci5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5kbGFuZy9kZWJ1 Zy1leHByLmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li4zYmIyYzA5Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZGxhbmcvZGVidWctZXhwci5leHAKQEAgLTAsMCArMSw0MCBAQAorIyBD b3B5cmlnaHQgMjAxNyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K KworIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1 Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl aXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5 IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3 aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3Lmdu dS5vcmcvbGljZW5zZXMvPi4KKworIyBUZXN0ICJzZXQgZGVidWcgZXhwciAx IiBvbiBkIGV4cHJlc3Npb25zLgorCitpZiB7IFtza2lwX2RfdGVzdHNdIH0g eyBjb250aW51ZSB9CisKK2dkYl9zdGFydAorZ2RiX3Rlc3Rfbm9fb3V0cHV0 ICJzZXQgbGFuZ3VhZ2UgZCIKK2dkYl90ZXN0X25vX291dHB1dCAic2V0IGRl YnVnIGV4cHJlc3Npb24gMSIKKworIyBUZXN0IHdoZXRoZXIgdGhlIGV4cHJl c3Npb24gZGVidWcgbWFjaGluZXJ5IGFjY2VwdHMgdGhlIGV4cHJlc3Npb24u CisKK3Byb2MgdGVzdF9kZWJ1Z19leHByIHsgY21kIG91dHB1dCB9IHsKKyAg ICBnbG9iYWwgZ2RiX3Byb21wdAorCisgICAgZ2RiX3Rlc3RfbXVsdGlwbGUg JGNtZCAiIiB7CisJLXJlICIuKkludmFsaWQgZXhwcmVzc2lvbi4qXHJcbiRn ZGJfcHJvbXB0ICQiIHsKKwkgICAgZmFpbCAkY21kCisJfQorCS1yZSAiLipc W1xyXG5cXSRvdXRwdXRcclxuJGdkYl9wcm9tcHQgJCIgeworCSAgICBwYXNz ICRjbWQKKwl9CisgICAgfQorfQorCisjIFRoaXMgY2F1c2VkIGdkYiB0byBz ZWdmYXVsdC4KK3Rlc3RfZGVidWdfZXhwciAicHJpbnQgKihpbnQqKSgwKSIg IkNhbm5vdCBhY2Nlc3MgbWVtb3J5IGF0IGFkZHJlc3MgMHgwIgo= --001a1143d3181dae3405453980e2--