From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29903 invoked by alias); 21 May 2018 08:53:12 -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 29888 invoked by uid 89); 21 May 2018 08:53:11 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-20.9 required=5.0 tests=BAYES_00,BODY_8BITS,FROM_EXCESS_BASE64,GARBLED_BODY,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_LAZY_DOMAIN_SECURITY,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.2 spammy=bracket X-HELO: m176117.mail.qiye.163.com Received: from m176117.mail.qiye.163.com (HELO m176117.mail.qiye.163.com) (59.111.176.117) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 21 May 2018 08:53:09 +0000 Received: from [192.168.0.105] (unknown [59.59.164.76]) by m176117.mail.qiye.163.com (HMail) with ESMTPSA id 359F6781CC4 for ; Mon, 21 May 2018 16:52:56 +0800 (CST) To: gdb-patches@sourceware.org From: =?UTF-8?B?5by15L+K6Iqd?= Subject: support C/C++ identifiers named with non-ASCII characters Message-ID: <9418d4f0-f22a-c587-cc34-2fa67afbd028@zjz.name> Date: Mon, 21 May 2018 09:54:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:55.0) Gecko/20100101 Thunderbird/55.0 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------2F412D02F9EF84FCBAAB16CE" X-HM-Spam-Status: e1ktWUFJV1koWUFPN1dZCBgUCR5ZQUtVS1dZCQ4XHghZQVkyNS06NzI*QU tVS1kG X-HM-Sender-Digest: e1kSHx4VD1lBWUc6MT46DAw*VjojHSo3E00qKikJDSsaCQFVSlVKTklN Q0JJTExNSUJMVTMWGhIXVQERATsBEQFVFRoWHkVZV1kMHhlZQR0aFwgeV1kIAVlBTUJLSzdXWRIL WUFZTkJVTkJVSk1PVUxNWQY+ X-HM-Tid: 0a6381e6cb2d926bkuws359f6781cc4 X-SW-Source: 2018-05/txt/msg00460.txt.bz2 This is a multi-part message in MIME format. --------------2F412D02F9EF84FCBAAB16CE Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-length: 1080 Hello, team. This patch fixes the bug at https://sourceware.org/bugzilla/show_bug.cgi?id=22973 . Here is how to test the patch: Step 1. If you are using Clang or any other C compilers that have implemented support for Unicode identifiers, then create a C file with the following content: int main(int 參量, char* 參[]) { struct 集 { int 數[3]; } 集 = {100, 200, 300}; int 序 = 2; return 0; } Or if you are using GCC, create a C file with the following content as a workaround(GCC still doesn't actually support Unicode identifiers in 2018, which is a pity): int main(int \u53C3\u91CF, char* \u53C3[]) { struct \u96C6 { int \u6578[3]; } \u96C6 = {100, 200, 300}; int \u5E8F = 2; return 0; } Step 2. Compile the C file. Step 3. Run GDB for the compiled executable, add a breakpoint in "return 0". Step 4. Run until the breakpoint. Step 5. Test the following commands to see if they work: p 參量 p 參 p 集 p 集.數 p 集.數[序] Thanks for your review. --------------2F412D02F9EF84FCBAAB16CE Content-Type: text/plain; charset=UTF-8; name="ChangeLog" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="ChangeLog" Content-length: 314 MjAxOC0wNS0yMCAg5by15L+K6IqdICA8emp6QHpqei5uYW1lPgoKCSogZ2Ri L2MtZXhwLnkgKGlzX2lkZW50aWZpZXJfc2VwYXJhdG9yKTogTmV3IGZ1bmN0 aW9uLgoJKGxleF9vbmVfdG9rZW4pOiBOb3cgcmVjb2duaXplcyBDIGFuZCBD KysgVW5pY29kZSBpZGVudGlmaWVycyBieSB1c2luZwoJaXNfaWRlbnRpZmll cl9zZXBhcmF0b3IgdG8gZGV0ZXJtaW5lIHRoZSBib3VuZGFyeSBvZiBhIHRv a2VuLgo= --------------2F412D02F9EF84FCBAAB16CE Content-Type: text/plain; charset=UTF-8; name="diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="diff" Content-length: 3998 ZGlmZiAtLWdpdCBhL2dkYi9jLWV4cC55IGIvZ2RiL2MtZXhwLnkKaW5kZXgg NWUxMGQyYTNiNC4uYjBkZDZjN2NhZiAxMDA2NDQKLS0tIGEvZ2RiL2MtZXhw LnkKKysrIGIvZ2RiL2MtZXhwLnkKQEAgLTczLDYgKzczLDggQEAgdm9pZCB5 eWVycm9yIChjb25zdCBjaGFyICopOwogCiBzdGF0aWMgaW50IHR5cGVfYWdn cmVnYXRlX3AgKHN0cnVjdCB0eXBlICopOwogCitzdGF0aWMgYm9vbCBpc19p ZGVudGlmaWVyX3NlcGFyYXRvciAoY2hhcik7CisKICV9CiAKIC8qIEFsdGhv dWdoIHRoZSB5YWNjICJ2YWx1ZSIgb2YgYW4gZXhwcmVzc2lvbiBpcyBub3Qg dXNlZCwKQEAgLTE3MTgsNiArMTcyMCw1MyBAQCB0eXBlX2FnZ3JlZ2F0ZV9w IChzdHJ1Y3QgdHlwZSAqdHlwZSkKIAkgICAgICAmJiBUWVBFX0RFQ0xBUkVE X0NMQVNTICh0eXBlKSkpOwogfQogCisvKiBXaGlsZSBpdGVyYXRpbmcgYWxs IHRoZSBjaGFyYWN0ZXJzIGluIGFuIGlkZW50aWZpZXIsIGFuIGlkZW50aWZp ZXIgc2VwYXJhdG9yCisgICBpcyBhIGJvdW5kYXJ5IHdoZXJlIHdlIGtub3cg dGhlIGl0ZXJhdGlvbiBpcyBkb25lLiAqLworCitzdGF0aWMgYm9vbAoraXNf aWRlbnRpZmllcl9zZXBhcmF0b3IgKGNoYXIgYykKK3sKKyAgc3dpdGNoIChj KQorICAgIHsKKyAgICBjYXNlICcgJzoKKyAgICBjYXNlICdcdCc6CisgICAg Y2FzZSAnXG4nOgorICAgIGNhc2UgJ1wwJzoKKyAgICBjYXNlICdcJyc6Cisg ICAgY2FzZSAnIic6CisgICAgY2FzZSAnXFwnOgorICAgIGNhc2UgJygnOgor ICAgIGNhc2UgJyknOgorICAgIGNhc2UgJywnOgorICAgIGNhc2UgJy4nOgor ICAgIGNhc2UgJysnOgorICAgIGNhc2UgJy0nOgorICAgIGNhc2UgJyonOgor ICAgIGNhc2UgJy8nOgorICAgIGNhc2UgJ3wnOgorICAgIGNhc2UgJyYnOgor ICAgIGNhc2UgJ14nOgorICAgIGNhc2UgJ34nOgorICAgIGNhc2UgJyEnOgor ICAgIGNhc2UgJ0AnOgorICAgIGNhc2UgJ1snOgorICAgIGNhc2UgJ10nOgor ICAgIC8qICc8JyBzaG91bGQgbm90IGJlIGEgdG9rZW4gc2VwYXJhdG9yLCBi ZWNhdXNlIGl0IGNhbiBiZSBhbiBvcGVuIGFuZ2xlCisgICAgICAgYnJhY2tl dCBmb2xsb3dlZCBieSBhIG5lc3RlZCB0ZW1wbGF0ZSBpZGVudGlmaWVyIGlu IEMrKy4gKi8KKyAgICBjYXNlICc+JzoKKyAgICBjYXNlICc/JzoKKyAgICBj YXNlICc6JzoKKyAgICBjYXNlICc9JzoKKyAgICBjYXNlICd7JzoKKyAgICBj YXNlICd9JzoKKyAgICBjYXNlICc7JzoKKyAgICAgIHJldHVybiB0cnVlOwor ICAgIGRlZmF1bHQ6CisgICAgICBicmVhazsKKyAgICB9CisgIHJldHVybiBm YWxzZTsKK30KKwogLyogVmFsaWRhdGUgYSBwYXJhbWV0ZXIgdHlwZWxpc3Qu ICAqLwogCiBzdGF0aWMgdm9pZApAQCAtMTkyMCw3ICsxOTY5LDcgQEAgcGFy c2VfbnVtYmVyIChzdHJ1Y3QgcGFyc2VyX3N0YXRlICpwYXJfc3RhdGUsCiAJ IEZJWE1FOiBUaGlzIGNoZWNrIGlzIHdyb25nOyBmb3IgZXhhbXBsZSBpdCBk b2Vzbid0IGZpbmQgb3ZlcmZsb3cKIAkgb24gMHgxMjM0NTY3ODkgd2hlbiBM T05HRVNUIGlzIDMyIGJpdHMuICAqLwogICAgICAgaWYgKGMgIT0gJ2wnICYm IGMgIT0gJ3UnICYmIG4gIT0gMCkKLQl7CQorCXsKIAkgIGlmICgodW5zaWdu ZWRfcCAmJiAoVUxPTkdFU1QpIHByZXZuID49IChVTE9OR0VTVCkgbikpCiAJ ICAgIGVycm9yIChfKCJOdW1lcmljIGNvbnN0YW50IHRvbyBsYXJnZS4iKSk7 CiAJfQpAQCAtMjc0MSwxNiArMjc5MCwxMyBAQCBsZXhfb25lX3Rva2VuIChz dHJ1Y3QgcGFyc2VyX3N0YXRlICpwYXJfc3RhdGUsIGJvb2wgKmlzX3F1b3Rl ZF9uYW1lKQogICAgICAgfQogICAgIH0KIAotICBpZiAoIShjID09ICdfJyB8 fCBjID09ICckJwotCXx8IChjID49ICdhJyAmJiBjIDw9ICd6JykgfHwgKGMg Pj0gJ0EnICYmIGMgPD0gJ1onKSkpCisgIGlmIChpc19pZGVudGlmaWVyX3Nl cGFyYXRvcihjKSkKICAgICAvKiBXZSBtdXN0IGhhdmUgY29tZSBhY3Jvc3Mg YSBiYWQgY2hhcmFjdGVyIChlLmcuICc7JykuICAqLwogICAgIGVycm9yIChf KCJJbnZhbGlkIGNoYXJhY3RlciAnJWMnIGluIGV4cHJlc3Npb24uIiksIGMp OwogCiAgIC8qIEl0J3MgYSBuYW1lLiAgU2VlIGhvdyBsb25nIGl0IGlzLiAg Ki8KICAgbmFtZWxlbiA9IDA7Ci0gIGZvciAoYyA9IHRva3N0YXJ0W25hbWVs ZW5dOwotICAgICAgIChjID09ICdfJyB8fCBjID09ICckJyB8fCAoYyA+PSAn MCcgJiYgYyA8PSAnOScpCi0JfHwgKGMgPj0gJ2EnICYmIGMgPD0gJ3onKSB8 fCAoYyA+PSAnQScgJiYgYyA8PSAnWicpIHx8IGMgPT0gJzwnKTspCisgIGZv ciAoYyA9IHRva3N0YXJ0W25hbWVsZW5dOyAhaXNfaWRlbnRpZmllcl9zZXBh cmF0b3IoYyk7KQogICAgIHsKICAgICAgIC8qIFRlbXBsYXRlIHBhcmFtZXRl ciBsaXN0cyBhcmUgcGFydCBvZiB0aGUgbmFtZS4KIAkgRklYTUU6IFRoaXMg bWlzaGFuZGxlcyBgcHJpbnQgJGE8NCYmJGE+MycuICAqLwpAQCAtMjkzMiw3 ICsyOTc4LDcgQEAgY2xhc3NpZnlfbmFtZSAoc3RydWN0IHBhcnNlcl9zdGF0 ZSAqcGFyX3N0YXRlLCBjb25zdCBzdHJ1Y3QgYmxvY2sgKmJsb2NrLAogCSBm aWxlbmFtZS4gIEhvd2V2ZXIsIGlmIHRoZSBuYW1lIHdhcyBxdW90ZWQsIHRo ZW4gaXQgaXMgYmV0dGVyCiAJIHRvIGNoZWNrIGZvciBhIGZpbGVuYW1lIG9y IGEgYmxvY2ssIHNpbmNlIHRoaXMgaXMgdGhlIG9ubHkKIAkgd2F5IHRoZSB1 c2VyIGhhcyBvZiByZXF1aXJpbmcgdGhlIGV4dGVuc2lvbiB0byBiZSB1c2Vk LiAgKi8KLSAgICAgIGlmICgoaXNfYV9maWVsZF9vZl90aGlzLnR5cGUgPT0g TlVMTCAmJiAhaXNfYWZ0ZXJfc3RydWN0b3ApIAorICAgICAgaWYgKChpc19h X2ZpZWxkX29mX3RoaXMudHlwZSA9PSBOVUxMICYmICFpc19hZnRlcl9zdHJ1 Y3RvcCkKIAkgIHx8IGlzX3F1b3RlZF9uYW1lKQogCXsKIAkgIC8qIFNlZSBp ZiBpdCdzIGEgZmlsZSBuYW1lLiAqLwo= --------------2F412D02F9EF84FCBAAB16CE--