From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Yuan Fu Newsgroups: gmane.emacs.devel Subject: Extend gdb to filter registers Date: Thu, 3 Oct 2019 12:40:33 -0400 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="00000000000033296a0594043f1d" Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="83904"; mail-complaints-to="usenet@blaine.gmane.org" To: Emacs developers Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Oct 03 18:41:27 2019 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1iG4AQ-000LeV-JQ for ged-emacs-devel@m.gmane.org; Thu, 03 Oct 2019 18:41:26 +0200 Original-Received: from localhost ([::1]:38520 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iG4AP-0004rc-EU for ged-emacs-devel@m.gmane.org; Thu, 03 Oct 2019 12:41:25 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:55917) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iG49n-0004rR-RL for emacs-devel@gnu.org; Thu, 03 Oct 2019 12:40:49 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iG49m-0006sO-GN for emacs-devel@gnu.org; Thu, 03 Oct 2019 12:40:47 -0400 Original-Received: from mail-ot1-x334.google.com ([2607:f8b0:4864:20::334]:33268) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iG49m-0006sA-9s for emacs-devel@gnu.org; Thu, 03 Oct 2019 12:40:46 -0400 Original-Received: by mail-ot1-x334.google.com with SMTP id 60so2899606otu.0 for ; Thu, 03 Oct 2019 09:40:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=+ytto3OV6Qc3gRncQ9ScVAWWo4sAryDF5yaY2CRewBc=; b=KYUERCzsHDQgqhkeRF4TD+rf8NJ6HZsp/L6zl3iKHYjFGfZELKKh8urqv6cefAxHJ9 S2vkjj2a3yT/o17gWizt3jSQheAgXTaW3c5DLyVNx+agg8BhKYULm9SRG5gtx8rOhGg+ HHdq5AQgKi4X6l/KYUN0NCxZ9L+QGA9G8EnxnQLX6CW9U8EZgwQ547+jFhq3i9Yg/aDC d7nUk5sfnGdB8KjugiAqzamYAgV/HuBefnLcnC090MDH35H0V+v/iqbX3lbb/2ZKODMS rzicZc6V1hx/FXzFX4Nxe4tIPfGZjJAl8JBf5BcRYVMw+j7KCPwuja2S24/ZErjXKaBj sBDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=+ytto3OV6Qc3gRncQ9ScVAWWo4sAryDF5yaY2CRewBc=; b=CnLzmjLBPsG2wm7T7I/qAbhQ3ssMUkfZjDMSzUSV1x5PnL2cq8SEH/HjsrqkQsiPT8 0y8C6dIqhTvitbLScQzNvAas1VDeSP31REu5KG7WL6NirmsNUgEVXTefNMWuZLYw+hOM dosrlPK7Fq6lfZ7YlU3VAJ5HDX8+qcfReXuixIZ5shnRmJtQX1y0SCx1P7nZV9//G0P1 fKMHlgrY5uSJlWVzzrtPXv3/YCJBl3iLAo3iSconY14Y5eA1nM7A2GEDDfURVpETgoc5 QtxAaIvRMCb8MfoaaeX0KAFmGIbu/fzh213EnCi4nv+Ux0pOlgOLvs6JJezoZoiamdPx 2XAw== X-Gm-Message-State: APjAAAUD2Bg6+/eCkLCukWlABKbEQfCNg6TgmayMHwv4RQYw2ZPZ63rj 3qRZ1axNX/GXWKN0yiCx3Eq9AZnFQb/25xzb1TCHodkh8n2MEw== X-Google-Smtp-Source: APXvYqxLHETXUn3XEuB2Je13klFpRj5LIvupCTwU3tiAwl0q8Pko9wOsGboQkyZINHtaBjE1ZAiaL2BnTbfvJWOAHaE= X-Received: by 2002:a05:6830:10cc:: with SMTP id z12mr5494682oto.20.1570120844637; Thu, 03 Oct 2019 09:40:44 -0700 (PDT) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::334 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:240521 Archived-At: --00000000000033296a0594043f1d Content-Type: multipart/alternative; boundary="0000000000003329670594043f1b" --0000000000003329670594043f1b Content-Type: text/plain; charset="UTF-8" Hi, Currently the register buffer of gdb in Emacs displays all the registers. It would be nice if we can select some registers and ask gdb to only display these. I added this feature in the following patch. For you convenience I didn't modify the Emacs source but created a new file so you can just load it and see the effect. With the extension we can use `gdb-registers-add-to-display' to add registers to display. And use `gdb-registers-remove-from-display' to remove registers. Please see more details in the docstring. Change will be visible in the next update, e.g. after "si" in gdb. This is just a demo and there are many parts to complete, e.g., naming of interactive commands, change defvar to defcustom, docsting wording, update registers immediatly after `add-to-/remove-from-display*', *etc. I want to know what do you think before going further. Yuan --0000000000003329670594043f1b Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

