From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 57566 invoked by alias); 3 Oct 2017 22:42:03 -0000 Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org Received: (qmail 57550 invoked by uid 89); 3 Oct 2017 22:42:02 -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,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS autolearn=ham version=3.3.2 spammy= X-HELO: NAM01-BN3-obe.outbound.protection.outlook.com Received: from mail-bn3nam01on0119.outbound.protection.outlook.com (HELO NAM01-BN3-obe.outbound.protection.outlook.com) (104.47.33.119) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 03 Oct 2017 22:42:01 +0000 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=zheng432@purdue.edu; Received: from WangdeMacBook-Air.local (128.210.107.73) by DM5PR0801MB3799.namprd08.prod.outlook.com (2603:10b6:4:81::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7; Tue, 3 Oct 2017 22:41:58 +0000 To: gdb@sourceware.org From: Yifei Zheng Subject: How to implement a new Python command that takes values from tty? Message-ID: <42da207c-05cf-9648-bba7-650611a7bff4@purdue.edu> Date: Tue, 03 Oct 2017 22:42:00 -0000 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: DM5PR15CA0059.namprd15.prod.outlook.com (2603:10b6:3:ae::21) To DM5PR0801MB3799.namprd08.prod.outlook.com (2603:10b6:4:81::21) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1bef6fee-be5b-487f-fa92-08d50aaff4eb X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(2017030254152)(2017052603199)(201703131423075)(201703031133081)(201702281549075);SRVR:DM5PR0801MB3799; X-Microsoft-Exchange-Diagnostics: 1;DM5PR0801MB3799;3:gIv6PYozNPh65nam/47egXad0uxe4dVOjw0jIkQReX7U8yjGGz5E77RbV5x5hPAY36FAlTjakNQ4kio/MakloJgMISJgoM88ANmy7Y10GMeDypOeAQwANyCoMPtwK99xBTOz5sJb3HJn1AbwRWdXuZhJNoy67VZVXIfyeRp7tkuM4EtztRY1aQtx4COKnjXEj1PVJktIa6FzE4uFxAqWbtScwWm/mdEC6SPHF+zZwRsxIH6atXkcgdRCbm9cldp+;25:e0iB082vs9gy2ZU3vfGhZz03HzC70w3yOBafUXuGIzjuFbhLM92kDHDFFlcAbF0QsUhjrImaiPt2IK9AuVMA6c3VWgFrZZAHvRmlhr3hP5hY9wHqXU7JT2NVH1V7ZJybhPBERGc7ykcybaI5hhqV2ihiHCHaaxjRmeqk48eHiKFE2tE8navr6k+WH4zYOGn9ANaZKcwClnfLO9ninwPLZu9DDqv8ZWndrCJ+88Wqu56v3rDGgnBXc4x49EOUXvTbfFO3ZHzwZJ67mgk8aYepUpVgxnqQm0umCFd4gI37K0DDNSla0YrHRI0fhgBGVDDeXoUlrM0JTzZDCVOReKB+gA==;31:EC9Xn7T8B09VPbqhSm6TxeDUUlN/FYHiUUk9PGjgeH4odtwLwkD/DLGo/Z++7Krb0AZrJ+Q1H9zBWFuO4zRkXTowkJoPKbnSc46XJ2BJzQmQRVH6fjLCK76otPZCc71WdIuEiq6BkleU1lGCZ2IommxEejnatusOUMNmUG17inKUhKeKTGl0nxR1VkVs7vfhp+jaCvAarIt2wYRhoujebat2tH6VQ02Apz/7tWDNRi0= X-MS-TrafficTypeDiagnostic: DM5PR0801MB3799: X-Microsoft-Exchange-Diagnostics: 1;DM5PR0801MB3799;20:hVUj4mHEQqnvxbPb+OPg+vWg5QDajzKOZaLMLlHMNtReg+RfjwVe4+69MbglQFyOYAeh7P9fu21jAh0W6W08fOUJvczL02vxwKZ4brB1rvkuBfRzxfZSqYiUZs8J2ysVWKrby9eec71i2YGQVUswiWwAkLBJcujDtxZ8vF1XV/vlT5pVwFlKbNvZZZ2/HKCqYLIhReOjwcU7mvWfN/og2n0D2ka2ITEsVATw1xMsi6vpb/f9USMwRBFOeNiyD2KIzUc78+ETtaad9Sn4+urB2BwkBjpxhN7FhH+lYpDb7A/TnhemKca8cnQkEt9Wy1mnuSpff6bfy97gcHm+B2VMcQ8gwzmyLQH5UVo+18Dq0rgMX+gtVy7IPm07vvjvN/+sKQ1rUsFJs2S1DfrRYS3uphmScHoxgNVLUFTickEp6xOjzzB2dLy9+3XskYy27UGbDiWkL74E0LU1vyqAL4p6h/5x3WnxB9TGziNnf2m6XsJnMY5df9pkTuQ0FN0sDIxQ;4:h7u+NWN/8mjeAJ98GS9tFeBzjidcG67xxAQDhyib0pxhk3AUjr6+fXwyWffMWER/r/9Y10kgwxRkECqBKgC0wWZ7931bal/lUzj8Q6IeSdUq6fjUFYCCbMDTuuMrUvxAxUsaXZRPZb5emulKkG22cREUj0OcCiclLnZ4BUhjH1GMYU5Y7WG3G3fnR+8FVUbHR3isA+GQqGbnrXUlBbZjb+dChyR/7f2Vh/q5XgPemLcBhdLT6NtAKlpuUcRDwrfY X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(3002001)(100000703101)(100105400095)(93006095)(93001095)(10201501046)(6041248)(201703131423075)(201702281529075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123564025)(20161123558100)(20161123562025)(20161123555025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:DM5PR0801MB3799;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:DM5PR0801MB3799; X-Forefront-PRVS: 044968D9E1 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(6009001)(346002)(376002)(189002)(199003)(8676002)(316002)(50986999)(6116002)(81156014)(3846002)(6506006)(81166006)(86362001)(6486002)(105586002)(54356999)(47776003)(31686004)(106356001)(6916009)(31696002)(25786009)(7736002)(64126003)(786003)(101416001)(53936002)(33646002)(6512007)(83506001)(36756003)(23676002)(50466002)(75432002)(2906002)(65826007)(5660300001)(88552002)(478600001)(68736007)(2361001)(189998001)(66066001)(305945005)(8936002)(65806001)(2351001)(97736004)(65956001)(58126008)(16526018)(230700001);DIR:OUT;SFP:1102;SCL:1;SRVR:DM5PR0801MB3799;H:WangdeMacBook-Air.local;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; Received-SPF: None (protection.outlook.com: purdue.edu does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTVQUjA4MDFNQjM3OTk7MjM6QlcyOHJZV2doOW1yWUMxM25JNGozcndz?= =?utf-8?B?MTNPNjN5Nkg4aGtNRkY5cDM0eFlGbGUrODJ4NjdIOU1ab2RTTDJOZXowN1Jy?= =?utf-8?B?OGh2S1lDZnIwN3psVVFrS3ZQTnQ3alZGUHQvS09hdElwcDJzanlQaVQ4MDNN?= =?utf-8?B?YW1qbmMwU1JZblh0S09XOFRpalZlVXBjQVJEanNVbWQvRE9RU2p4cFh1SGtx?= =?utf-8?B?S0M0TkwzZWE3YzA0Vm1GdUhXYVlna25Hc3dQS1N2dnd1YVFuQ1hoNjNzWkZW?= =?utf-8?B?TnljeU9FSEdyaDB2N0FXbEFOTHpJTDdVOXNCVFFZekZsRmJRQ21CaFJjRzdx?= =?utf-8?B?cmRhOEhlaERHd3NjTUZpdXozcUt6ZCt2U0xtUDFaYkhjR0tyN2xyNm1rTnc0?= =?utf-8?B?TWwvSnQyd0xzOGlHclJDNWF1UUJHdEVmUVMvd0NmNW9wczM1VFZVR2ovaXFC?= =?utf-8?B?UkxzQlJDZ3dpdERXa0d5c3FoS3pDNFZjbVg0Wi9RYlFxQmN6dGFlcS9DcEZ1?= =?utf-8?B?YWJUZTdtdzlES3k4eVBTaUdINmhWeG5UdlpUUkk0akJhNU85R3FjQTBvWTNZ?= =?utf-8?B?c1lTNDZCRmFzTDRrSmcrRVNmRjZiU0taMUQzSTRYVyszTUV5NjhXdFFhb0ow?= =?utf-8?B?eHdLcXowbVNXOEtPWkpCVTZiODZaOENxR0dwUkhBREJnWkRPdXRZWnBuSVVY?= =?utf-8?B?QjZBeC96eTVnMy9YcW5kdkdDY05raE1tMm81UGMrOHhRanZrVUx1cUNKbTJr?= =?utf-8?B?SUxUSjlRM3lyRi9xdDRSNDhjeUVETjlrYTdkaVJONjhxdmQ0dkNiY2FYeU5s?= =?utf-8?B?bkNSeE1GZDZXZ0JPajRRUms0V0c2ckdGcnhwZW1VNlRZeHowTGRlV3dXTm81?= =?utf-8?B?QkNQaWtMNW1ZQzRDZmdWbkF3OXZjekt3dnBWVzJ1MDBBRWo1VWhyUENkSG1k?= =?utf-8?B?THIraHZJVk9scXJ6NWE4MVdhaDUwS2hkV0xHTXhFdDhQaGFzNXMyS1lTVlo1?= =?utf-8?B?VXhXNW9RV0lxNldCN09KdzU5aG51cjVma2VNYURlT3ExV3J0dER4K2RjUGJy?= =?utf-8?B?cE9JeGphSzYvSURZTytjN201aEhYZk0yclJ2WC9tOVJyVUNvNmk1Y0xDNnRr?= =?utf-8?B?b3BXcXNUcEpBRDVaWU9hOHdocnQ0cjM0ckFWWGxLOXZhdThYYmZIUFgrOTBY?= =?utf-8?B?Ry9Cd2FHWHQ3YXE2T0k1a0Y4QTZ4OVhpUWZ6Y1NWa2VlUlZYOXNGWUh1d3VV?= =?utf-8?B?NTlHK2tRckpRdklaZlVVc0pMOWNOc2tBWVhPUjROZHVSTm9OQ2puSHpmNTQ4?= =?utf-8?B?azhWczJSb2ZZTWYxZTVKZG1WMzVCZ0xNRU9udy9YVXRkR1l4QjQxbGdEWEkw?= =?utf-8?B?ZEpnK3FLM0R3SVA0YlhaNHl1cmwwdUVqS1pvNFQ0T2RMeDNuUTdjK2wrd0dr?= =?utf-8?B?RmFqbll1eWk3ODR4ekIrcW13dVdOdHFuNWh2bzczcS9laHhYL05BOVE2bmdm?= =?utf-8?B?WHA3eGVsTWVYZG1iZEdYa09oVVJsc3BoTTZycDkzZktYS0tuVFcwYUN1eCtK?= =?utf-8?B?UjJIMkkveGNNc3g4d1FNM3hIWmYyMUt4N2puSmRjQ1duSkZFYWV4eXpZbzJo?= =?utf-8?B?UHgzdi8rbThYU2ovYXJrYTV3citycWx2MUtnV3pkZWhYT2hycUpVNjNSZ1E9?= =?utf-8?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1;DM5PR0801MB3799;6:xv4Onx9ygdrYsjuygYIx7jRIzomA2I1MJuUHLO6iIouW3FSiQ9dFv4+H6hnxrXfkcg8p8MjvUB8IesbDrqss4ShsHgtWCmnH6jUrWnWZX8C9yp9Q86MsnuXRFXS6B5rrZ6d00xPgL+1BYNHCo/vn8m4gqVx6hNhjIDyUOSwe9qeiOYipShfpV8/1TrGxQZHpZ9+Kdwih/rLrNVk+fMjjh81KzauqWvo4gsXopsnpz72vSWtFWALW1CsQKce55nM/vp8c7EkyORtp9r6+um2NMI9YrGCTq9rk2AZa4rWgaeeBBxEln1InDJI+mj7hTdRu41PBOdNPH+d+WiH8YsqXLg==;5:euA8w3MEMI8hdY2lZQfFoCfV93lzJIRoMvAvQN6XAeHH5bveouCb5Gq0o8xtQcamNcsYK1DMcUATgHERbfZvSdQiRfGpPPY9M4i/piARxtkgxUaEjHcAT5Y+/H8jerzK61m6eU5Dqi9ndTnu+K1ttQ==;24:utfFvLs5HsN/+S+k3JDhLFIUnSsHorH9C5YCBEueHwLC1lVUlfoq5wAm44ilTHR3IcYnlUQqFPzwej/fn5zBbVWbzzdjkM3NwKRpZm0uPPE=;7:Hu2PCaingaXMur2oNXgFGtGlO3Q0mUUyKHXsYvt2RZH6uSgOGNl+IurUZbPdrLDSXiaywFEU6VTxSHgpiO6aHPv7wurvTsbUtAkPpNqDWih5Ndp8x157Q36OpAR2efNli6IRMzi8kHRjmrqemBwWFn+lABoLXTgJfGfvKZRRiizVAoFZPmfeWBq4ZX/142+4U1XrCGhgVGWNnnMCc2hHAPhT1EwNn1GO9gwouSDxIa8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: purdue.edu X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Oct 2017 22:41:58.6359 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4130bd39-7c53-419c-b1e5-8758d6d63f21 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR0801MB3799 X-SW-Source: 2017-10/txt/msg00002.txt.bz2 Hi there, I have written a few gdb pretty-printers using Python but this time I'm trying to write a new command in Python. I want it to take arguments from gdb and somewhat works like gdb's print. (It's a special printer for some kind of std::vector). I know I should start by inheriting `gdb.Command` and call `__init__`, but I'm definitely stuck on `invoke`. The arguments passed in are in string, which, I would like to convert them to gdb.Value, by looking them up somehow. I have a partially working version that uses "gdb.lookup_symbol", but it does not work for expressions (of course, expected). For example, say the command was called `ppack` which accepts an argument just as native `print` do. Desired syntax would be like "pprint some_var" or "pprint some_other_var.field1" or "pprint *some_ptr". How can I let gdb evaluates the expression for me so that I don't have to parse it, and then give me the value instead of the name? Thanks, Yifei