From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Yuan Fu Newsgroups: gmane.emacs.bugs Subject: bug#39180: 27.0.50; [PATCH] Use expressions as memory location in gdb-mi memory buffer Date: Sat, 18 Jan 2020 15:54:35 -0500 Message-ID: <4A45AE37-414A-4D78-A49C-B40FB72736C4@gmail.com> Mime-Version: 1.0 (Mac OS X Mail 13.0 \(3608.40.2.2.4\)) Content-Type: multipart/mixed; boundary="Apple-Mail=_423604B8-ABF9-43AE-9CBA-332AAA0AA536" Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="73613"; mail-complaints-to="usenet@ciao.gmane.io" To: 39180@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sat Jan 18 21:55:16 2020 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1isv7i-000J3H-Cr for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 18 Jan 2020 21:55:14 +0100 Original-Received: from localhost ([::1]:44818 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1isv7h-0006P2-EM for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 18 Jan 2020 15:55:13 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:58439) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1isv7Y-0006Ok-MO for bug-gnu-emacs@gnu.org; Sat, 18 Jan 2020 15:55:06 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1isv7W-0007px-TO for bug-gnu-emacs@gnu.org; Sat, 18 Jan 2020 15:55:04 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:36315) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1isv7W-0007pj-PO for bug-gnu-emacs@gnu.org; Sat, 18 Jan 2020 15:55:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1isv7W-0007qd-Og for bug-gnu-emacs@gnu.org; Sat, 18 Jan 2020 15:55:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Yuan Fu Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 18 Jan 2020 20:55:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 39180 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch X-Debbugs-Original-To: Bug Report Emacs Original-Received: via spool by submit@debbugs.gnu.org id=B.157938088430137 (code B ref -1); Sat, 18 Jan 2020 20:55:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 18 Jan 2020 20:54:44 +0000 Original-Received: from localhost ([127.0.0.1]:42288 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1isv7D-0007q0-Up for submit@debbugs.gnu.org; Sat, 18 Jan 2020 15:54:44 -0500 Original-Received: from lists.gnu.org ([209.51.188.17]:49003) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1isv7B-0007pq-Me for submit@debbugs.gnu.org; Sat, 18 Jan 2020 15:54:42 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:58400) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1isv79-0006Jv-N3 for bug-gnu-emacs@gnu.org; Sat, 18 Jan 2020 15:54:41 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1isv77-0007eJ-Qm for bug-gnu-emacs@gnu.org; Sat, 18 Jan 2020 15:54:39 -0500 Original-Received: from mail-qt1-x82e.google.com ([2607:f8b0:4864:20::82e]:36189) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1isv77-0007dx-Hg for bug-gnu-emacs@gnu.org; Sat, 18 Jan 2020 15:54:37 -0500 Original-Received: by mail-qt1-x82e.google.com with SMTP id i13so24675279qtr.3 for ; Sat, 18 Jan 2020 12:54:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:mime-version:subject:message-id:date:to; bh=6i3L08fOElanyPnQvOB6raMh10jGzRR+ADCZVvzB1Io=; b=ah5Jpjck1uHHU2+xRpDg0YSsegi2p3u+Gk9xM4T6ynNf5FdH72hBQZh5O+JdIKyxkz bqFoAlNcG61h7tmO6n4Jrku6U04qxDAcplNLkPh5rgTpx7rjNRJ8X24+1rnmLQgM0OMc N8aEZp2HVuOjPreZpCtA3yTmVIoffnDPyDZTjolDW2wzr5dlZLsE1gCkLzWRaW4MAKYd Vpn9azAl47EcO1XQb+ZwH3wwP4woV4jnEVLmrAbKFojHmq9Uv7083FBliScUmAQELcHq KooSyDWiS5ZFXiNzvCJqy61byeXxoZ0UdPWfSoT9whF1FLEWS2a8Jdg2N1iLuTqlQIQ+ pj2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:mime-version:subject:message-id:date:to; bh=6i3L08fOElanyPnQvOB6raMh10jGzRR+ADCZVvzB1Io=; b=k4W50sYwRZgWUVy41MkhWtPEmvR/T5x1ey6K/qmbSh8SZBtXTQKGuLosb9vrEmUbr/ FjJtH3M+6XZfpf9A2TArsrYVunIS2FC8FcehHFDWe5iW1EZ6yL/qUGp0WGgOHgJaambT X/nIDRrZOOdOXyigQcc/LGraKOtSIZ7DLW9939jf2CBjSwEyBSBb3hRYN7RrPtjukl6V mqll070Sx/TQ4vNcjDYn5ZejM7J0eOwIyv6nzSPymUQ2LNQj0iMItf0u/spnvXgG4fID YISagxUTqPsi/3H7aHnu3t7e4i+61lz18IOgT7VhZGyb9LZ9+pGBigGD7fbY1gDBeu5b 3pHg== X-Gm-Message-State: APjAAAVTlXm1LGAw/4OD1O+6u37i4t4EcqMaGc5Ab0GIb2WM018oscOa sv4nbhgpaOFt58uzRq0YaptyFdab0WCkkjWn X-Google-Smtp-Source: APXvYqxPAh+CyftUM+8Y2E5ODmrJ5XDKtDlY7+erLAYgpGmiLae7BqFK/e83JG7QSDxicUz7DBqulA== X-Received: by 2002:ac8:5298:: with SMTP id s24mr13339017qtn.89.1579380876789; Sat, 18 Jan 2020 12:54:36 -0800 (PST) Original-Received: from [192.168.1.5] (c-174-60-229-153.hsd1.pa.comcast.net. [174.60.229.153]) by smtp.gmail.com with ESMTPSA id c184sm13578930qke.118.2020.01.18.12.54.36 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 18 Jan 2020 12:54:36 -0800 (PST) X-Mailer: Apple Mail (2.3608.40.2.2.4) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:174840 Archived-At: --Apple-Mail=_423604B8-ABF9-43AE-9CBA-332AAA0AA536 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 Currently gdb-mi does allow expressions as memory address, but it = translates it to a fixed address. This patch makes gdb to store the = expression and re-evaluate on updates. So the address changes as = expression=E2=80=99s value changes. --Apple-Mail=_423604B8-ABF9-43AE-9CBA-332AAA0AA536 Content-Disposition: attachment; filename=memory.patch Content-Type: application/octet-stream; x-unix-mode=0700; name="memory.patch" Content-Transfer-Encoding: quoted-printable =46rom=20932a0e0bbec7939a89431bdc31316afbf2d23cde=20Mon=20Sep=2017=20= 00:00:00=202001=0AFrom:=20Yuan=20Fu=20=0ADate:=20Sat,=20= 5=20Oct=202019=2022:42:07=20-0400=0ASubject:=20[PATCH=201/4]=20Enhance=20= support=20for=20expressions=20as=20memory=20address=0AMIME-Version:=20= 1.0=0AContent-Type:=20text/plain;=20charset=3DUTF-8=0A= Content-Transfer-Encoding:=208bit=0A=0ABefore=20the=20memory=20buffer=20= evaluates=20the=20expression=20as=20address=0Aand=20use=20the=20fixed=20= result=20in=20each=20stop.=20This=20change=20stores=20the=0Aexpression=20= itself=20and=20reevaluates=20it=20in=20each=20stop=20for=20an=20address.=0A= Then=20displays=20the=20value=20of=20the=20memory=20at=20that=20address.=0A= =0Alisp/progmodes/gdb-mi.el=20(gdb-memory-address-expression):=20new=0A=20= =20(gdb-memory-address):=20change=20default=20value,=20add=20docstring=0A= =20=20(def-gdb-trigger-and-handler=20gdb-invalidate-memory,=0A=20=20= gdb-memory-set-address):=20replace=20=E2=80=99gdb-memory-address=E2=80=99=20= with=0A=20=20=20=20=E2=80=99gdb-memory-address-expression=E2=80=99=0A=20=20= (gdb-memory-header):=20Add=20display=20for=20= =E2=80=99gdb-memory-address-expression=E2=80=99,=0A=20=20=20=20move=20= the=20mouse=20event=20from=20address=20to=20expression=0A---=0A=20= lisp/progmodes/gdb-mi.el=20|=2021=20++++++++++++---------=0A=201=20file=20= changed,=2012=20insertions(+),=209=20deletions(-)=0A=0Adiff=20--git=20= a/lisp/progmodes/gdb-mi.el=20b/lisp/progmodes/gdb-mi.el=0Aindex=20= b08d487af3..bd4d216860=20100644=0A---=20a/lisp/progmodes/gdb-mi.el=0A+++=20= b/lisp/progmodes/gdb-mi.el=0A@@=20-3445,7=20+3445,7=20@@=20= gdb-memory-unit=0A=20(def-gdb-trigger-and-handler=0A=20=20=20= gdb-invalidate-memory=0A=20=20=20(format=20"-data-read-memory=20%s=20%s=20= %d=20%d=20%d"=0A-=20=20=20=20=20=20=20=20=20=20gdb-memory-address=0A+=20=20= =20=20=20=20=20=20=20=20(gdb-mi-quote=20gdb-memory-address-expression)=0A= =20=20=20=20=20=20=20=20=20=20=20gdb-memory-format=0A=20=20=20=20=20=20=20= =20=20=20=20gdb-memory-unit=0A=20=20=20=20=20=20=20=20=20=20=20= gdb-memory-rows=0A@@=20-3535,7=20+3535,7=20@@=20gdb-memory-set-address=0A= =20=20=20"Set=20the=20start=20memory=20address."=0A=20=20=20= (interactive)=0A=20=20=20(let=20((arg=20(read-from-minibuffer=20"Memory=20= address:=20")))=0A-=20=20=20=20(setq=20gdb-memory-address=20arg))=0A+=20=20= =20=20(setq=20gdb-memory-address-expression=20arg))=0A=20=20=20= (gdb-invalidate-memory=20'update))=0A=20=0A=20(defmacro=20= def-gdb-set-positive-number=20(name=20variable=20echo-string=20&optional=20= doc)=0A@@=20-3718,7=20+3718,15=20@@=20gdb-memory-font-lock-keywords=0A=20= (defvar=20gdb-memory-header=0A=20=20=20'(:eval=0A=20=20=20=20=20(concat=0A= -=20=20=20=20=20"Start=20address["=0A+=20=20=20=20=20"Start=20address=20= "=0A+=20=20=20=20=20(propertize=20gdb-memory-address-expression=0A+=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20'face=20= font-lock-warning-face=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20'help-echo=20"mouse-1:=20set=20start=20address"=0A+=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20'mouse-face=20'mode-line-highlight=0A+=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20'local-map=20= (gdb-make-header-line-mouse-map=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20'mouse-1=0A+=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= #'gdb-memory-set-address-event))=0A+=20=20=20=20=20"=20["=0A=20=20=20=20=20= =20(propertize=20"-"=0A=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20'face=20font-lock-warning-face=0A=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20'help-echo=20"mouse-1:=20decrement=20address"=0A@@=20= -3736,12=20+3744,7=20@@=20gdb-memory-header=0A=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= #'gdb-memory-show-next-page))=0A=20=20=20=20=20=20"]:=20"=0A=20=20=20=20=20= =20(propertize=20gdb-memory-address=0A-=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20'face=20font-lock-warning-face=0A-=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20'help-echo=20"mouse-1:=20set=20start=20= address"=0A-=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= 'mouse-face=20'mode-line-highlight=0A-=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20'local-map=20(gdb-make-header-line-mouse-map=0A-=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= 'mouse-1=0A-=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20#'gdb-memory-set-address-event))=0A+=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20'face=20font-lock-warning-face)=0A=20= =20=20=20=20=20"=20=20Rows:=20"=0A=20=20=20=20=20=20(propertize=20= (number-to-string=20gdb-memory-rows)=0A=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20'face=20font-lock-warning-face=0A--=20=0A2.24.1=0A=0A=0A= =46rom=20d4e98f53dcb228b58f6c72b41ce2150160e863d7=20Mon=20Sep=2017=20= 00:00:00=202001=0AFrom:=20Yuan=20Fu=20=0ADate:=20Mon,=20= 7=20Oct=202019=2020:36:23=20-0400=0ASubject:=20[PATCH=202/4]=20Fix=20= memory=20buffer=20code=20in=20gdb-mi=0AMIME-Version:=201.0=0A= Content-Type:=20text/plain;=20charset=3DUTF-8=0A= Content-Transfer-Encoding:=208bit=0A=0A*=20lisp/progmodes/gdb-mi.el=20= (gdb-read-memory-custom):=0ABreak=20infinite=20loop.=20Change=20= =E2=80=99error=E2=80=99=20to=20=E2=80=99user-error=E2=80=99=0A---=0A=20= lisp/progmodes/gdb-mi.el=20|=208=20+++++---=0A=201=20file=20changed,=205=20= insertions(+),=203=20deletions(-)=0A=0Adiff=20--git=20= a/lisp/progmodes/gdb-mi.el=20b/lisp/progmodes/gdb-mi.el=0Aindex=20= bd4d216860..662671885c=20100644=0A---=20a/lisp/progmodes/gdb-mi.el=0A+++=20= b/lisp/progmodes/gdb-mi.el=0A@@=20-3498,10=20+3498,12=20@@=20= gdb-read-memory-custom=0A=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20gdb-memory-format)))))=0A=20=20=20=20=20=20=20=20=20=20=20=20= =20(newline)))=0A=20=20=20=20=20=20=20;;=20Show=20last=20page=20instead=20= of=20empty=20buffer=20when=20out=20of=20bounds=0A-=20=20=20=20=20=20= (progn=0A-=20=20=20=20=20=20=20=20(let=20((gdb-memory-address=20= gdb-memory-last-address))=0A+=20=20=20=20=20=20(when=20= gdb-memory-last-address=0A+=20=20=20=20=20=20=20=20(let=20= ((gdb-memory-address-expression=20gdb-memory-last-address))=0A+=20=20=20=20= =20=20=20=20=20=20;;=20avoid=20infinite=20loop=0A+=20=20=20=20=20=20=20=20= =20=20(setq=20gdb-memory-last-address=20nil)=0A=20=20=20=20=20=20=20=20=20= =20=20(gdb-invalidate-memory=20'update)=0A-=20=20=20=20=20=20=20=20=20=20= (error=20err-msg))))))=0A+=20=20=20=20=20=20=20=20=20=20(user-error=20= "Error=20when=20retrieving=20memory:=20%s=20Displaying=20last=20= successful=20page"=20err-msg))))))=0A=20=0A=20(defvar=20= gdb-memory-mode-map=0A=20=20=20(let=20((map=20(make-sparse-keymap)))=0A= --=20=0A2.24.1=0A=0A=0A=46rom=20dc5008ac30718fd1e1920bb07300a0a2e10835c4=20= Mon=20Sep=2017=2000:00:00=202001=0AFrom:=20Yuan=20Fu=20= =0ADate:=20Mon,=207=20Oct=202019=2020:52:15=20-0400=0A= Subject:=20[PATCH=203/4]=20Protect=20against=20nil=20memory=20address=20= in=20gdb-mi=0A=0A*=20lisp/progmodes/gdb-mi.el=20(gdb-memory-header):=0A= Protect=20against=20nil=20value=0A---=0A=20lisp/progmodes/gdb-mi.el=20|=20= 4=20++--=0A=201=20file=20changed,=202=20insertions(+),=202=20= deletions(-)=0A=0Adiff=20--git=20a/lisp/progmodes/gdb-mi.el=20= b/lisp/progmodes/gdb-mi.el=0Aindex=20662671885c..eec11ebf0c=20100644=0A= ---=20a/lisp/progmodes/gdb-mi.el=0A+++=20b/lisp/progmodes/gdb-mi.el=0A@@=20= -3721,7=20+3721,7=20@@=20gdb-memory-header=0A=20=20=20'(:eval=0A=20=20=20= =20=20(concat=0A=20=20=20=20=20=20"Start=20address=20"=0A-=20=20=20=20=20= (propertize=20gdb-memory-address-expression=0A+=20=20=20=20=20= (propertize=20(or=20gdb-memory-address-expression=20"N/A")=0A=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20'face=20font-lock-warning-face=0A= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20'help-echo=20= "mouse-1:=20set=20start=20address"=0A=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20'mouse-face=20'mode-line-highlight=0A@@=20-3745,7=20= +3745,7=20@@=20gdb-memory-header=0A=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20'mouse-1=0A=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20#'gdb-memory-show-next-page))=0A=20=20=20=20=20=20"]:=20"=0A-=20=20=20= =20=20(propertize=20gdb-memory-address=0A+=20=20=20=20=20(propertize=20= (or=20gdb-memory-address=20"N/A")=0A=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20'face=20font-lock-warning-face)=0A=20=20=20=20=20=20"=20=20= Rows:=20"=0A=20=20=20=20=20=20(propertize=20(number-to-string=20= gdb-memory-rows)=0A--=20=0A2.24.1=0A=0A=0A=46rom=20= 5b784a7312623b83dbeecafcbe0421c1035f9483=20Mon=20Sep=2017=2000:00:00=20= 2001=0AFrom:=20Yuan=20Fu=20=0ADate:=20Mon,=207=20Oct=20= 2019=2021:17:01=20-0400=0ASubject:=20[PATCH=204/4]=20= =3D?UTF-8?q?Display=3D20warning=3D20when=3D20address=3D20expres?=3D=0A=20= =3D?UTF-8?q?sion=3D20and=3D20address=3D20doesn=3DE2=3D80=3D99t=3D20match?=3D= =0AMIME-Version:=201.0=0AContent-Type:=20text/plain;=20charset=3DUTF-8=0A= Content-Transfer-Encoding:=208bit=0A=0A*=20lisp/progmodes/gdb-mi.el=20= (gdb--memory-display-warning):=20new=0A(gdb-read-memory-custom,=20= gdb-memory-header):=20Add=20warning=0A---=0A=20lisp/progmodes/gdb-mi.el=20= |=2015=20++++++++++++++-=0A=201=20file=20changed,=2014=20insertions(+),=20= 1=20deletion(-)=0A=0Adiff=20--git=20a/lisp/progmodes/gdb-mi.el=20= b/lisp/progmodes/gdb-mi.el=0Aindex=20eec11ebf0c..bdd01e0747=20100644=0A= ---=20a/lisp/progmodes/gdb-mi.el=0A+++=20b/lisp/progmodes/gdb-mi.el=0A@@=20= -112,6=20+112,12=20@@=20gdb-memory-next-page=0A=20=20=20"Address=20of=20= next=20memory=20page=20for=20program=20memory=20buffer.")=0A=20(defvar=09= gdb-memory-prev-page=20nil=0A=20=20=20"Address=20of=20previous=20memory=20= page=20for=20program=20memory=20buffer.")=0A+(defvar-local=20= gdb--memory-display-warning=20nil=0A+=20=20"Display=20warning=20on=20= memory=20header=20if=20t.=0A+=0A+When=20error=20occurs=20when=20= retrieving=20memory,=20gdb-mi=20displays=20the=20last=0A+successful=20= page.=20In=20that=20case=20the=20expression=20might=20not=20match=20the=0A= +memory=20displayed.")=0A=20=0A=20(defvar=20gdb-thread-number=20nil=0A=20= =20=20"Main=20current=20thread.=0A@@=20-3485,6=20+3491,9=20@@=20= gdb-read-memory-custom=0A=20=20=20=20=20=20=20=20=20=20(err-msg=20= (bindat-get-field=20res=20'msg)))=0A=20=20=20=20=20(if=20(not=20err-msg)=0A= =20=20=20=20=20=20=20=20=20(let=20((memory=20(bindat-get-field=20res=20= 'memory)))=0A+=20=20=20=20=20=20=20=20=20=20(when=20= gdb-memory-last-address=0A+=20=20=20=20=20=20=20=20=20=20=20=20;;=20nil=20= means=20last=20retrieve=20emits=20error=20or=20just=20started=20the=20= session=0A+=20=20=20=20=20=20=20=20=20=20=20=20(setq=20= gdb--memory-display-warning=20nil))=0A=20=20=20=20=20=20=20=20=20=20=20= (setq=20gdb-memory-address=20(bindat-get-field=20res=20'addr))=0A=20=20=20= =20=20=20=20=20=20=20=20(setq=20gdb-memory-next-page=20(bindat-get-field=20= res=20'next-page))=0A=20=20=20=20=20=20=20=20=20=20=20(setq=20= gdb-memory-prev-page=20(bindat-get-field=20res=20'prev-page))=0A@@=20= -3501,7=20+3510,8=20@@=20gdb-read-memory-custom=0A=20=20=20=20=20=20=20= (when=20gdb-memory-last-address=0A=20=20=20=20=20=20=20=20=20(let=20= ((gdb-memory-address-expression=20gdb-memory-last-address))=0A=20=20=20=20= =20=20=20=20=20=20=20;;=20avoid=20infinite=20loop=0A-=20=20=20=20=20=20=20= =20=20=20(setq=20gdb-memory-last-address=20nil)=0A+=20=20=20=20=20=20=20=20= =20=20(setq=20gdb-memory-last-address=20nil=0A+=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20gdb--memory-display-warning=20t)=0A=20=20=20=20=20=20= =20=20=20=20=20(gdb-invalidate-memory=20'update)=0A=20=20=20=20=20=20=20=20= =20=20=20(user-error=20"Error=20when=20retrieving=20memory:=20%s=20= Displaying=20last=20successful=20page"=20err-msg))))))=0A=20=0A@@=20= -3728,6=20+3738,9=20@@=20gdb-memory-header=0A=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20'local-map=20(gdb-make-header-line-mouse-map=0A=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20'mouse-1=0A=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20#'gdb-memory-set-address-event))=0A= +=20=20=20=20=20(if=20gdb--memory-display-warning=0A+=20=20=20=20=20=20=20= =20=20(propertize=20"=20!"=20'face=20'(:inherit=20error=20:weight=20= bold))=0A+=20=20=20=20=20=20=20"")=0A=20=20=20=20=20=20"=20["=0A=20=20=20= =20=20=20(propertize=20"-"=0A=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20'face=20font-lock-warning-face=0A--=20=0A2.24.1=0A=0A= --Apple-Mail=_423604B8-ABF9-43AE-9CBA-332AAA0AA536 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii In GNU Emacs 27.0.50 (build 3, x86_64-apple-darwin19.0.0, NS = appkit-1894.10 Version 10.15.1 (Build 19B88)) of 2019-11-30 built on missSilver Repository revision: e2828795d73637577c7726965974a047fe2d7119 Repository branch: master Windowing system distributor 'Apple', version 10.3.1894 System Description: Mac OS X 10.15.2 Recent messages: Checking 24 files in /Users/yuan/attic/emacs/lisp/cedet... Checking 59 files in /Users/yuan/attic/emacs/lisp/calendar... Checking 87 files in /Users/yuan/attic/emacs/lisp/calc... Checking 113 files in /Users/yuan/attic/emacs/lisp/obsolete... Checking for load-path shadows...done Auto-saving... Quit C-x C-g is undefined Quit Buffer *unsent mail to bug-gnu-emacs@gnu.org*<2> modified; kill anyway? = (y or n) y Configured using: 'configure --with-modules --with-pdumper=3Dyes = --oldincludedir=3D/Applications/Xcode.app/Contents/Developer/Platforms/Mac= OSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/libxml2/' Configured features: NOTIFY KQUEUE ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS MODULES THREADS PDUMPER LCMS2 Important settings: value of $LC_CTYPE: UTF-8 value of $LANG: en_CN.UTF-8 locale-coding-system: utf-8-unix Major mode: Emacs-Lisp Minor modes in effect: magit-todos-mode: t bug-reference-prog-mode: t desktop-save-mode: t ghelp-global-minor-mode: t minibuffer-electric-default-mode: t flymake-mode: t global-magit-file-mode: t magit-file-mode: t global-git-commit-mode: t async-bytecomp-package-mode: t shell-dirtrack-mode: t flyspell-mode: t outshine-mode: t ws-butler-global-mode: t ws-butler-mode: t minions-mode: t eyebrowse-mode: t savehist-mode: t global-hl-todo-mode: t hl-todo-mode: t global-highlight-parentheses-mode: t highlight-parentheses-mode: t rainbow-delimiters-mode: t global-undo-tree-mode: t undo-tree-mode: t electric-pair-mode: t winner-mode: t aggressive-indent-mode: t ivy-prescient-mode: t prescient-persist-mode: t recentf-mode: t which-key-mode: t general-override-mode: t outline-minor-mode: t ivy-mode: t company-mode: t override-global-mode: t tooltip-mode: t global-eldoc-mode: t eldoc-mode: t electric-quote-mode: t electric-indent-mode: t mouse-wheel-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t transient-mark-mode: t hs-minor-mode: t Load-path shadows: /Users/yuan/.emacs.d/ranch/winman/windman hides = /Users/yuan/.emacs.d/ranch/windman/windman /Users/yuan/.emacs.d/ranch/nerd-font/test/test-helper hides = /Users/yuan/.emacs.d/ranch/doom-themes/test/test-helper /Users/yuan/.emacs.d/ranch/julia-mode/julia-mode hides = /Users/yuan/.emacs.d/package/julia-mode-20190813.1326/julia-mode /Users/yuan/.emacs.d/ranch/julia-mode/julia-latexsubs hides = /Users/yuan/.emacs.d/package/julia-mode-20190813.1326/julia-latexsubs /Users/yuan/.emacs.d/ranch/matlab-emacs/mlint hides = /Users/yuan/.emacs.d/package/matlab-mode-20180928.1526/mlint /Users/yuan/.emacs.d/ranch/matlab-emacs/company-matlab-shell hides = /Users/yuan/.emacs.d/package/matlab-mode-20180928.1526/company-matlab-shel= l /Users/yuan/.emacs.d/ranch/matlab-emacs/linemark hides = /Users/yuan/.emacs.d/package/matlab-mode-20180928.1526/linemark /Users/yuan/.emacs.d/ranch/matlab-emacs/semanticdb-matlab hides = /Users/yuan/.emacs.d/package/matlab-mode-20180928.1526/semanticdb-matlab /Users/yuan/.emacs.d/ranch/matlab-emacs/semantic-matlab hides = /Users/yuan/.emacs.d/package/matlab-mode-20180928.1526/semantic-matlab /Users/yuan/.emacs.d/ranch/matlab-emacs/srecode-matlab hides = /Users/yuan/.emacs.d/package/matlab-mode-20180928.1526/srecode-matlab /Users/yuan/.emacs.d/ranch/matlab-emacs/matlab hides = /Users/yuan/.emacs.d/package/matlab-mode-20180928.1526/matlab /Users/yuan/.emacs.d/ranch/matlab-emacs/cedet-matlab hides = /Users/yuan/.emacs.d/package/matlab-mode-20180928.1526/cedet-matlab /Users/yuan/.emacs.d/ranch/matlab-emacs/tlc hides = /Users/yuan/.emacs.d/package/matlab-mode-20180928.1526/tlc /Users/yuan/.emacs.d/ranch/matlab-emacs/matlab-publish hides = /Users/yuan/.emacs.d/package/matlab-mode-20180928.1526/matlab-publish /Users/yuan/.emacs.d/ranch/matlab-emacs/matlab-mode-pkg hides = /Users/yuan/.emacs.d/package/matlab-mode-20180928.1526/matlab-mode-pkg /Users/yuan/.emacs.d/package/faceup-20170925.1946/faceup hides = /Users/yuan/attic/emacs/lisp/emacs-lisp/faceup Features: (magit-todos pcre2el rxt re-builder grep checkdoc lisp-mnt bug-reference vc-mtn vc-hg ffap tramp tramp-loaddefs trampver tramp-integration files-x tramp-compat parse-time iso8601 ls-lisp shadow sort mail-extr emacsbug sendmail vc-git vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs vc vc-dispatcher magit-bookmark bookmark company-oddmuse company-keywords company-etags etags fileloop company-gtags company-dabbrev-code company-dabbrev company-files company-capf company-cmake company-xcode company-clang company-semantic company-eclim company-template company-bbdb hideshow desktop frameset trivial-copy ghelp-eglot ghelp-helpful ghelp-builtin ghelp cus-edit cus-start cus-load luna-publish utility pause luna-general-config minibuf-eldef eglot array jsonrpc ert pp ewoc debug flymake-proc flymake warnings url-util magit-submodule magit-obsolete magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit magit-sequence magit-notes magit-worktree magit-tag magit-merge magit-branch magit-reset magit-files magit-refs magit-status magit magit-repos magit-apply magit-wip magit-log which-func magit-diff smerge-mode diff-mode magit-core magit-autorevert autorevert filenotify magit-margin magit-transient magit-process magit-mode transient git-commit magit-git magit-section magit-utils crm log-edit message rmc puny rfc822 mml mml-sec epa derived epg epg-config gnus-util rmail rmail-loaddefs text-property-search mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils mailheader pcvs-util add-log with-editor async-bytecomp async shell server flyspell ispell outshine outshine-org-cmds outorg isolate inline expand-region text-mode-expansions the-org-mode-expansions er-basic-expansions thingatpt expand-region-core expand-region-custom ws-butler minions eyebrowse savehist buffer-move windmove hl-todo highlight-parentheses rainbow-delimiters doom-cyberpunk-theme undo-tree diff doom-one-light-theme elec-pair winner doom-themes doom-themes-base windman aggressive-indent find-char ivy-prescient prescient recentf-ext recentf tree-widget wid-edit which-key general helpful imenu trace edebug backtrace info-look f dash-functional help-fns radix-tree elisp-refs s loop dash org-element avl-tree generator org advice org-macro org-footnote org-pcomplete pcomplete org-list org-faces org-entities time-date noutline outline org-version ob-emacs-lisp ob ob-tangle org-src ob-ref ob-lob ob-table ob-keys ob-exp ob-comint ob-core ob-eval org-compat org-macs org-loaddefs format-spec find-func cal-menu calendar cal-loaddefs counsel xdg xref project dired dired-loaddefs compile comint ansi-color swiper cl-extra help-mode ivy delsel ring colir color ivy-overlay company edmacro kmacro pcase use-package use-package-ensure use-package-delight use-package-diminish use-package-bind-key bind-key easy-mmode use-package-core finder-inf tex-site info cowboy package easymenu browse-url url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs password-cache json subr-x map url-vars cl-loaddefs cl-lib lunary lunary-ui luna-f rx seq byte-opt gv bytecomp byte-compile cconv tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/ns-win ns-win ucs-normalize mule-util term/common-win tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite charscript charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote threads kqueue cocoa ns lcms2 multi-tty make-network-process emacs) Memory information: ((conses 16 197959 23437) (symbols 48 9374 49) (strings 32 38335 2058) (string-bytes 1 1116712) (vectors 16 24652) (vector-slots 8 289694 28446) (floats 8 511 434) (intervals 56 14675 1317) (buffers 1000 27)) --Apple-Mail=_423604B8-ABF9-43AE-9CBA-332AAA0AA536--