Currently the register buffer of gdb in Emacs displays all the regist= ers. It would be nice if we can select some registers and ask gdb to only d= isplay these. I added this feature in the following patch. For you convenie= nce I didn't modify the Emacs source but created a new file so you can = just load it and see the effect.

With the extension we can use `gdb-registers-ad= d-to-display' to add registers to display. And use `gdb-registers-remov= e-from-display' to remove registers. Please see more details in the doc= string. Change will be visible in the next update, e.g. after "si"= ; in gdb.

This is just a demo and there are many parts to complete, e.g., na= ming of interactive commands, change defvar to defcustom, docsting wording,= update registers immediatly after `add-to-/remove-from-display', etc. I want to know what do you think before going further.

Yuan

--0000000000003329670594043f1b-- --00000000000033296a0594043f1d Content-Type: text/x-emacs-lisp; charset="UTF-8"; name="gdb-ext.el" Content-Disposition: attachment; filename="gdb-ext.el" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k1axbt0m0 Ozs7IC0qLSBsZXhpY2FsLWJpbmRpbmc6IHQgLSotCgo7OzsgUmVnaXN0ZXIgZmlsdGVyCgooZGVm dmFyIGdkYi1kaXNwbGF5LXRoZXNlLXJlZ2lzdGVycyB0CiAgIlJlZ2lzdGVycyB0aGF0IGFyZSBk aXNwbGF5ZWQgaW4gcmVnaXN0ZXIgYnVmZmVyLgpDYW4gYmUgYSBsaXN0LCBhIGZ1bmN0aW9uIG9y IHQvbmlsLgpJZiBhIGxpc3QsIHJlZ2lzdGVycyB3aGljaCBuYW1lcyBjYW4gYmUgZm91bmQgaW4g dGhlIGxpc3QgYXJlIGRpc3BsYXllZC4KSWYgYSBmdW5jdGlvbiwgaXQgaXMgcGFzc2VkIHdpdGgg YSByZWdpc3RlciBuYW1lIGFuZCBzaG91bGQKcmV0dXJuIHQgdG8gZGlzcGxheSBhbmQgbmlsIHRv IG5vdCBkaXNwbGF5LgpJZiB0L25pbCwgZGlzcGxheSBhbGwgcmVnaXN0ZXJzIC8gbm9uZSBvZiB0 aGUgcmVnaXN0ZXJzLiIpCgooZGVmdW4gZ2RiLXJlZ2lzdGVycy1hZGQtdG8tZGlzcGxheSAocmVn aXN0ZXIpCiAgIkFkZCBSRUdJU1RFUiB0byBkaXNwbGF5IGluIHJlZ2lzdGVyIGJ1ZmZlci4KUkVH SVNURVIgaXMgYSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBuYW1lIG9mIHRoZSByZWdpc3Rlci4K QnkgZGVmYXVsdCB0aGUgcmVnaXN0ZXIgYnVmZmVyIGRpc3BsYXlzIGFsbCB0aGUgcmVnaXN0ZXJz LgpSRUdJU1RFUiBjYW4gYWxzbyBiZSAnYWxsLCB3aGljaCBjb25maWd1cmVzIGdkYiB0byBkaXNw bGF5IGFsbCByZWdpc3RlcnMuCkFsc28gc2VlIGBnZGItcmVnaXN0ZXJzLXJlbW92ZS1mcm9tLWRp c3BsYXknLiAiCiAgKGludGVyYWN0aXZlIChsaXN0IChjb21wbGV0aW5nLXJlYWQgIlJlZ2lzdGVy OiAiIChhcHBlbmQgZ2RiLXJlZ2lzdGVyLW5hbWVzCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJygiYWxsIikpKSkpCiAgKGlmIChlcXVh bCByZWdpc3RlciAiYWxsIikKICAgICAgKHNldHEgZ2RiLWRpc3BsYXktdGhlc2UtcmVnaXN0ZXJz IHQpCiAgICAoaWYgKGxpc3RwIGdkYi1kaXNwbGF5LXRoZXNlLXJlZ2lzdGVycykKICAgICAgICAo YWRkLXRvLWxpc3QgJ2dkYi1kaXNwbGF5LXRoZXNlLXJlZ2lzdGVycyByZWdpc3RlcikKICAgICAg KHNldHEgZ2RiLWRpc3BsYXktdGhlc2UtcmVnaXN0ZXJzIChsaXN0IHJlZ2lzdGVyKSkpKSkKCihk ZWZ1biBnZGItcmVnaXN0ZXJzLXJlbW92ZS1mcm9tLWRpc3BsYXkgKHJlZ2lzdGVyKQogICJSZW1v dmUgUkVHSVNURVIgZnJvbSBkaXNwbGF5IGluIHJlZ2lzdGVyIGJ1ZmZlci4KUkVHSVNURVIgaXMg YSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBuYW1lIG9mIHRoZSByZWdpc3Rlci4KQnkgZGVmYXVs dCB0aGUgcmVnaXN0ZXIgYnVmZmVyIGRpc3BsYXlzIGFsbCB0aGUgcmVnaXN0ZXJzLgpSRUdJU1RF UiBjYW4gYWxzbyBiZSAnYWxsLCB3aGljaCBjb25maWd1cmVzIGdkYiB0byBoaWRlIGFsbCByZWdp c3RlcnMuCkFsc28gc2VlIGBnZGItcmVnaXN0ZXJzLWFkZC10by1kaXNwbGF5Jy4iCiAgKGludGVy YWN0aXZlIChsaXN0IChjb21wbGV0aW5nLXJlYWQgIlJlZ2lzdGVyOiAiIChhcHBlbmQgZ2RiLXJl Z2lzdGVyLW5hbWVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJygiYWxsIikpKSkpCiAgKGlmIChlcXVhbCByZWdpc3RlciAiYWxsIikK ICAgICAgKHNldHEgZ2RiLWRpc3BsYXktdGhlc2UtcmVnaXN0ZXJzIG5pbCkKICAgIChpZiAobGlz dHAgZ2RiLWRpc3BsYXktdGhlc2UtcmVnaXN0ZXJzKQogICAgICAgIChzZXRxIGdkYi1kaXNwbGF5 LXRoZXNlLXJlZ2lzdGVycwogICAgICAgICAgICAgIChyZW1vdmUgcmVnaXN0ZXIgZ2RiLWRpc3Bs YXktdGhlc2UtcmVnaXN0ZXJzKSkKICAgICAgKHVzZXItZXJyb3IgImdkYi1kaXNwbGF5LXRoZXNl LXJlZ2lzdGVycyBpcyBub3QgYSBsaXN0LCBjYW7igJl0IHJlbW92ZSBhbnl0aGluZyBmcm9tIGl0 IikpKSkKCihkZWZ1biBnZGItcmVnaXN0ZXJzLWhhbmRsZXItY3VzdG9tICgpCiAgKHdoZW4gZ2Ri LXJlZ2lzdGVyLW5hbWVzCiAgICAobGV0ICgocmVnaXN0ZXItdmFsdWVzCiAgICAgICAgICAgKGJp bmRhdC1nZXQtZmllbGQgKGdkYi1qc29uLXBhcnRpYWwtb3V0cHV0KSAncmVnaXN0ZXItdmFsdWVz KSkKICAgICAgICAgICh0YWJsZSAobWFrZS1nZGItdGFibGUpKSkKICAgICAgKGRvbGlzdCAocmVn aXN0ZXIgcmVnaXN0ZXItdmFsdWVzKQogICAgICAgIChsZXQqICgocmVnaXN0ZXItbnVtYmVyIChi aW5kYXQtZ2V0LWZpZWxkIHJlZ2lzdGVyICdudW1iZXIpKQogICAgICAgICAgICAgICAodmFsdWUg KGJpbmRhdC1nZXQtZmllbGQgcmVnaXN0ZXIgJ3ZhbHVlKSkKICAgICAgICAgICAgICAgKHJlZ2lz dGVyLW5hbWUgKG50aCAoc3RyaW5nLXRvLW51bWJlciByZWdpc3Rlci1udW1iZXIpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2RiLXJlZ2lzdGVyLW5hbWVzKSkpCiAgICAgICAg ICAod2hlbiAoY29uZCAoKGFuZCAobGlzdHAgZ2RiLWRpc3BsYXktdGhlc2UtcmVnaXN0ZXJzKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2RiLWRpc3BsYXktdGhlc2UtcmVnaXN0ZXJzKSA7 IG5vdCBuaWwKICAgICAgICAgICAgICAgICAgICAgICAobWVzc2FnZSByZWdpc3Rlci1uYW1lKQog ICAgICAgICAgICAgICAgICAgICAgIChtZW1iZXIgcmVnaXN0ZXItbmFtZSBnZGItZGlzcGxheS10 aGVzZS1yZWdpc3RlcnMpKQogICAgICAgICAgICAgICAgICAgICAgKChmdW5jdGlvbnAgZ2RiLWRp c3BsYXktdGhlc2UtcmVnaXN0ZXJzKQogICAgICAgICAgICAgICAgICAgICAgIChmdW5jYWxsIGdk Yi1kaXNwbGF5LXRoZXNlLXJlZ2lzdGVycyByZWdpc3Rlci1uYW1lKSkKICAgICAgICAgICAgICAg ICAgICAgICh0IGdkYi1kaXNwbGF5LXRoZXNlLXJlZ2lzdGVycykpCiAgICAgICAgICAgIChnZGIt dGFibGUtYWRkLXJvdwogICAgICAgICAgICAgdGFibGUKICAgICAgICAgICAgIChsaXN0CiAgICAg ICAgICAgICAgKHByb3BlcnRpemUgcmVnaXN0ZXItbmFtZQogICAgICAgICAgICAgICAgICAgICAg ICAgICdmb250LWxvY2stZmFjZSBmb250LWxvY2stdmFyaWFibGUtbmFtZS1mYWNlKQogICAgICAg ICAgICAgIChpZiAobWVtYmVyIHJlZ2lzdGVyLW51bWJlciBnZGItY2hhbmdlZC1yZWdpc3RlcnMp CiAgICAgICAgICAgICAgICAgIChwcm9wZXJ0aXplIHZhbHVlICdmb250LWxvY2stZmFjZSBmb250 LWxvY2std2FybmluZy1mYWNlKQogICAgICAgICAgICAgICAgdmFsdWUpKQogICAgICAgICAgICAg YChtb3VzZS1mYWNlIGhpZ2hsaWdodAogICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHAtZWNo byAibW91c2UtMjogZWRpdCB2YWx1ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICBnZGItcmVn aXN0ZXItbmFtZSAscmVnaXN0ZXItbmFtZSkpKSkpCiAgICAgIChpbnNlcnQgKGdkYi10YWJsZS1z dHJpbmcgdGFibGUgIiAiKSkpCiAgICAoc2V0cSBtb2RlLW5hbWUKICAgICAgICAgIChnZGItY3Vy cmVudC1jb250ZXh0LW1vZGUtbmFtZSAiUmVnaXN0ZXJzIikpKSkKCjs7OyBkeW5hbWljIG1lbW9y eSB3YXRjaAo= --00000000000033296a0594043f1d--