From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 69231 invoked by alias); 8 Feb 2016 13:47:43 -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 69195 invoked by uid 89); 8 Feb 2016 13:47:41 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.7 required=5.0 tests=AWL,BAYES_50,MIME_BASE64_BLANKS,RP_MATCHES_RCVD,SPF_PASS autolearn=ham version=3.3.2 spammy=1,3,8, UD:vla-ptype.exp, vlaptypeexp, vla-ptype.exp X-HELO: mga14.intel.com Received: from mga14.intel.com (HELO mga14.intel.com) (192.55.52.115) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 08 Feb 2016 13:47:40 +0000 Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga103.fm.intel.com with ESMTP; 08 Feb 2016 05:47:38 -0800 X-ExtLoop1: 1 Received: from wtedesch-mobl2.ger.corp.intel.com (HELO [172.28.205.68]) ([172.28.205.68]) by orsmga001.jf.intel.com with ESMTP; 08 Feb 2016 05:47:36 -0800 To: qiyaoltc@gmail.com, Joel Brobecker , "Heckel, Bernhard" , Walfred Tedeschi , keven.boell@linux.intel.com Cc: gdb-patches From: Walfred Tedeschi Subject: [PATCH 1/2] fort_dyn_array: add basic fortran dyn array support Message-ID: <56B89C78.9050808@intel.com> Date: Mon, 08 Feb 2016 13:47:00 -0000 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: base64 X-IsSubscribed: yes X-SW-Source: 2016-02/txt/msg00193.txt.bz2 ID4gS2V2ZW4gQm9lbGwgPGtldmVuLmJvZWxsQGxpbnV4LmludGVsLmNvbT4g d3JpdGVzOgogPgogPj4gRm9ydHJhbiBwcm92aWRlIHR5cGVzIHdob3NlIHZh bHVlcyBtYXkgYmUgZHluYW1pY2FsbHkgYWxsb2NhdGVkCiA+PiBvciBhc3Nv Y2lhdGVkIHdpdGggYSB2YXJpYWJsZSB1bmRlciBleHBsaWNpdCBwcm9ncmFt IGNvbnRyb2wuCiA+PiBUaGUgcHVycG9zZSBvZiB0aGlzIGNvbW1pdCBpcwog Pj4gICAqIHRvIHJlYWQgYWxsb2NhdGVkL2Fzc29jaWF0ZWQgRFdBUkYgdGFn cyBhbmQgc3RvcmUgdGhlbSBpbgogPj4gICAgIHRoZSBkeW5hbWljIHByb3Bl cnR5IGxpc3Qgb2YgbWFpbl90eXBlLgogPj4gICAqIGVuYWJsZSBHREIgdG8g cHJpbnQgdGhlIHZhbHVlIG9mIGEgZHluYW1pYyBhcnJheSBpbiBGb3J0cmFu CiA+PiAgICAgaW4gY2FzZSB0aGUgdHlwZSBpcyBhbGxvY2F0ZWQgb3IgYXNz b2NpYXRlZCAocG9pbnRlciB0bwogPj4gICAgIGR5bmFtaWMgYXJyYXkpLgog Pj4KID4+IEV4YW1wbGVzOgogPj4gKGdkYikgcCB2bGFfbm90X2FsbG9jYXRl ZAogPj4gJDEgPSA8bm90IGFsbG9jYXRlZD4KID4+CiA+PiAoZ2RiKSBwIHZs YV9hbGxvY2F0ZWQKID4+ICQxID0gKDEsIDIsIDMpCiA+PgogPj4gKGdkYikg cCB2bGFfcHRyX25vdF9hc3NvY2lhdGVkCiA+PiAkMSA9IDxub3QgYXNzb2Np YXRlZD4KID4+CiA+PiAoZ2RiKSBwIHZsYV9wdHJfYXNzb2NpYXRlZAogPj4g JDEgPSAoMSwgMiwgMykKID4+CiA+PiBBZGQgYmFzaWMgdGVzdCBjb3ZlcmFn ZSBmb3IgbW9zdCBkeW5hbWljIGFycmF5IHVzZS1jYXNlcwogPj4gaW4gRm9y dHJhbi4KID4+IFRoZSBjb21taXQgY29udGFpbnMgdGhlIGZvbGxvd2luZyB0 ZXN0czoKID4+ICAgKiBFbnN1cmUgdGhhdCB2YWx1ZXMgb2YgRm9ydHJhbiBk eW5hbWljIGFycmF5cwogPj4gICAgIGNhbiBiZSBldmFsdWF0ZWQgY29ycmVj dGx5IGluIHZhcmlvdXMgd2F5cyBhbmQgc3RhdGVzLgogPj4gICAqIEVuc3Vy ZSB0aGF0IEZvcnRyYW4gcHJpbWl0aXZlcyBjYW4gYmUgZXZhbHVhdGVkCiA+ PiAgICAgY29ycmVjdGx5IHdoZW4gdXNlZCBhcyBhIGR5bmFtaWMgYXJyYXku CiA+PiAgICogRHluYW1pYyBhcnJheXMgcGFzc2VkIHRvIHN1YnJvdXRpbmVz IGFuZCBoYW5kbGVkCiA+PiAgICAgaW4gZGlmZmVyZW50IHdheXMgaW5zaWRl IHRoZSByb3V0aW5lLgogPj4gICAqIEVuc3VyZSB0aGF0IHRoZSBwdHlwZSBv ZiBkeW5hbWljIGFycmF5cyBpbgogPj4gICAgIEZvcnRyYW4gY2FuIGJlIHBy aW50ZWQgaW4gR0RCIGNvcnJlY3RseS4KID4+ICAgKiBFbnN1cmUgdGhhdCBk eW5hbWljIGFycmF5cyBpbiBkaWZmZXJlbnQgc3RhdGVzCiA+PiAgICAgKGFs bG9jYXRlZC9hc3NvY2lhdGVkKSBjYW4gYmUgZXZhbHVhdGVkLgogPj4gICAq IER5bmFtaWMgYXJyYXlzIHBhc3NlZCB0byBmdW5jdGlvbnMgYW5kIHJldHVy bmVkIGZyb20KID4+ICAgICBmdW5jdGlvbnMuCiA+PiAgICogSGlzdG9yeSB2 YWx1ZXMgb2YgZHluYW1pYyBhcnJheXMgY2FuIGJlIGFjY2Vzc2VkIGFuZAog Pj4gICAgIHByaW50ZWQgYWdhaW4gd2l0aCB0aGUgY29ycmVjdCB2YWx1ZXMu CiA+PiAgICogRHluYW1pYyBhcnJheSBldmFsdWF0aW9ucyB1c2luZyBNSSBw cm90b2NvbC4KID4+ICAgKiBTaXplb2Ygb3V0cHV0IG9mIGR5bmFtaWMgYXJy YXlzIGluIHZhcmlvdXMgc3RhdGVzLgogPj4KID4+IFRoZSBwYXRjaCB3YXMg dGVzdGVkIHVzaW5nIHRoZSB0ZXN0IHN1aXRlIG9uIFVidW50dSAxMi4wNCA2 NGJpdC4KID4KID4gSGkgS2V2ZW4sCiA+IFRoZSB0ZXN0IGNhc2VzIGFkZGVk IGJ5IHRoaXMgY29tbWl0IGZhaWwgb24gc29tZSBvdGhlciBPUyBhbmQgdGFy Z2V0cywKID4gc2VlIHRoaXMgdGhyZWFkLCAKaHR0cHM6Ly9zb3VyY2V3YXJl Lm9yZy9tbC9nZGItdGVzdGVycy8yMDE1LXE0L21zZzAyMTM2Lmh0bWwKID4g Y2FuIHlvdSB0YWtlIGEgbG9vaz8KID4KCkhpIFlhbywgSm9lbCwKCkkgZG9u J3QgdGhpbmsgSSB3aWxsIGJlIGFibGUgdG8gZml4IHRoZSBmYWlsdXJlcyBv biB0aGUgbWVudGlvbmVkIApob3N0cy90YXJnZXRzIGJlZm9yZSB5b3UKY3Jl YXRlIHRoZSBicmFuY2gsIGFzIEkgbmVlZCB0byByZXBsaWNhdGUgdGhlIGVu dmlyb25tZW50IG9uIG15IGVuZCAKZmlyc3QgdG8gc3RhcnQgaW52ZXN0aWdh dGluZy4KVGhlcmVmb3JlIEkgc3VnZ2VzdCB0byByZXZlcnQgdGhlIGNoYW5n ZSBmb3Igbm93LiBTb3JyeSBpZiB0aGlzIGNhdXNlZCAKYW55IGluY29udmVu aWVuY2UuCgoKSm9lbCBhbmQgWWFvLAoKQmVybmhhcmQgYW5kIEkgd2UgaGF2 ZSBpbnZlc3RpZ2F0ZWQgdGhlIGlzc3VlcyByZXBvcnRlZC4gSXNzdWVzIHdl cmUgCnJlcHJvZHVjZWQgYnkgdXNpbmcgdGhlIG5ld2VzdCBHQ0MuICBMb29r cyBsaWtlIHRoZSBpc3N1ZXMgYXJlIAppbmRlcGVuZGVudCBmcm9tIHRoZSB0 YXJnZXQgYXQgZmlyc3Qgc2lnaHQuCgpJc3N1ZXMgY291bGQgYmUgZGl2aWRl ZCBpbnRvIDMgY2F0ZWdvcmllczoKCjEuICBJc3N1ZSByb290IGNhdXNlcyB0 byBHQ0MgNS54IGFuZCBGb3J0cmFuICJhc3NvY2lhdGVkIiBpbnRyaW5zaWMu IApDb21waWxlciBpcyBub3QgcmVwb3J0aW5nIHRoZSDigJxBc3NvY2lhdGVk IHByb3BlcnR5IGNvcnJlY3RseS4gKHNlZSB0ZXN0IApjYXNlIDEpCkFmZmVj dGVkIHRlc3RzOgpnZGIuZm9ydHJhbi92bGEtcHR5cGUuZXhwOiBwdHlwZSBw dmxhIG5vdCBpbml0aWFsaXplZApnZGIuZm9ydHJhbi92bGEtdmFsdWUuZXhw OiBwcmludCB1bmRlZmluZWQgcHZsYQpnZGIuZm9ydHJhbi92bGEtdmFsdWUu ZXhwOiBwcmludCBub24tYXNzb2NpYXRlZCAmcHZsYQpnZGIuZm9ydHJhbi92 bGEtdmFsdWUuZXhwOiBwcmludCB1bmRlZmluZWQgcHZsYSgxLDMsOCkKZ2Ri Lm1pL21pLXZsYS1mb3J0cmFuLmV4cDogZXZhbHVhdGUgbm90IGFzc29jaWF0 ZWQgdmxhCmdkYi5taS9taS12bGEtZm9ydHJhbi5leHA6IGNyZWF0ZSBsb2Nh bCB2YXJpYWJsZSBwdmxhMl9ub3RfYXNzb2NpYXRlZApnZGIubWkvbWktdmxh LWZvcnRyYW4uZXhwOiBpbmZvIHR5cGUgdmFyaWFibGUgcHZsYTJfbm90X2Fz c29jaWF0ZWQKCjIuICBUZXN0IGlzc3Vlcy4gVGVzdCB0YWtlIGludG8gYWNj b3VudCB0aGF0IGFycmF5IGNyZWF0ZWQgaXMgCmluaXRpYWxpemVkIGJ5IGRl ZmF1bHQuIEluaXRpYWxpemF0aW9uIGRlcGVuZHMgb24gdGhlIGNvbXBpbGVy IGFsc28gCkZvcnRyYW4gc3RhbmRhcmQgZG9lcyBub3Qgc3RhdGUgdGhlIG5l ZWQgZm9yIGluaXRpYWxpemF0aW9uLgpBZmZlY3RlZCB0ZXN0czoKZ2RiLm1p L21pLXZsYS1mb3J0cmFuLmV4cDogZXZhbHVhdGUgYWxsb2NhdGVkIHZsYQoK My4gIEdDQyBvciBHREIgZXJyb3IuIEJyZWFrcG9pbnQgaXMgY29tcGxldGVs eSBvZmYsIGJyZWFrcG9pbnQgb24gcmV0dXJuIApsaW5lIGlzIHRyaWdnZXJl ZCBiZWZvcmUgdGhlIGV4ZWN1dGlvbiBvZiB0aGUgZnVuY3Rpb25zIGJvZHku IERlZXBlciAKaW52ZXN0aWdhdGlvbiBzaG91bGQgYmUgZG9uZSB0byBkZWZp bmUgdGhlIHJlYWwgaXNzdWUuCkFmZmVjdGVkIHRlc3RzOgpnZGIuY3Avdmxh LWN4eC5leHAKCgpTbmlwcGV0cyBvZiB3aGF0IGlzIG5vdCB3b3JraW5nIHBy b3Blcmx5IGFyZSBwcmVzZW50ZWQgYmVsb3c6Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLQoKMS4KICAgcHJvZ3JhbSB2bGEKCiAgIHJlYWwsIHRhcmdldCwgYWxs b2NhdGFibGUgOjogdmxhMSAoOiwgOiwgOikKICAgcmVhbCwgcG9pbnRlciA6 OiBwdmxhICg6LCA6LCA6KQogICBsb2dpY2FsIDo6IGwKICAgbG9naWNhbCA6 OiBpc19hc3NvY2lhdGVkCiAgIGludGVnZXIgbG9jYXRpb24KICAgYWxsb2Nh dGUgKHZsYTEgKDEwLDEwLDEwKSkKICAgbCA9IGFsbG9jYXRlZCh2bGExKQog ICB2bGExKDosIDosIDopID0gMTMxMQoKICAgaXNfYXNzb2NpYXRlZCA9IC5G QUxTRS4KCiAgIGlzX2Fzc29jaWF0ZWQgPSBhc3NvY2lhdGVkKHB2bGEpICAg ISEhIDwtLSAgSEVSRTogQ29tcGlsZXIgcmVwb3J0cyAKcHZsYSBhcyBhc3Nv Y2lhdGVkLCBpdCBzaG91bGQgbm90IGJlLgoKICAgbG9jYXRpb24gPSBMT0Mo cHZsYSkKICAgd3JpdGUgKCosKikgInB2bGEgaXMgYXNzb2NpYXRlZDogIiwg aXNfYXNzb2NpYXRlZAogICB3cml0ZSAoKiwqKSAiTG9jYXRpb24gb2YgcHZs YSBpczogIixsb2NhdGlvbgoKICAgcHZsYSA9PiB2bGExICAgICAgICAgICAg ICAgICAgICAgICAgISBpcyBhc3NvY2lhdGVkIGhlcmUhCiAgIGwgPSBhc3Nv Y2lhdGVkKHB2bGEpCgoKCmVuZCBwcm9ncmFtIHZsYQoKV2UgaW50ZW5kIHRv IGFkZCBhIEdDQyBkZWZlY3QgaW4gYnVnemlsbGEuIERvIHlvdSBhZ3JlZT8K Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgoyLgoKU291cmNlIGZpbGU6IGdk Yi5taS9WTEEuRjkwCgogICByZWFsLCBwb2ludGVyIDo6IHB2bGEyICg6LCA6 KQoKICAgbG9naWNhbCA6OiBsCgoKCiAgIGFsbG9jYXRlICh2bGExICg1KSkK CiAgIHZsYTEoOikgPSAwOyAgCSAgICAgICEhISBNaXNzaW5nIGxpbmU6IFRl c3QgY29uc2lkZXIgdGhhdCBhcnJheSBpcyAKaW5pdGlhbGl6ZWQsIGJ1dCBz dGFuZGFyZCBkb2VzIG5vdCBlbmZvcmNlIHRoYXQuCgogICBsID0gYWxsb2Nh dGVkKHZsYTEpCgoKCiAgIHZsYTEoOikgPSAxCgogICB2bGExKDIpID0gNDIK CiAgIHZsYTEoNCkgPSAyNAoKCi0+IFdlIGFyZSBnb2luZyB0byBwcmVwYXJl IGEgcGF0Y2ggZm9yIHRoYXQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0KMy4K Q29tcGlsZSAmIHJ1bjogZ2RiLmNwL3ZseC1jeHgKCiAgICAgICBFeGVjdXRl IGluIEdEQgoKYnJlYWsgNDgKCnJ1bgoKbmV4dAoKICAgICAgICAgICAgICBO ZXh0IHNob3dzIGJlZ2lubmluZyBvZiDigJxtYWlu4oCdIGFuZCBub3QgdGhl IGNvZGUgd2hlcmUgdGhlIApicmVha3BvaW50IHdhcyBoaXQuCgoKClJlYWRp bmcgc3ltYm9scyBmcm9tIC4uL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL3ZsYS1j eHguLi5kb25lLgoKKGdkYikgYiA0OAoKQnJlYWtwb2ludCAxIGF0IDB4NDAw NWFlOiBmaWxlIC4uLy4uLy4uL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL3ZsYS1j eHguY2MsIApsaW5lIDQ4LgoKKGdkYikgcgoKU3RhcnRpbmcgcHJvZ3JhbTog Li4vZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvdmxhLWN4eAoKCgpCcmVha3BvaW50 IDEsIG1haW4gKGFyZ2M9MSwgYXJndj0weDdmZmZmZmZmZGEyOCkKCiAgICAg YXQgLi4vLi4vLi4vZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvdmxhLWN4eC5jYzo0 OAoKNDggICAgICAgICAgICAgcmV0dXJuIHZsYVsyXTsKCihnZGIpIG4KCjM2 ICAgICAgICAgICAgIGludCB6ID0gMzsKCihnZGIpIG4KCjM4ICAgICAgICAg ICAgIGludCB2bGFbel07CgoKCi0+V2Ugd2lsbCBpbnZlc3RpZ2F0ZSB0aGUg cm9vdCBjYXVzZSBoZXJlLiBHREIgb3IgZGVidWcgaW5mb3JtYXRpb24gaXMg Cndyb25nIGhlcmUuCgoKClRoYW5rcyBhbmQgcmVnYXJkcywKQmVybmhhcmQg JiBGcmVkCkludGVsIERldXRzY2hsYW5kIEdtYkgKUmVnaXN0ZXJlZCBBZGRy ZXNzOiBBbSBDYW1wZW9uIDEwLTEyLCA4NTU3OSBOZXViaWJlcmcsIEdlcm1h bnkKVGVsOiArNDkgODkgOTkgODg1My0wLCB3d3cuaW50ZWwuZGUKTWFuYWdp bmcgRGlyZWN0b3JzOiBDaHJpc3RpbiBFaXNlbnNjaG1pZCwgQ2hyaXN0aWFu IExhbXByZWNodGVyCkNoYWlycGVyc29uIG9mIHRoZSBTdXBlcnZpc29yeSBC b2FyZDogTmljb2xlIExhdQpSZWdpc3RlcmVkIE9mZmljZTogTXVuaWNoCkNv bW1lcmNpYWwgUmVnaXN0ZXI6IEFtdHNnZXJpY2h0IE11ZW5jaGVuIEhSQiAx ODY5MjgK >From gdb-patches-return-129310-listarch-gdb-patches=sources.redhat.com@sourceware.org Mon Feb 08 14:45:59 2016 Return-Path: Delivered-To: listarch-gdb-patches@sources.redhat.com Received: (qmail 85856 invoked by alias); 8 Feb 2016 14:45:54 -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 Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 85779 invoked by uid 89); 8 Feb 2016 14:45:53 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_PASS autolearn=ham version=3.3.2 spammy=407, ena, acronym, Packets X-HELO: usplmg20.ericsson.net Received: from usplmg20.ericsson.net (HELO usplmg20.ericsson.net) (198.24.6.45) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA encrypted) ESMTPS; Mon, 08 Feb 2016 14:45:50 +0000 Received: from EUSAAHC006.ericsson.se (Unknown_Domain [147.117.188.90]) by usplmg20.ericsson.net (Symantec Mail Security) with SMTP id C4.1E.06940.6B6A8B65; Mon, 8 Feb 2016 15:31:18 +0100 (CET) Received: from [142.133.110.95] (147.117.188.8) by smtp-am.internal.ericsson.com (147.117.188.92) with Microsoft SMTP Server id 14.3.248.2; Mon, 8 Feb 2016 09:45:47 -0500 Subject: Re: [PATCH 4/4] Support tracepoints for ARM linux in GDBServer To: References: <1452188697-23870-1-git-send-email-antoine.tremblay@ericsson.com> <1452188697-23870-5-git-send-email-antoine.tremblay@ericsson.com> CC: =?UTF-8?Q?Marcin_Ko=c5=9bcielnicki?= From: Antoine Tremblay Message-ID: <56B8AA1B.8040802@ericsson.com> Date: Mon, 08 Feb 2016 14:45:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 MIME-Version: 1.0 In-Reply-To: <1452188697-23870-5-git-send-email-antoine.tremblay@ericsson.com> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: quoted-printable X-IsSubscribed: yes X-SW-Source: 2016-02/txt/msg00194.txt.bz2 Content-length: 18948 On 01/07/2016 12:44 PM, Antoine Tremblay wrote: > This patch adds support for tracepoints for ARM linux in GDBServer. > > To enable this, this patch introduces a new :K (kind) field in the > QTDP packet to encode the breakpoint kind, this is the same kind as a z0 > packet. > > This is the new qSupported feature: TracepointKinds > > This field is decoded by sw_breakpoint_from_kind target ops in linux-low. > > A note about tests : > > New tests passing: All of gdb.trace except below tests. > > Failing tests: > > new FAIL: gdb.trace/unavailable.exp: unavailable locals: > register locals: tfile: info locals > new FAIL: gdb.trace/unavailable.exp: unavailable locals: > register locals: tfile: print locd > new FAIL: gdb.trace/unavailable.exp: unavailable locals: > register locals: tfile: print locf > > These tests are failing since we would need the proper gdbarch containing > the vfp registers when trying to read pseudo-registers. However, we would > need to have an inferior running to have this and since we don't, the tes= ts > fail. > >Should these be set as expected fail ? > Note that these tests no longer fail after this patch series : https://sourceware.org/ml/gdb-patches/2016-02/msg00161.html Thanks for that work Marcin Ko=C5=9Bcielnicki! So I think we could leave them failing if this patch set goes in before,=20 since they will get fixed...or I'll adapt the commit log if Marcin's=20 patch set is first to be merged. > Tested on Ubuntu 14.04 ARMv7 and x86 with no regression. > With gdbserver-{native,extended} / { -marm -mthumb } > > gdb/ChangeLog: > > * NEWS: Add news for tracepoins on ARM. > > gdb/doc/ChangeLog: > > * gdb.texinfo (General Query Packets): Add TracepointKinds packet. > (ARM Breakpoint Kinds): Add QTDP reference. > (Tracepoint Packets): Add kind parameter to QTDP packet. > > gdb/gdbserver/ChangeLog: > > * linux-arm-low.c (arm_supports_tracepoints): New function. > (struct linux_target_ops) : Initialize. > * mem-break.c (set_breakpoint_at_with_kind): New function. > * mem-break.h (set_breakpoint_at_with_kind): New function declaration. > * server.c (handle_query): Add TracepointsKinds feature. > * tracepoint.c (struct tracepoint) : New field. > (add_tracepoint): Initialize kind field. > (cmd_qtdp): Handle kind field 'K'. > (install_tracepoint): Use set_breakpoint_at_with_kind when kind is > present. > (cmd_qtstart): Likewise. > > gdb/ChangeLog: > > * remote.c (remote_supports_tracepoint_kinds): New function declaration. > (PACKET_TracepointKinds): New enum field. > (remote_protocol_features[]): New TracepointKinds element. > (remote_supports_tracepoint_kinds): New function. > (remote_download_tracepoint): Fetch the breakpoint kind and send > it as K parameter to QTDP packet. > (_initialize_remote): Add TracepointKinds packet_config_cmd. > > gdb/testsuite/ChangeLog: > > * gdb.trace/collection.exp (gdb_collect_return_test): Set test > unsupported for arm/aarch32 targets as it's not supported by the arch. > * gdb.trace/trace-common.h: Add ARM fast tracepoint label to allow > tracepoints tests. > * lib/trace-support.exp: Add arm/aarch32 target support. > --- > gdb/NEWS | 2 ++ > gdb/doc/gdb.texinfo | 22 +++++++++++++---- > gdb/gdbserver/linux-arm-low.c | 10 +++++++- > gdb/gdbserver/mem-break.c | 13 ++++++++++ > gdb/gdbserver/mem-break.h | 7 ++++++ > gdb/gdbserver/server.c | 1 + > gdb/gdbserver/tracepoint.c | 43 +++++++++++++++++++++++++++= +------ > gdb/remote.c | 27 +++++++++++++++++++++ > gdb/testsuite/gdb.trace/collection.exp | 7 +++++- > gdb/testsuite/gdb.trace/trace-common.h | 10 +++++++- > gdb/testsuite/lib/trace-support.exp | 4 ++++ > 11 files changed, 131 insertions(+), 15 deletions(-) > > diff --git a/gdb/NEWS b/gdb/NEWS > index 484d98d..28110cc 100644 > --- a/gdb/NEWS > +++ b/gdb/NEWS > @@ -3,6 +3,8 @@ > > *** Changes since GDB 7.10 > > +* Support for tracepoints on arm-linux was added in GDBServer. > + > * Record btrace now supports non-stop mode. > > * Support for tracepoints on aarch64-linux was added in GDBserver. > diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo > index 0778383..cffad48 100644 > --- a/gdb/doc/gdb.texinfo > +++ b/gdb/doc/gdb.texinfo > @@ -36633,6 +36633,11 @@ These are the currently defined stub features an= d their properties: > @tab @samp{-} > @tab No > > +@item @samp{TracepointKinds} > +@tab No > +@tab @samp{-} > +@tab No > + > @end multitable > > These are the currently defined stub features, in more detail: > @@ -36851,6 +36856,9 @@ The remote stub understands the @samp{QThreadEven= ts} packet. > @item no-resumed > The remote stub reports the @samp{N} stop reply. > > +@item TracepointKinds > +The remote stub reports the @samp{:K} kind parameter for @samp{QTDP} pac= kets. > + > @end table > > @item qSymbol:: > @@ -37361,7 +37369,8 @@ details of XML target descriptions for each archi= tecture. > @subsubsection @acronym{ARM} Breakpoint Kinds > @cindex breakpoint kinds, @acronym{ARM} > > -These breakpoint kinds are defined for the @samp{Z0} and @samp{Z1} packe= ts. > +These breakpoint kinds are defined for the @samp{Z0}, @samp{Z1} > +and @samp{QTDP} packets. > > @table @r > > @@ -37441,7 +37450,7 @@ tracepoints (@pxref{Tracepoints}). > > @table @samp > > -@item QTDP:@var{n}:@var{addr}:@var{ena}:@var{step}:@var{pass}[:F@var{fle= n}][:X@var{len},@var{bytes}]@r{[}-@r{]} > +@item QTDP:@var{n}:@var{addr}:@var{ena}:@var{step}:@var{pass}[:F@var{fle= n}][:X@var{len},@var{bytes}][:K@var{kind}]@r{[}-@r{]} > @cindex @samp{QTDP} packet > Create a new tracepoint, number @var{n}, at @var{addr}. If @var{ena} > is @samp{E}, then the tracepoint is enabled; if it is @samp{D}, then > @@ -37452,9 +37461,12 @@ the number of bytes that the target should copy = elsewhere to make room > for the tracepoint. If an @samp{X} is present, it introduces a > tracepoint condition, which consists of a hexadecimal length, followed > by a comma and hex-encoded bytes, in a manner similar to action > -encodings as described below. If the trailing @samp{-} is present, > -further @samp{QTDP} packets will follow to specify this tracepoint's > -actions. > +encodings as described below. If a @samp{K} is present, it > +indicates a target specific breakpoint length. E.g., the arm and mips > +can insert either a 2 or 4 byte breakpoint. Some architectures have > +additional meanings for kind see @ref{Architecture-Specific Protocol > +Details}. If the trailing @samp{-} is present, further @samp{QTDP} > +packets will follow to specify this tracepoint's actions. > > Replies: > @table @samp > diff --git a/gdb/gdbserver/linux-arm-low.c b/gdb/gdbserver/linux-arm-low.c > index d967e58..76d0e32 100644 > --- a/gdb/gdbserver/linux-arm-low.c > +++ b/gdb/gdbserver/linux-arm-low.c > @@ -1005,6 +1005,14 @@ arm_regs_info (void) > return ®s_info_arm; > } > > +/* Implementation of the linux_target_ops method "support_tracepoints". = */ > + > +static int > +arm_supports_tracepoints (void) > +{ > + return 1; > +} > + > struct linux_target_ops the_low_target =3D { > arm_arch_setup, > arm_regs_info, > @@ -1031,7 +1039,7 @@ struct linux_target_ops the_low_target =3D { > arm_new_fork, > arm_prepare_to_resume, > NULL, /* process_qsupported */ > - NULL, /* supports_tracepoints */ > + arm_supports_tracepoints, > NULL, /* get_thread_area */ > NULL, /* install_fast_tracepoint_jump_pad */ > NULL, /* emit_ops */ > diff --git a/gdb/gdbserver/mem-break.c b/gdb/gdbserver/mem-break.c > index 2e220b8..3a9a816 100644 > --- a/gdb/gdbserver/mem-break.c > +++ b/gdb/gdbserver/mem-break.c > @@ -791,6 +791,19 @@ set_breakpoint_at (CORE_ADDR where, int (*handler) (= CORE_ADDR)) > &err_ignored); > } > > +/* See mem-break.h */ > + > +struct breakpoint * > +set_breakpoint_at_with_kind (CORE_ADDR where, > + int (*handler) (CORE_ADDR), > + int kind) > +{ > + int err_ignored; > + > + return set_breakpoint (other_breakpoint, raw_bkpt_type_sw, > + where, kind, handler, > + &err_ignored); > +} > > static int > delete_raw_breakpoint (struct process_info *proc, struct raw_breakpoint= *todel) > diff --git a/gdb/gdbserver/mem-break.h b/gdb/gdbserver/mem-break.h > index 4d9a76c..02a1038 100644 > --- a/gdb/gdbserver/mem-break.h > +++ b/gdb/gdbserver/mem-break.h > @@ -146,6 +146,13 @@ int gdb_breakpoint_here (CORE_ADDR where); > struct breakpoint *set_breakpoint_at (CORE_ADDR where, > int (*handler) (CORE_ADDR)); > > +/* Same as set_breakpoint_at but allow the kind to be specified */ > + > +struct breakpoint *set_breakpoint_at_with_kind (CORE_ADDR where, > + int (*handler)(CORE_ADDR), > + int kind); > + > + > /* Delete a breakpoint. */ > > int delete_breakpoint (struct breakpoint *bkpt); > diff --git a/gdb/gdbserver/server.c b/gdb/gdbserver/server.c > index fe7195d..059a373 100644 > --- a/gdb/gdbserver/server.c > +++ b/gdb/gdbserver/server.c > @@ -2269,6 +2269,7 @@ handle_query (char *own_buf, int packet_len, int *n= ew_packet_len_p) > strcat (own_buf, ";EnableDisableTracepoints+"); > strcat (own_buf, ";QTBuffer:size+"); > strcat (own_buf, ";tracenz+"); > + strcat (own_buf, ";TracepointKinds+"); > } > > if (target_supports_hardware_single_step () > diff --git a/gdb/gdbserver/tracepoint.c b/gdb/gdbserver/tracepoint.c > index 40d0da9..3a50f47 100644 > --- a/gdb/gdbserver/tracepoint.c > +++ b/gdb/gdbserver/tracepoint.c > @@ -754,6 +754,11 @@ struct tracepoint > /* Link to the next tracepoint in the list. */ > struct tracepoint *next; > > + /* Optional kind of the breakpoint to be used. Note this can mean > + different things for different archs as z0 breakpoint command. > + Value is -1 if not persent. */ > + int32_t kind; > + > #ifndef IN_PROCESS_AGENT > /* The list of actions to take when the tracepoint triggers, in > string/packet form. */ > @@ -1820,6 +1825,7 @@ add_tracepoint (int num, CORE_ADDR addr) > tpoint->compiled_cond =3D 0; > tpoint->handle =3D NULL; > tpoint->next =3D NULL; > + tpoint->kind =3D -1; > > /* Find a place to insert this tracepoint into list in order to keep > the tracepoint list still in the ascending order. There may be > @@ -2495,6 +2501,7 @@ cmd_qtdp (char *own_buf) > ULONGEST num; > ULONGEST addr; > ULONGEST count; > + ULONGEST kind; > struct tracepoint *tpoint; > char *actparm; > char *packet =3D own_buf; > @@ -2561,6 +2568,12 @@ cmd_qtdp (char *own_buf) > tpoint->cond =3D gdb_parse_agent_expr (&actparm); > packet =3D actparm; > } > + else if (*packet =3D=3D 'K') > + { > + ++packet; > + packet =3D unpack_varlen_hex (packet, &kind); > + tpoint->kind =3D kind; > + } > else if (*packet =3D=3D '-') > break; > else if (*packet =3D=3D '\0') > @@ -2575,11 +2588,13 @@ cmd_qtdp (char *own_buf) > } > > trace_debug ("Defined %stracepoint %d at 0x%s, " > - "enabled %d step %" PRIu64 " pass %" PRIu64, > + "enabled %d step %" PRIu64 " pass %" PRIu64 > + " kind %" PRId32, > tpoint->type =3D=3D fast_tracepoint ? "fast " > : tpoint->type =3D=3D static_tracepoint ? "static " : "", > tpoint->number, paddress (tpoint->address), tpoint->enabled, > - tpoint->step_count, tpoint->pass_count); > + tpoint->step_count, tpoint->pass_count, > + tpoint->kind); > } > else if (tpoint) > add_tracepoint_action (tpoint, packet); > @@ -3153,9 +3168,17 @@ install_tracepoint (struct tracepoint *tpoint, cha= r *own_buf) > /* Tracepoints are installed as memory breakpoints. Just go > ahead and install the trap. The breakpoints module > handles duplicated breakpoints, and the memory read > - routine handles un-patching traps from memory reads. */ > - tpoint->handle =3D set_breakpoint_at (tpoint->address, > - tracepoint_handler); > + routine handles un-patching traps from memory reads. > + If tracepoint kind is not set, use the default values > + otherwise what was set from the gdb client will be used. */ > + if (tpoint->kind =3D=3D -1) > + tpoint->handle =3D set_breakpoint_at (tpoint->address, > + tracepoint_handler); > + else > + tpoint->handle =3D > + set_breakpoint_at_with_kind (tpoint->address, > + tracepoint_handler, > + tpoint->kind); > } > else if (tpoint->type =3D=3D fast_tracepoint || tpoint->type =3D=3D s= tatic_tracepoint) > { > @@ -3248,8 +3271,14 @@ cmd_qtstart (char *packet) > ahead and install the trap. The breakpoints module > handles duplicated breakpoints, and the memory read > routine handles un-patching traps from memory reads. */ > - tpoint->handle =3D set_breakpoint_at (tpoint->address, > - tracepoint_handler); > + if (tpoint->kind =3D=3D -1) > + tpoint->handle =3D set_breakpoint_at (tpoint->address, > + tracepoint_handler); > + else > + tpoint->handle =3D > + set_breakpoint_at_with_kind (tpoint->address, > + tracepoint_handler, > + tpoint->kind); > } > else if (tpoint->type =3D=3D fast_tracepoint > || tpoint->type =3D=3D static_tracepoint) > diff --git a/gdb/remote.c b/gdb/remote.c > index 528d863..17581e2 100644 > --- a/gdb/remote.c > +++ b/gdb/remote.c > @@ -241,6 +241,8 @@ static int stop_reply_queue_length (void); > > static void readahead_cache_invalidate (void); > > +static int remote_supports_tracepoint_kinds (void); > + > /* For "remote". */ > > static struct cmd_list_element *remote_cmdlist; > @@ -1491,6 +1493,9 @@ enum { > /* Support TARGET_WAITKIND_NO_RESUMED. */ > PACKET_no_resumed, > > + /* Support target dependant tracepoint kinds. */ > + PACKET_TracepointKinds, > + > PACKET_MAX > }; > > @@ -4534,6 +4539,8 @@ static const struct protocol_feature remote_protoco= l_features[] =3D { > { "vContSupported", PACKET_DISABLE, remote_supported_packet, PACKET_v= ContSupported }, > { "QThreadEvents", PACKET_DISABLE, remote_supported_packet, PACKET_QT= hreadEvents }, > { "no-resumed", PACKET_DISABLE, remote_supported_packet, PACKET_no_re= sumed }, > + { "TracepointKinds", PACKET_DISABLE, remote_supported_packet, > + PACKET_TracepointKinds } > }; > > static char *remote_support_xml; > @@ -11692,6 +11699,12 @@ remote_can_run_breakpoint_commands (struct targe= t_ops *self) > return packet_support (PACKET_BreakpointCommands) =3D=3D PACKET_ENABL= E; > } > > +static int > +remote_supports_tracepoint_kinds (void) > +{ > + return packet_support (PACKET_TracepointKinds) =3D=3D PACKET_ENABLE; > +} > + > static void > remote_trace_init (struct target_ops *self) > { > @@ -11780,6 +11793,7 @@ remote_download_tracepoint (struct target_ops *se= lf, struct bp_location *loc) > char *pkt; > struct breakpoint *b =3D loc->owner; > struct tracepoint *t =3D (struct tracepoint *) b; > + int kind; > > encode_actions_rsp (loc, &tdp_actions, &stepping_actions); > old_chain =3D make_cleanup (free_actions_list_cleanup_wrapper, > @@ -11788,6 +11802,10 @@ remote_download_tracepoint (struct target_ops *s= elf, struct bp_location *loc) > stepping_actions); > > tpaddr =3D loc->address; > + > + /* Fetch the proper tracepoint kind. */ > + gdbarch_remote_breakpoint_from_pc (target_gdbarch (), &tpaddr, &kind); > + > sprintf_vma (addrbuf, tpaddr); > xsnprintf (buf, BUF_SIZE, "QTDP:%x:%s:%c:%lx:%x", b->number, > addrbuf, /* address */ > @@ -11862,6 +11880,11 @@ remote_download_tracepoint (struct target_ops *s= elf, struct bp_location *loc) > "ignoring tp %d cond"), b->number); > } > > + /* Tracepoint Kinds are modeled after the breakpoint Z0 kind packet. > + Send the tracepoint kind if we support it. */ > + if (remote_supports_tracepoint_kinds ()) > + xsnprintf (buf + strlen (buf), BUF_SIZE - strlen (buf), ":K%x", kind= ); > + > if (b->commands || *default_collect) > strcat (buf, "-"); > putpkt (buf); > @@ -13767,6 +13790,10 @@ Show the maximum size of the address (in bits) i= n a memory packet."), NULL, > add_packet_config_cmd (&remote_protocol_packets[PACKET_no_resumed], > "N stop reply", "no-resumed-stop-reply", 0); > > + add_packet_config_cmd (&remote_protocol_packets[PACKET_TracepointKinds= ], > + "TracepointKinds", > + "tracepoint-kinds", 0); > + > /* Assert that we've registered "set remote foo-packet" commands > for all packet configs. */ > { > diff --git a/gdb/testsuite/gdb.trace/collection.exp b/gdb/testsuite/gdb.t= race/collection.exp > index f225429..a30234f 100644 > --- a/gdb/testsuite/gdb.trace/collection.exp > +++ b/gdb/testsuite/gdb.trace/collection.exp > @@ -764,7 +764,12 @@ proc gdb_trace_collection_test {} { > gdb_collect_expression_test globals_test_func \ > "globalarr\[\(l6, l7\)\]" "7" "a\[\(b, c\)\]" > > - gdb_collect_return_test > + #This architecture has no method to collect a return address. > + if { [is_aarch32_target] } { > + unsupported "collect \$_ret: This architecture has no method to collect= a return address" > + } else { > + gdb_collect_return_test > + } > > gdb_collect_strings_test strings_test_func "locstr" "abcdef" "" \ > "local string" > diff --git a/gdb/testsuite/gdb.trace/trace-common.h b/gdb/testsuite/gdb.t= race/trace-common.h > index eceb182..4f05423 100644 > --- a/gdb/testsuite/gdb.trace/trace-common.h > +++ b/gdb/testsuite/gdb.trace/trace-common.h > @@ -40,7 +40,7 @@ x86_trace_dummy () > " call " SYMBOL(x86_trace_dummy) "\n" \ > ) > > -#elif (defined __aarch64__) > +#elif (defined __aarch64__ || (defined __arm__ && !defined __thumb__)) > > #define FAST_TRACEPOINT_LABEL(name) \ > asm (" .global " SYMBOL(name) "\n" \ > @@ -48,6 +48,14 @@ x86_trace_dummy () > " nop\n" \ > ) > > +#elif (defined __arm__ && defined __thumb2__) > + > +#define FAST_TRACEPOINT_LABEL(name) \ > + asm (" .global " SYMBOL(name) "\n" \ > + SYMBOL(name) ":\n" \ > + " nop.w\n" \ > + ) > + > #else > > #error "unsupported architecture for trace tests" > diff --git a/gdb/testsuite/lib/trace-support.exp b/gdb/testsuite/lib/trac= e-support.exp > index f593c43..ef63f7a 100644 > --- a/gdb/testsuite/lib/trace-support.exp > +++ b/gdb/testsuite/lib/trace-support.exp > @@ -36,6 +36,10 @@ if [is_amd64_regs_target] { > set fpreg "x29" > set spreg "sp" > set pcreg "pc" > +} elseif [is_aarch32_target] { > + set fpreg "sp" > + set spreg "sp" > + set pcreg "pc" > } else { > set fpreg "fp" > set spreg "sp" >