From patchwork Wed Jul 26 08:59:56 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Marchi X-Patchwork-Id: 21790 Received: (qmail 88956 invoked by alias); 26 Jul 2017 09:00:53 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 87987 invoked by uid 89); 26 Jul 2017 09:00:24 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.3 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: sesbmg23.ericsson.net Received: from sesbmg23.ericsson.net (HELO sesbmg23.ericsson.net) (193.180.251.37) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 26 Jul 2017 09:00:21 +0000 Received: from ESESSHC012.ericsson.se (Unknown_Domain [153.88.183.54]) by sesbmg23.ericsson.net (Symantec Mail Security) with SMTP id 53.E2.07915.C1A58795; Wed, 26 Jul 2017 11:00:12 +0200 (CEST) Received: from EUR01-DB5-obe.outbound.protection.outlook.com (153.88.183.145) by oa.msg.ericsson.com (153.88.183.54) with Microsoft SMTP Server (TLS) id 14.3.352.0; Wed, 26 Jul 2017 11:00:11 +0200 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=simon.marchi@ericsson.com; Received: from [147.214.129.241] (192.176.1.81) by DB4PR07MB314.eurprd07.prod.outlook.com (2a01:111:e400:982f::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1304.10; Wed, 26 Jul 2017 09:00:08 +0000 Subject: Re: [PATCH] Add enum for result of fast_tracepoint_collecting To: Yao Qi CC: References: <1501015878-5152-1-git-send-email-simon.marchi@ericsson.com> <867eyvprtv.fsf@gmail.com> From: Simon Marchi Message-ID: <4f8e36f1-9b3b-765d-3651-21718f150d8c@ericsson.com> Date: Wed, 26 Jul 2017 10:59:56 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: <867eyvprtv.fsf@gmail.com> X-ClientProxiedBy: AM5P190CA0026.EURP190.PROD.OUTLOOK.COM (2603:10a6:206:14::39) To DB4PR07MB314.eurprd07.prod.outlook.com (2a01:111:e400:982f::15) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 9f3d1f7b-64a5-41c6-b33c-08d4d404b775 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:DB4PR07MB314; X-Microsoft-Exchange-Diagnostics: 1; DB4PR07MB314; 3:qigx3X2Mg2G39fvrTzXreH63D7yGiBTZIEpEhDTaT4vP2c+vDnP1hh3sWCmKRouICEqk/+4t7Zi/kLZIlMJlSRtrY8AuarVAA+mb93ToSkY0NAAGQdmYEdLbuav9M+WHEOS+hNKyqZ4UmO48DvSLFG7up+CSmFGlTuZrAjI2HPwb1Fk/FXTGLSPE6ELxjMxutthb3ckjHCsxFGbzCn84yM3woZY6KNSZ2Xgm7koe55+ZbfDKs0aNhFnkYZDn6zSXIidYryA6lhqLXaxUtDBukVqklwxx6cBeULEd6PvIZMe5umGOoqnYLyQI37iSVL7BO09zDFu1LHWZpzXEzEmEnyPV/Mb7SPU9qdb5sK3+imVSRfDrOQagS7P6O6j1VADPDLfdqbY/hXVj188brSOk0dpWVS2qu0MvcpgLtzSx4SMU0Yn2MoLbJwHjiPyQTcIaQ1p5lategdxcquXwDibU2BWc/mWMY9H7uZ7xI6CPOheHpgfBjCiX2mU2f7ex+aw57owZG7P6VH6OnzMcdWNusmRDdaWjtDX+C9Mjy8AVpt39vNNx6mmCMdG3bpOi/6S4JNxp3LvkakWvEb4+o5G6Fp5h6Op2z/eUH7baeCbgBnQWaIP+ARWU1C8jKbNwjTmuOEPLOrH9kjb47qru2P7MgHePFIM7v8Z6+h0LuqHIOSfYDsho/esbSV4F+wU1Dm63WUBIgVZEwCRAV+VwLQEfyu7eM82zhg27Iq4AW7ydgxA= X-MS-TrafficTypeDiagnostic: DB4PR07MB314: X-Microsoft-Exchange-Diagnostics: 1; DB4PR07MB314; 25:Qde3TbCYPixfMtA5tEtAWSGgT6L/levarvK+9nJYD0ooLatbzalUPwo8N4WZRV+3aA4foQS1Gx8ang9+Eez8dDRE5JtszIfRyKOecgyecV9EhKsTiBSxg+fBpOBwvir/WNjv/4Of9NNj0jYTGojGRsCW0Vv/sJaoHs6CX7xydJ5RLvFRH3MxzAHjULQck/X83ir8ho90hirMJ/tF3hWgy8UDgSQgpLlAV63LSo8nUWw86VgQJNXwt9IGeoy5g2anoHFpbwbhSmZGyYH7XGPhHaWdyYm5hQrmzLau0P+4oduXeQct2NkFbh0CTEr/zSlLKC8Wb/SQvw5/2FRQE0ixp7meLfuT3muaKBjNfF1CYCCZU+CRHBTFe0KqG+1CrHGdkPogUdXWg2kFFyt/9jYR5RrZcVI+mwuEcXszQ+TcBSkB0uIB7v2AA9tSyVLCKX/Chff05VGKxoVl8F9CNC4FSfWuJ7jpD3QSY1RxWGRYz5WogzM8jWXVAXUuCeaMo7ZRjgHF48eU8II7XV/L3SQN7gjk/p1Oq6XK1MHj8gxJ2b2n9/+GOZy5BCHAMNuZbD4i2kxa7z50IpTGGk8Tgsad7bKYwnlYjRCh9TJsK+IqOuovVr4I0POIREJhLczmeS3Fqja4+IB39wPbogWAs38ySDYIXG66PLY8CFNEHpCyEyMMohl5V/LMrT2K/RAptD4WAMRk5G6rQ1nLRQEdcv1DNPvhQ9s18nj703VpOtSmorYukFYlloVVteuHnunuEl3LjGh+5H2UNYnhsQUKnShA5Jv67n6L5E+zgNxawKgutjfVcq+YL/6vsYChiklNubSKV3w9Ah3WSkZupxZPdqfSUfHnovmU4wEgzNrRU0dgrHxSiGSlnbqVND9BpSE0GTsn0/Z8hMr0LVLVzsr/nmbWNSWE9pJsUN66JnjufMZV0A8= X-Microsoft-Exchange-Diagnostics: 1; DB4PR07MB314; 31:jkQ1qZHSEjg4NS8w12e+Ydg5BW3P8uJB18c5Onaw+uUFmGxUjH5LgR8mrgxKQCPS2NfEGh7Sbm9eHD6s+YuXZMNbwVCS6mx30qhJHu1DV0xPK4Wxnt5sTcVj0SpCk1c7F95XBcbZYdciWB7fVy4LH6MIYUfl0+4G5hgKfqGrT5tu1rG7e/aL0TEn7onC8ybqNQ5TM1jTCr0p08iUtgGgFNJHPa+gDN5E3Gbj6OwzQHYoJ36arlY4nFkVCr5K2pziewghgEii4H50PdHdPq9FgwDyiU2zLSoqZxZjZzqZpzoaufATLdh5UaZXueTTJMo0ZdctQZ6m6hylmPH7nLs43Di+jsEGH6slTMflCVtlTXl8mpqpJwTxGqkaSt8rT0Vdoh2XwXq0KytoDq0ptuk/HLTXo7ZFmIOOAJv5yLDQt3g6NiXYIp5oXlTWHUrs9uZbeX6sF61kGAUdS/TDAeO/ubfiQ2xtp49x7JHnpWTBW4VBrP7pgVLPswhIQR+NoChgMwO0XqBj+WHFGze1cvZmx6DTnazJzEzIS3e+3UYAG1GGMx9/4VPJvM5iJ8fRyarnqsT6iW4ItYcJ2j2o9QA7sV9CC5rw47Nsjym8KocgQGFOAlEG5NdrD6djIpzNN6asCAXQHGDfn4HOFAejwvhMt5fiVWUEs9FjZpmPEsBuarR8GqbIV+JAIZOVy4f05+hNGF+EY0LpqE5u5pmwqUsNRQ== X-Microsoft-Exchange-Diagnostics: 1; DB4PR07MB314; 20:S9irXQkRbi67Ewzcm0nPm265EZkVTHumueLR6CyCqQ7dRtK7zYBhq8MTjL7a/w5MGeu6X+2gPBZkiYmfXx76cd0Qr0cSm4Dz8R2xKs9u/qbeHlbSbfOL0rxwCWYGpwMlZrHBediWNmXTcrcc965hnZCue461CnnGIvOU1PerIIg7w2FH42iI6ezclKAJ5vqemS4P6py5ctcakztbGxMDfqNhzJsK57ZATniBTRkJ94MF8bMGqGqAqLO/lldTVMe4RFAUUwArl+yuW/xNQStIW+yleGSCD7Fe7hCbInDN35ce/NeR0OljvT9vdW4QHRujprckDgt82Zn2P1sFoBWlT0Y2X8+SfOy8nhS3oDcSR3XWIVG/EWIC6Jd9teaprMDWyyf15zSWYofppOtlfEhX01YbtwJ0xsleyOyZDtYr5No5syWDeK2eSMywvympJn5I+NcSO+NtNTEEUQHXuS34BkyRGsf5XCluCmRTmhyZSciCa5yaQ5zvh5EQUpvfx/l6 X-Exchange-Antispam-Report-Test: UriScan:(37575265505322)(211171220733660); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(10201501046)(93006095)(93001095)(3002001)(6041248)(20161123555025)(20161123562025)(20161123564025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DB4PR07MB314; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DB4PR07MB314; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtEQjRQUjA3TUIzMTQ7NDp5V2RUbXN0bG1HOFRqeXBIVjZ3ZGpWUFZQZFR2?= =?utf-8?B?eUQwWVBYOFN5cjRaekt5WFRILzRTd0taMHNrdVc0UGhIUTFEOEc4K1M3Y1JE?= =?utf-8?B?Wnl5TEd4eGJqbVhDdS9odDNrOE5VNm9RU29yS2M3Vjg5SU43TFRPeUR2SFhJ?= =?utf-8?B?dVM5Uys4aitsWGFFZk5tdmFta1BnZlllRDk4MFpmZytvcVpBWUxZcHRUNmxa?= =?utf-8?B?ODAvMHJMaGcrMzhTN09MV1BOMWVubE83S3FqSURraEgzMkUxSytUbmZCRnBa?= =?utf-8?B?ejkydkdNWFByWjY2TG5UdU9OczhKZG5TNE9VQzRlcjI0NExjVDVjTm5BS3hq?= =?utf-8?B?Ti9nejM2VHRUU0t0ckNTUlV3R25sbjZaWmZpaDIrRDh2citLR3NtK3dXb2pz?= =?utf-8?B?RjBNOXZROCtvaHNhTC9PMnp6ZWR0TnJBaVNzYVRtczl0bzZsRVhqdW5GdGtD?= =?utf-8?B?YUZTSDZ2akdUcWtublB3ak9rcUdTcjBuemxBb3grcnh4djNaU0NIS3VrdTJx?= =?utf-8?B?WFA4Z3pTOE5odGZKaE4xMDVkNVJ2S3dFVmlCRkxzbjNQeFdpbUc2ZU9mRW1S?= =?utf-8?B?VzZPRHd2Zk5ZamczRllrMjBrYXVxbHZ4dHJjVUxmalFzN09jYjVXTWRsdEdY?= =?utf-8?B?S0NnZTdxU2FxNm1hdG9VWUF0dkxUNVgzaWhBa3RxYUhpaC9QUy9SUVBRbVVH?= =?utf-8?B?ODBkK3NJMVNkRldXVTBqNWNvemxVL2pPaVVDMkNkT3ZLVmVpSFpMZ3h0OFFF?= =?utf-8?B?d1B1eUdzSEdoM1d5cmdidTl0TGU5aEdOb0RnQ2MzelBkOFpTQUJjengvZjN3?= =?utf-8?B?UXh4THBXMEY0TTJWd05tTExkYkJIN29TNVh3dFJFQmRFR3o5c1E4ZHlDellk?= =?utf-8?B?eENhTXVMcVJjYWFqUzg5cXNKVExOZlM4a0Y2SjE5YTN2Ty9lVEZRMDVoUzdV?= =?utf-8?B?SlpCQzZnamFrNTZKcVNNWGZybnFVZWJCTWZ6SU1LMDBod0pSSkZrbVl3NWI1?= =?utf-8?B?N3VlUU1pSGNEbzdxZldZYXFLM1JwVlZwZUdPTFZPQmxQZ2FORm9MTjlTc0Z6?= =?utf-8?B?aDc4WGlESXNNVkcxbTRsaWNKMVJ3RExMQms1WkdyajR4QlpRZUgrL0crMjAr?= =?utf-8?B?UXlobVBHNnVzWHUrQnFVdjM3U0NwZVhpMTJkNk1BV2dqeTJoTXFYMzJsY2x6?= =?utf-8?B?R2o3K2xBbnV3aGpmTm5RRjZiUTdhdVdnVUg0KzhtcEx2d09XR1VKcXdxbUM5?= =?utf-8?B?aUJ1S3AzS0RSdVBBd0FWSTlKOGxVUjM0VWZvYWoraVJKUk85MXFmTmdjMUpW?= =?utf-8?B?aHF0dksveVZTekRKSmZDZjJ1aHl3Mzc0dTRhb0kvWG5nZU1OcmlQdFROSklD?= =?utf-8?B?S1JRM2MycEFsMWFGOWp6UngzUGRMWGNURnBQNlRNaERMZFdWd2JMY0dZMTNr?= =?utf-8?B?dHRYUXFsbUFDWlp4VFF2WnhtelhrY3hUKzA4aWZzak9aN3BDYlJZUFJYZlI4?= =?utf-8?B?cSt1R0J6Wm50ZzVRL2hNdEkvaWJqVWFuQWdYRHNsQTE2RmhLekhDaHBaQlFN?= =?utf-8?B?ZzNXWHV6YUV3ZUMza1JaOGxRY3ZqYlZ0bk80c2lVR0RpTGNWaGFNMGFsaDU0?= =?utf-8?B?blJhTmVDVkt3VjZETWsxb1ZKWGRrc0FGVEtlRUpKZVJWa1ZxK2I4QT09?= X-Forefront-PRVS: 038002787A X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(7370300001)(4630300001)(6049001)(6009001)(39410400002)(39400400002)(39850400002)(39860400002)(39840400002)(39450400003)(24454002)(189002)(377454003)(54534003)(199003)(377424004)(8676002)(2950100002)(25786009)(6246003)(68736007)(64126003)(4326008)(229853002)(230700001)(53936002)(110136004)(38730400002)(36756003)(7350300001)(65826007)(6916009)(83506001)(86362001)(5660300001)(50466002)(6116002)(478600001)(3846002)(31696002)(6666003)(305945005)(4001350100001)(97736004)(66066001)(47776003)(54356999)(50986999)(23676002)(65956001)(105586002)(65806001)(53546010)(49976008)(106356001)(189998001)(81166006)(1411001)(33646002)(7736002)(76176999)(31686004)(6486002)(81156014)(101416001)(2906002)(42186005)(78286006); DIR:OUT; SFP:1101; SCL:1; SRVR:DB4PR07MB314; H:[147.214.129.241]; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtEQjRQUjA3TUIzMTQ7MjM6TzNScjhlak9ORGNNRnFGZlFpdGtLRmlqbHVs?= =?utf-8?B?RXFQL2hEZmtaME50cFVRY3JCcTg0UHBybjlERmwwM3lwVnArZTNHMHBrMVY0?= =?utf-8?B?d0RVVlVVR1dGY0kvVTZHU0NTM0NRRlFMV3p1NVlad25yaDdpS2lRamhTZG0w?= =?utf-8?B?dXpQTWdWMmFIZWE5ekxoZzRMM2lkOFlCZmRDd3F1bFl2UGNnK3BLVnpuNlI4?= =?utf-8?B?VGEwV3ZyVkliK0Q1WS95NmFaN0FtalNQU1BzaDl2WG1iVWFqWFdBYk9lanFH?= =?utf-8?B?emtaNWhnVEJkN25lTm4yeHBXSDhMdnJFWlo3dmVsZFo4ZHpoNk52Y2JiK0Uy?= =?utf-8?B?VE1VdThpbTUyQkhxTDBmV3ZDSkIwV3BsQ0RDZHRZVlBoeXdUUGVWR3RHaWNq?= =?utf-8?B?bmp1M21EcERlNlJkd2I4VWNIMXZUbWxPWUQ4TnorWlFEL2VVbmhSL2xKL1lV?= =?utf-8?B?Zm9nZUV0MDNlUFNRZC9JOUhqcnFsNnRIMGUwVEo0Z1VyMnJsRk9sVk4zZHpN?= =?utf-8?B?dlhCeWFNZ2ROWC94N3R6Z3RiRXpQaWxNZVEyMjJKUEowbkthVnA3MDh5NUZY?= =?utf-8?B?SE1qSG5CUTg1V2M4S2t1eUVTMm9QYVZVOUkrS1liKzJwT2Nva1pnNkNSYnRV?= =?utf-8?B?TmplV1hSN2dEL0ZOQTIybUdFN2o3RHNDTXhzcXlKc0k1QUJIbk9SL1Riek1K?= =?utf-8?B?S1d5ZHlkbGllUDBSNERpb2pGb2hQeVJ1eEdJbWxzSnR1ZDhEZk1WdUN0U2Rv?= =?utf-8?B?SThtNWFHbndOQWJ2b0dLWC9HajUwdWliWWRYVWowcklWdUxNWUduTHJpdjBG?= =?utf-8?B?d054YjBMdUtrUWxQTkdOTVl3VFRPbXlISVIwK3Fhd005b3hCMXJIeFVIVWxq?= =?utf-8?B?T0hxaENtc05CM2JwVzkrUDVjOWgwd1ZOd2laV3V0TjZYV3JvZ0lSZVZjdnl4?= =?utf-8?B?MmZ2RUh2VXc2ZXhnYVZYbmRLMlZsOStQaDNNaXZSa1FjQ1BNMlVpTXErdTlR?= =?utf-8?B?NWhkWi9oSWlOcWJaQ1lnTUZ0S0xjYkN1RU00WWt6SEtTdVBRM3JzR212a2xk?= =?utf-8?B?UXhjcXJoSS9uV2lyWnBOSDhpcll5bzJGUG9Zd0syNTUzSEpFeXZuV3Bza0dD?= =?utf-8?B?MkhOS0VQZWxZZDhkVnN3MG1Qc2FzSXFWSzJSS1M3N0pnUlplQXptSkVaWnJv?= =?utf-8?B?OFphVTBWMUQwOUJ3eGc4QytBdWdKVGFpWFd3czJHeno2Y1hGNytqbFdlUGZm?= =?utf-8?B?QitvMGh1N1R4MjFGU0hpWE5JRDlMWVJ3SEhqNjB1OGEwak9malZodVZUSG10?= =?utf-8?B?dGI4YzZJMm1uT2VoZHo1eUZsWFRKaDJ4MmhHbnV4NkRIZS9sNjNzcEJCallH?= =?utf-8?B?U01kdGRuMzhCZWZCYnh2U3BqWFNKOG92cGxacit4bGltaG5ZQ0I1cUZQRWVG?= =?utf-8?B?NzJDNDZoeVBsQ1ZzajA1cmNvYTJHeFB4S1JhWTBWUEEwZDRrRmZCMEl3Unlm?= =?utf-8?B?TzN6UXhDQ0IrRHIyaldlZnNzTjBrSWcwektqdXczU3NzTE1yWTNPdGwvRng3?= =?utf-8?B?R2d4Zzcvb3FlbXFsQXVMSElRZGU1ekdUN0U4NDYwVTZRUnZBT3VveFEvZ3NC?= =?utf-8?B?MWRmbDNZWXVIVUVOVCtnS1pFZG5Ga0o2WGlZR01CVVVzNE83eFRoNU1UMGdB?= =?utf-8?B?a1MrWHIzV3dHU3pDUVNTai9VeGpSaGZXdng0MW1vT0lzV29JZWtaLzU3UXRK?= =?utf-8?B?SXBFQjJqWnZvQ1E3QWtsUnNGaVVnOEZ6ME1jeGY3ekVqZFpDWHIyQWNOTkxz?= =?utf-8?B?QTBpVkhtaVFjdGF6bE9aUEczRk84dVBtelBxUHpOT3BpeWdCT1lMOW1TZXFN?= =?utf-8?B?QW5xRTVKTnRoMmdpaWV5Z1I5dkw4d3BuaGNkc2dzalNxdnAvay9XeXcxN2VW?= =?utf-8?B?SVZ0clgyR0ZONmJHVzJaeE5pTG9jWUNPTlR0My9IOUg3OXkwWXJkZllBOHh1?= =?utf-8?B?bHY1RHpoMlVoSlhzRUhBemJ2eUxXbkJhR2lNMGs2R09abHo0VlRYc1J0cEtY?= =?utf-8?B?VmtlSkY5UUNpd29kNFVpc0tEaFFTUW9xUHRzWkM5RkNFMU83MUJWS3hMZWV5?= =?utf-8?B?L0ZrRjRjVjZUdUdEMVVuM21TNG9zS1pPOC9zeGsvNDE0ckM2U2JxK25iT0tv?= =?utf-8?Q?PoLxMc/bV5cWIqCPhGVv8AUecY/6h2Ads0E3EOE04=3D?= X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtEQjRQUjA3TUIzMTQ7NjpoZUpweXpidXZzTktzdlhDd25xcUVlZFpEQnJU?= =?utf-8?B?UEYzR25VZC9GU1UvZ0xFaWJiaTNlTFZYM2hWMDJVT3hXQkNnWnZYU2doYnNx?= =?utf-8?B?Vm9tanFzU01mWmkrcUpvaURrSnZkRHlqZlo4Nlo0MytOMXdnbE4yVTFjWUVU?= =?utf-8?B?bkpFUWpiblk5QjZDSXN6MTNWMWlVVG0zOVd2QlFKV0kxV3pwN1c2eWJaNGt4?= =?utf-8?B?NVYvb0NxTGtrbkFPSTBvblkrU0lpL1VnTjNleGRSd05Za2VzOGdTYm55aUM4?= =?utf-8?B?b2pnQnZMMWVzaEZGMGI3TkJtaHVQbEV2S1l6YmRyQ3VmaGFCem1KSWZKeC9Y?= =?utf-8?B?YXprNkRxVGNNRVpTSE1BQXh6cVd3b01ub3FQR3Bsc08reEk0OTVWOUpMbU1C?= =?utf-8?B?bENSZE05U1VoUHdUOHRIQWYvdjB4bU1pdmthOFlSNUhPelFaQ0VpUS80NC9O?= =?utf-8?B?bXUvNTREZnpBYkl6bG5SUW55R0ZCSXpSTHp6cTI2M3NSRFRENU5hdk5OZ1lU?= =?utf-8?B?MnlzZ0xzTXAzU0x3U1hYQ3JpWit0YkE1YjBURSsyVCtGQ2R6Qk9FL3hFYXE4?= =?utf-8?B?YXdYb0VsWUhxZWtIWHZjUWdBSStvUm9KWXdacGFpQlNleVN0SThRSmlRemJr?= =?utf-8?B?VDh6TUIxa2F1bWlWWmYwZ2RRMC9kT0t5N3VEbmxqTTlneEFSRWN0eGVMaWJy?= =?utf-8?B?MW03REoxUlkwMjhoZHV0WEhqR0lzNlB2ek9CVDFuTWlOMDhGUlFXRDZlVGRV?= =?utf-8?B?Y2R0Sm5vWlpzVlVpZ2VIK3laWHlUNUk3UUpVNlBlNnZEeGNQK2d4RWY0c0x5?= =?utf-8?B?TFZKVzBPRTduWTFtNFdMQWM2ejUvQUt6dzRmME9zWWJwYXE0cTJTb3M3dE9O?= =?utf-8?B?OXdtY2ZZMWpvZk9xUXJtOXY1WkdXMXdrUG5PZTA2ZUpFR2tlUlRXUmdoNDc4?= =?utf-8?B?SzlyaTdEbFFhM2hnaWVhQlg1dkJYSDR6TzJTVGhzejdNQ09XOS9xNVVUNlp6?= =?utf-8?B?aVhheUU2NUoyZ1gyUkFwUVZ0QTV4czlIM1FNRjBPbUZaUCs0dndKWnpWSWNt?= =?utf-8?B?eUtnL0MvVTM4Q0pldWZQOFAzQlY1ZEIxWmNmZml4TWxvYXE4anRseWN4MlVz?= =?utf-8?B?R1oyVkpRYkZwU2dMdzhzeUlGajQ3SnN0bkdxM2xzWFRFdlV4K0Jia2w1c2pM?= =?utf-8?B?SnZxZTA3KzQxR2xOZXMvK2dpalF4cmhDL053MW5kaVUwTjRPOU1vKzF6NGE5?= =?utf-8?B?QzJaTjNuNFdsZ2k0eUE5Qnk0bEprNFcvNy9qV3Y2cUx0amM3dXdxczRkclNt?= =?utf-8?Q?j6brQlQ2FEkYYCtvTD0A3C2E7BRYwc=3D?= X-Microsoft-Exchange-Diagnostics: 1; DB4PR07MB314; 5:sUt9LfyY14yrPwrwJfSq3kM4Wc5BwT8WmAFlHXAXqPJmpA14ZuZ/nPhiSImrM8swSWJO9oNXx+3lfv/hkbiRSm5EYwJ2dTCkh2CKYMqTqIzCaL1zvUEGOEkakj42umO/w/1UtYSuQZmoQNiaj7fxOcL7K8B0uc/DEQGNy0kmY4lGoablYAbOsw9PCTuUpBBgmgGMkeIPwE3hceo5AN6K43EUEWO5dsUpNzEd10hAnNNTcA3Ykd5V8L5gJEMnFBsDm7UBes+k4PBtR/7wcevbje7T6bl6ozGeCP0XP/8rTVHFNvVxiRpfEMfyJ6AlxYwnKq5TEWcmAvsEhDASNlj41u8LMxn7M2lDPS1ADvLKov8W0hoNXgGPfJH+bf/32kkwaBBFQLQokB+TpHgwVrTrvL1suSxMHZYvvHEHlZm4CIdcb6pviW9hGbwxcFU+YARemjA99om83l2enJTpYlM9B4exP3AmDJRWfQinlCKpgrcfXNM1qtlg7Q4DPCwO0Ulq; 24:mdTkag6jNxgb4sRUfTcxwVZ1q1rrBKgp6s21G8jwdFAdbgY1H8IxDpXI++O0IpzYRP4Cw+qonLGl8zrMmRxhF/0t/p8Y1AdCUWb7o7+tUW0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DB4PR07MB314; 7:vKKfC351uEzma4lbypuxh3W5KNYDljYQfYmZFtjQVi3IM/WLlG0C6LuPlanCxuVZ7jf2xUc34ZaePAQ+H/hWLqCTL8hHnD4kED2mnmXNaA69H1KII1BK1F10s/MvVqaPFyrBb6822i4rJRc+Nc6kLXO5NWH60gNUxQCjGpXPGBj0rdfAjgFFJP22zlfIbYxcsdjifIs7omTNNTmF7bxafKZ0oT6VpkG9HLGIfSd+4qnuMMa9mQjzRf2udtG7mftq6Yz/OPjB9eG7Sp6yUo61D8iaoyONbKDfYFpeLiCU9XfMl/rshyJgDpJUPmFNvDmOLT+/lFdZULy8g/LYf+/vKdomGtc1nzjrmXi5m98CDQ1DebcdgYWW/Wbgkl29+H61xup2wp/69eg5nzhAZ1Is00UMiUX6WZooGX11lXnGJ20q//Ud4R18F87ZGew6QUfWa5jtUDxrOHATLAhJOxgrh+698IRHwOcA8W72thl7qkIsr/ZUiz0t7Zc70XOEziyw5y2Yhcl02BHcVIDYlAn0mFEjoTjBuXDL+XJKIHSvCjt9VLCtJUtbeQAnlBa9skw32Ro0a+HDSya5xShpnotorEuleNMjCPLDLmx5ySRLfOXaa1pJNsaimR1jQJksijwEKw/u2biJDJbIXyT391/1NFFxFOnKoLxZDHyc/qkVaTHJQ99sb9DBxYSlofYs59yhyTM3hVb4rRctScMsHGo8LZ+5XiRvP5zmaxkn25aGt+jsabmyvVKm5AVNbRREtCW81FXk9qptDi6AS/IA11C01f9mPuKXTO/d1yPNd19geag= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Jul 2017 09:00:08.6015 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR07MB314 X-OriginatorOrg: ericsson.com X-IsSubscribed: yes On 2017-07-26 09:42 AM, Yao Qi wrote: > Simon Marchi writes: > >> /* Convenience wrapper. Returns true if LWP is presently collecting a >> fast tracepoint. */ >> > > The comments should be updated too. Yeah of course. >> -static int >> +static fast_tpoint_collect_result >> linux_fast_tracepoint_collecting (struct lwp_info *lwp, >> struct fast_tpoint_collect_status *status) >> { > > >> diff --git a/gdb/gdbserver/linux-low.h b/gdb/gdbserver/linux-low.h >> index 6328da0..18ca6a0 100644 >> --- a/gdb/gdbserver/linux-low.h >> +++ b/gdb/gdbserver/linux-low.h >> @@ -26,6 +26,7 @@ >> /* Included for ptrace type definitions. */ >> #include "nat/linux-ptrace.h" >> #include "target/waitstatus.h" /* For enum target_stop_reason. */ >> +#include "tracepoint.h" >> >> #define PTRACE_XFER_TYPE long >> >> @@ -358,7 +359,7 @@ struct lwp_info >> return to the jump pad. Normally, we won't care about this, but >> we will if a signal arrives to this lwp while it is >> collecting. */ >> - int collecting_fast_tracepoint; >> + fast_tpoint_collect_result collecting_fast_tracepoint; > > The comments should be updated too. Indeed. >> >> /* If this is non-zero, it points to a chain of signals which need >> to be reported to GDB. These were deferred because the thread > > Otherwise, the patch is good to me. Thanks, here is what I pushed: From 229d26fc9ebca61b8d899cf8fe4342a6cc9795ff Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Wed, 26 Jul 2017 10:55:35 +0200 Subject: [PATCH] Add enum for result of fast_tracepoint_collecting I got confused by the result value of fast_tracepoint_collecting, while it sounds like it would return true/false (whether the thread is collecting or not), it actually returns: 0: not collecting 1: in the jump pad, before the relocated instruction 2: in the jump pad, at or after the relocated instruction To avoid confusion, I think it would be nice to make it return an enum. If you can help find a shorter but still relavant name, it would be awesome. Otherwise, we'll go with that, fast_tpoint_collect_result, which is at least consistent with the existing fast_tpoint_collect_status. gdb/gdbserver/ChangeLog: * tracepoint.h (enum class fast_tpoint_collect_result): New enumeration. (fast_tracepoint_collecting): Change return type to fast_tpoint_collect_result. * tracepoint.c (fast_tracepoint_collecting): Likewise. * linux-low.h: Include tracepoint.h. (struct lwp_info) : Change type to fast_tpoint_collect_result. * linux-low.c (handle_tracepoints): Adjust. (linux_fast_tracepoint_collecting): Change return type to fast_tpoint_collect_result. (maybe_move_out_of_jump_pad, linux_wait_for_event_filtered, linux_wait_1, stuck_in_jump_pad_callback, lwp_signal_can_be_delivered, linux_resume_one_lwp_throw, proceed_one_lwp): Adjust to type change. --- gdb/gdbserver/ChangeLog | 18 +++++++++++++ gdb/gdbserver/linux-low.c | 65 +++++++++++++++++++++++++++------------------- gdb/gdbserver/linux-low.h | 12 ++++----- gdb/gdbserver/tracepoint.c | 18 ++++++------- gdb/gdbserver/tracepoint.h | 22 +++++++++++++--- 5 files changed, 91 insertions(+), 44 deletions(-) diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index c505ccf..fdc07f2 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,21 @@ +2017-07-26 Simon Marchi + + * tracepoint.h (enum class fast_tpoint_collect_result): New + enumeration. + (fast_tracepoint_collecting): Change return type to + fast_tpoint_collect_result. + * tracepoint.c (fast_tracepoint_collecting): Likewise. + * linux-low.h: Include tracepoint.h. + (struct lwp_info) : Change type to + fast_tpoint_collect_result. + * linux-low.c (handle_tracepoints): Adjust. + (linux_fast_tracepoint_collecting): Change return type to + fast_tpoint_collect_result. + (maybe_move_out_of_jump_pad, linux_wait_for_event_filtered, + linux_wait_1, stuck_in_jump_pad_callback, + lwp_signal_can_be_delivered, linux_resume_one_lwp_throw, + proceed_one_lwp): Adjust to type change. + 2017-07-10 Yao Qi * linux-x86-low.c (x86_linux_read_description): Re-indent the code. diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c index 3d7cfe3..fd46d85 100644 --- a/gdb/gdbserver/linux-low.c +++ b/gdb/gdbserver/linux-low.c @@ -2082,7 +2082,9 @@ handle_tracepoints (struct lwp_info *lwp) lwp_suspended_decr (lwp); gdb_assert (lwp->suspended == 0); - gdb_assert (!stabilizing_threads || lwp->collecting_fast_tracepoint); + gdb_assert (!stabilizing_threads + || (lwp->collecting_fast_tracepoint + != fast_tpoint_collect_result::not_collecting)); if (tpoint_related_event) { @@ -2094,10 +2096,10 @@ handle_tracepoints (struct lwp_info *lwp) return 0; } -/* Convenience wrapper. Returns true if LWP is presently collecting a - fast tracepoint. */ +/* Convenience wrapper. Returns information about LWP's fast tracepoint + collection status. */ -static int +static fast_tpoint_collect_result linux_fast_tracepoint_collecting (struct lwp_info *lwp, struct fast_tpoint_collect_status *status) { @@ -2105,14 +2107,14 @@ linux_fast_tracepoint_collecting (struct lwp_info *lwp, struct thread_info *thread = get_lwp_thread (lwp); if (the_low_target.get_thread_area == NULL) - return 0; + return fast_tpoint_collect_result::not_collecting; /* Get the thread area address. This is used to recognize which thread is which when tracing with the in-process agent library. We don't read anything from the address, and treat it as opaque; it's the address itself that we assume is unique per-thread. */ if ((*the_low_target.get_thread_area) (lwpid_of (thread), &thread_area) == -1) - return 0; + return fast_tpoint_collect_result::not_collecting; return fast_tracepoint_collecting (thread_area, lwp->stop_pc, status); } @@ -2136,14 +2138,14 @@ maybe_move_out_of_jump_pad (struct lwp_info *lwp, int *wstat) && agent_loaded_p ()) { struct fast_tpoint_collect_status status; - int r; if (debug_threads) debug_printf ("Checking whether LWP %ld needs to move out of the " "jump pad.\n", lwpid_of (current_thread)); - r = linux_fast_tracepoint_collecting (lwp, &status); + fast_tpoint_collect_result r + = linux_fast_tracepoint_collecting (lwp, &status); if (wstat == NULL || (WSTOPSIG (*wstat) != SIGILL @@ -2153,9 +2155,10 @@ maybe_move_out_of_jump_pad (struct lwp_info *lwp, int *wstat) { lwp->collecting_fast_tracepoint = r; - if (r != 0) + if (r != fast_tpoint_collect_result::not_collecting) { - if (r == 1 && lwp->exit_jump_pad_bkpt == NULL) + if (r == fast_tpoint_collect_result::before_insn + && lwp->exit_jump_pad_bkpt == NULL) { /* Haven't executed the original instruction yet. Set breakpoint there, and wait till it's hit, @@ -2181,9 +2184,10 @@ maybe_move_out_of_jump_pad (struct lwp_info *lwp, int *wstat) reporting to GDB. Otherwise, it's an IPA lib bug: just report the signal to GDB, and pray for the best. */ - lwp->collecting_fast_tracepoint = 0; + lwp->collecting_fast_tracepoint + = fast_tpoint_collect_result::not_collecting; - if (r != 0 + if (r != fast_tpoint_collect_result::not_collecting && (status.adjusted_insn_addr <= lwp->stop_pc && lwp->stop_pc < status.adjusted_insn_addr_end)) { @@ -2715,7 +2719,8 @@ linux_wait_for_event_filtered (ptid_t wait_ptid, ptid_t filter_ptid, if (stopping_threads == NOT_STOPPING_THREADS && requested_child->status_pending_p - && requested_child->collecting_fast_tracepoint) + && (requested_child->collecting_fast_tracepoint + != fast_tpoint_collect_result::not_collecting)) { enqueue_one_deferred_signal (requested_child, &requested_child->status_pending); @@ -3467,20 +3472,22 @@ linux_wait_1 (ptid_t ptid, } } - if (event_child->collecting_fast_tracepoint) + if (event_child->collecting_fast_tracepoint + != fast_tpoint_collect_result::not_collecting) { if (debug_threads) debug_printf ("LWP %ld was trying to move out of the jump pad (%d). " "Check if we're already there.\n", lwpid_of (current_thread), - event_child->collecting_fast_tracepoint); + (int) event_child->collecting_fast_tracepoint); trace_event = 1; event_child->collecting_fast_tracepoint = linux_fast_tracepoint_collecting (event_child, NULL); - if (event_child->collecting_fast_tracepoint != 1) + if (event_child->collecting_fast_tracepoint + != fast_tpoint_collect_result::before_insn) { /* No longer need this breakpoint. */ if (event_child->exit_jump_pad_bkpt != NULL) @@ -3507,7 +3514,8 @@ linux_wait_1 (ptid_t ptid, } } - if (event_child->collecting_fast_tracepoint == 0) + if (event_child->collecting_fast_tracepoint + == fast_tpoint_collect_result::not_collecting) { if (debug_threads) debug_printf ("fast tracepoint finished " @@ -4192,7 +4200,8 @@ stuck_in_jump_pad_callback (struct inferior_list_entry *entry, void *data) && (gdb_breakpoint_here (lwp->stop_pc) || lwp->stop_reason == TARGET_STOPPED_BY_WATCHPOINT || thread->last_resume_kind == resume_step) - && linux_fast_tracepoint_collecting (lwp, NULL)); + && (linux_fast_tracepoint_collecting (lwp, NULL) + != fast_tpoint_collect_result::not_collecting)); } static void @@ -4369,7 +4378,8 @@ single_step (struct lwp_info* lwp) static int lwp_signal_can_be_delivered (struct lwp_info *lwp) { - return !lwp->collecting_fast_tracepoint; + return (lwp->collecting_fast_tracepoint + == fast_tpoint_collect_result::not_collecting); } /* Resume execution of LWP. If STEP is nonzero, single-step it. If @@ -4381,7 +4391,6 @@ linux_resume_one_lwp_throw (struct lwp_info *lwp, { struct thread_info *thread = get_lwp_thread (lwp); struct thread_info *saved_thread; - int fast_tp_collecting; int ptrace_request; struct process_info *proc = get_thread_process (thread); @@ -4397,9 +4406,12 @@ linux_resume_one_lwp_throw (struct lwp_info *lwp, gdb_assert (lwp->waitstatus.kind == TARGET_WAITKIND_IGNORE); - fast_tp_collecting = lwp->collecting_fast_tracepoint; + fast_tpoint_collect_result fast_tp_collecting + = lwp->collecting_fast_tracepoint; - gdb_assert (!stabilizing_threads || fast_tp_collecting); + gdb_assert (!stabilizing_threads + || (fast_tp_collecting + != fast_tpoint_collect_result::not_collecting)); /* Cancel actions that rely on GDB not changing the PC (e.g., the user used the "jump" command, or "set $pc = foo"). */ @@ -4455,7 +4467,7 @@ linux_resume_one_lwp_throw (struct lwp_info *lwp, if (can_hardware_single_step ()) { - if (fast_tp_collecting == 0) + if (fast_tp_collecting == fast_tpoint_collect_result::not_collecting) { if (step == 0) warning ("BAD - reinserting but not stepping."); @@ -4468,14 +4480,14 @@ linux_resume_one_lwp_throw (struct lwp_info *lwp, step = maybe_hw_step (thread); } - if (fast_tp_collecting == 1) + if (fast_tp_collecting == fast_tpoint_collect_result::before_insn) { if (debug_threads) debug_printf ("lwp %ld wants to get out of fast tracepoint jump pad" " (exit-jump-pad-bkpt)\n", lwpid_of (thread)); } - else if (fast_tp_collecting == 2) + else if (fast_tp_collecting == fast_tpoint_collect_result::at_insn) { if (debug_threads) debug_printf ("lwp %ld wants to get out of fast tracepoint jump pad" @@ -5294,7 +5306,8 @@ proceed_one_lwp (struct inferior_list_entry *entry, void *except) if (thread->last_resume_kind == resume_stop && lwp->pending_signals_to_report == NULL - && lwp->collecting_fast_tracepoint == 0) + && (lwp->collecting_fast_tracepoint + == fast_tpoint_collect_result::not_collecting)) { /* We haven't reported this LWP as stopped yet (otherwise, the last_status.kind check above would catch it, and we wouldn't diff --git a/gdb/gdbserver/linux-low.h b/gdb/gdbserver/linux-low.h index 6328da0..2bf7e7c 100644 --- a/gdb/gdbserver/linux-low.h +++ b/gdb/gdbserver/linux-low.h @@ -26,6 +26,7 @@ /* Included for ptrace type definitions. */ #include "nat/linux-ptrace.h" #include "target/waitstatus.h" /* For enum target_stop_reason. */ +#include "tracepoint.h" #define PTRACE_XFER_TYPE long @@ -353,12 +354,11 @@ struct lwp_info and then processed and cleared in linux_resume_one_lwp. */ struct thread_resume *resume; - /* True if it is known that this lwp is presently collecting a fast - tracepoint (it is in the jump pad or in some code that will - return to the jump pad. Normally, we won't care about this, but - we will if a signal arrives to this lwp while it is - collecting. */ - int collecting_fast_tracepoint; + /* Information bout this lwp's fast tracepoint collection status (is it + currently stopped in the jump pad, and if so, before or at/after the + relocated instruction). Normally, we won't care about this, but we will + if a signal arrives to this lwp while it is collecting. */ + fast_tpoint_collect_result collecting_fast_tracepoint; /* If this is non-zero, it points to a chain of signals which need to be reported to GDB. These were deferred because the thread diff --git a/gdb/gdbserver/tracepoint.c b/gdb/gdbserver/tracepoint.c index d4fe76a..68ce10f 100644 --- a/gdb/gdbserver/tracepoint.c +++ b/gdb/gdbserver/tracepoint.c @@ -5581,7 +5581,7 @@ force_unlock_trace_buffer (void) case, if we want to move the thread out of the jump pad, we need to single-step it until this function returns 0. */ -int +fast_tpoint_collect_result fast_tracepoint_collecting (CORE_ADDR thread_area, CORE_ADDR stop_pc, struct fast_tpoint_collect_status *status) @@ -5656,7 +5656,7 @@ fast_tracepoint_collecting (CORE_ADDR thread_area, if (tpoint == NULL) { warning ("in jump pad, but no matching tpoint?"); - return 0; + return fast_tpoint_collect_result::not_collecting; } else { @@ -5684,7 +5684,7 @@ fast_tracepoint_collecting (CORE_ADDR thread_area, if (tpoint == NULL) { warning ("in trampoline, but no matching tpoint?"); - return 0; + return fast_tpoint_collect_result::not_collecting; } else { @@ -5712,14 +5712,14 @@ fast_tracepoint_collecting (CORE_ADDR thread_area, { trace_debug ("fast_tracepoint_collecting:" " failed reading 'collecting' in the inferior"); - return 0; + return fast_tpoint_collect_result::not_collecting; } if (!ipa_collecting) { trace_debug ("fast_tracepoint_collecting: not collecting" " (and nobody is)."); - return 0; + return fast_tpoint_collect_result::not_collecting; } /* Some thread is collecting. Check which. */ @@ -5732,7 +5732,7 @@ fast_tracepoint_collecting (CORE_ADDR thread_area, { trace_debug ("fast_tracepoint_collecting: not collecting " "(another thread is)"); - return 0; + return fast_tpoint_collect_result::not_collecting; } tpoint @@ -5742,7 +5742,7 @@ fast_tracepoint_collecting (CORE_ADDR thread_area, warning ("fast_tracepoint_collecting: collecting, " "but tpoint %s not found?", paddress ((CORE_ADDR) ipa_collecting_obj.tpoint)); - return 0; + return fast_tpoint_collect_result::not_collecting; } /* The thread is within `gdb_collect', skip over the rest of @@ -5769,7 +5769,7 @@ fast_tracepoint_collecting (CORE_ADDR thread_area, fast_tracepoint_collecting, returning continue-until-break at %s", paddress (tpoint->adjusted_insn_addr)); - return 1; /* continue */ + return fast_tpoint_collect_result::before_insn; /* continue */ } else { @@ -5780,7 +5780,7 @@ fast_tracepoint_collecting, returning continue-until-break at %s", paddress (tpoint->adjusted_insn_addr), paddress (tpoint->adjusted_insn_addr_end)); - return 2; /* single-step */ + return fast_tpoint_collect_result::at_insn; /* single-step */ } } diff --git a/gdb/gdbserver/tracepoint.h b/gdb/gdbserver/tracepoint.h index 799a16c..31103a3 100644 --- a/gdb/gdbserver/tracepoint.h +++ b/gdb/gdbserver/tracepoint.h @@ -115,9 +115,25 @@ struct fast_tpoint_collect_status CORE_ADDR adjusted_insn_addr_end; }; -int fast_tracepoint_collecting (CORE_ADDR thread_area, - CORE_ADDR stop_pc, - struct fast_tpoint_collect_status *status); +/* The possible states a thread can be in, related to the collection of fast + tracepoint. */ + +enum class fast_tpoint_collect_result +{ + /* Not collecting a fast tracepoint. */ + not_collecting, + + /* In the jump pad, but before the relocated instruction. */ + before_insn, + + /* In the jump pad, but at (or after) the relocated instruction. */ + at_insn, +}; + +fast_tpoint_collect_result fast_tracepoint_collecting + (CORE_ADDR thread_area, CORE_ADDR stop_pc, + struct fast_tpoint_collect_status *status); + void force_unlock_trace_buffer (void); int handle_tracepoint_bkpts (struct thread_info *tinfo, CORE_ADDR stop_pc);