annotate lisp/progmodes/gdb-ui.el @ 111602:f44b93254721

Fix some ls-lisp oddness. * lisp/ls-lisp.el (ls-lisp-dired-ignore-case): Make it an obsolete alias.
author Glenn Morris <rgm@gnu.org>
date Wed, 10 Nov 2010 19:48:46 -0800
parents a98040347deb
children 376148b31b5e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
106678
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1 ;;; gdb-ui.el --- User Interface for running GDB
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3 ;; Author: Nick Roberts <nickrob@gnu.org>
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4 ;; Maintainer: FSF
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
5 ;; Keywords: unix, tools
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
6
106815
1d1d5d9bd884 Add 2010 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 106697
diff changeset
7 ;; Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
106678
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
8 ;; Free Software Foundation, Inc.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
9
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
10 ;; This file is part of GNU Emacs.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
11
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
12 ;; GNU Emacs is free software: you can redistribute it and/or modify
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
13 ;; it under the terms of the GNU General Public License as published by
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
14 ;; the Free Software Foundation, either version 3 of the License, or
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
15 ;; (at your option) any later version.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
16
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
17 ;; GNU Emacs is distributed in the hope that it will be useful,
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
18 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
19 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
20 ;; GNU General Public License for more details.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
21
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
22 ;; You should have received a copy of the GNU General Public License
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
23 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
24
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
25 ;;; Commentary:
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
26
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
27 ;; This mode acts as a graphical user interface to GDB. You can interact with
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
28 ;; GDB through the GUD buffer in the usual way, but there are also further
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
29 ;; buffers which control the execution and describe the state of your program.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
30 ;; It separates the input/output of your program from that of GDB, if
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
31 ;; required, and watches expressions in the speedbar. It also uses features of
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
32 ;; Emacs 21 such as the fringe/display margin for breakpoints, and the toolbar
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
33 ;; (see the GDB Graphical Interface section in the Emacs info manual).
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
34
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
35 ;; By default, M-x gdb will start the debugger.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
36
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
37 ;; This file has evolved from gdba.el that was included with GDB 5.0 and
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
38 ;; written by Tom Lord and Jim Kingdon. It uses GDB's annotation interface.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
39 ;; You don't need to know about annotations to use this mode as a debugger,
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
40 ;; but if you are interested developing the mode itself, see the Annotations
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
41 ;; section in the GDB info manual.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
42
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
43 ;; GDB developers plan to make the annotation interface obsolete. A new
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
44 ;; interface called GDB/MI (machine interface) has been designed to replace it.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
45 ;; Some GDB/MI commands are used in this file through the CLI command
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
46 ;; 'interpreter mi <mi-command>'. To help with the process of fully migrating
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
47 ;; Emacs from annotations to GDB/MI, there is an experimental package called
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
48 ;; gdb-mi in the Emacs Lisp Package Archive ("http://tromey.com/elpa/"). It
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
49 ;; comprises of modified gud.el and a file called gdb-mi.el which replaces
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
50 ;; gdb-ui.el. When installed, this overrides the current files and invoking
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
51 ;; M-x gdb will use GDB/MI directly (starts with "gdb -i=mi"). When deleted
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
52 ;; ('d' followed by 'x' in Package Menu mode), the files are deleted and old
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
53 ;; functionality restored. This provides a convenient way to review the
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
54 ;; current status/contribute to its improvement. For someone who just wants to
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
55 ;; use GDB, however, the current mode in Emacs 22 is a much better option.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
56 ;; There is also a file, also called gdb-mi.el, a version of which is included
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
57 ;; the GDB distribution. This will probably only work with versions
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
58 ;; distributed with GDB 6.5 or later. Unlike the version in ELPA it works on
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
59 ;; top of gdb-ui.el and you can only start it with M-x gdbmi.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
60
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
61 ;; This mode SHOULD WORK WITH GDB 5.0 or later but you will NEED AT LEAST
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
62 ;; GDB 6.0 to use watch expressions. It works best with GDB 6.4 or later
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
63 ;; where watch expressions will update more quickly.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
64
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
65 ;;; Windows Platforms:
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
66
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
67 ;; If you are using Emacs and GDB on Windows you will need to flush the buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
68 ;; explicitly in your program if you want timely display of I/O in Emacs.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
69 ;; Alternatively you can make the output stream unbuffered, for example, by
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
70 ;; using a macro:
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
71
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
72 ;; #ifdef UNBUFFERED
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
73 ;; setvbuf (stdout, (char *) NULL, _IONBF, 0);
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
74 ;; #endif
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
75
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
76 ;; and compiling with -DUNBUFFERED while debugging.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
77
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
78 ;; If you are using Cygwin GDB and find that the source is not being displayed
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
79 ;; in Emacs when you step through it, possible solutions are to:
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
80
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
81 ;; 1) Use Cygwin X Windows and Cygwin Emacs.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
82 ;; (Since 22.1 Emacs builds under Cygwin.)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
83 ;; 2) Use MinGW GDB instead.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
84 ;; 3) Use cygwin-mount.el
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
85
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
86 ;;; Mac OSX:
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
87
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
88 ;; GDB in Emacs on Mac OSX works best with FSF GDB as Apple have made
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
89 ;; some changes to the version that they include as part of Mac OSX.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
90 ;; This requires GDB version 7.0 or later (estimated release date June 2009)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
91 ;; as earlier versions don not compile on Mac OSX.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
92
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
93 ;;; Known Bugs:
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
94
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
95 ;; 1) Cannot handle multiple debug sessions.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
96 ;; 2) If you wish to call procedures from your program in GDB
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
97 ;; e.g "call myproc ()", "p mysquare (5)" then use level 2 annotations
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
98 ;; "gdb --annotate=2 myprog" to keep source buffer/selected frame fixed.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
99 ;; 3) After detaching from a process, clicking on the "GO" icon on toolbar
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
100 ;; (gud-go) sends "continue" to GDB (should be "run").
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
101
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
102 ;;; TODO:
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
103
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
104 ;; 1) Use MI command -data-read-memory for memory window.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
105 ;; 2) Use tree-buffer.el (from ECB) instead of the speedbar for
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
106 ;; watch-expressions? Handling of watch-expressions needs to be
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
107 ;; overhauled to work for large arrays/structures by creating variable
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
108 ;; objects for visible watch-expressions only.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
109 ;; 3) Mark breakpoint locations on scroll-bar of source buffer?
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
110
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
111 ;;; Code:
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
112
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
113 (require 'gud)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
114 (require 'json)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
115 (require 'bindat)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
116
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
117 (defvar tool-bar-map)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
118 (defvar speedbar-initial-expansion-list-name)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
119 (defvar speedbar-frame)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
120
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
121 (defvar gdb-pc-address nil "Initialization for Assembler buffer.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
122 Set to \"main\" at start if `gdb-show-main' is t.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
123 (defvar gdb-frame-address nil "Identity of frame for watch expression.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
124 (defvar gdb-previous-frame-pc-address nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
125 (defvar gdb-memory-address "main")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
126 (defvar gdb-previous-frame nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
127 (defvar gdb-selected-frame nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
128 (defvar gdb-frame-number nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
129 (defvar gdb-current-language nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
130 (defvar gdb-var-list nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
131 "List of variables in watch window.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
132 Each element has the form (VARNUM EXPRESSION NUMCHILD TYPE VALUE STATUS HAS_MORE FP)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
133 where STATUS is nil (`unchanged'), `changed' or `out-of-scope', FP the frame
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
134 address for root variables.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
135 (defvar gdb-main-file nil "Source file from which program execution begins.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
136 (defvar gud-old-arrow nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
137 (defvar gdb-thread-indicator nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
138 (defvar gdb-overlay-arrow-position nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
139 (defvar gdb-stack-position nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
140 (defvar gdb-server-prefix nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
141 (defvar gdb-flush-pending-output nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
142 (defvar gdb-location-alist nil
106697
ac408704629c lisp/*: Fix typos in docstrings and messages.
Juanma Barranquero <lekktu@gmail.com>
parents: 106680
diff changeset
143 "Alist of breakpoint numbers and full filenames.
ac408704629c lisp/*: Fix typos in docstrings and messages.
Juanma Barranquero <lekktu@gmail.com>
parents: 106680
diff changeset
144 Only used for files that Emacs can't find.")
106678
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
145 (defvar gdb-active-process nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
146 "GUD tooltips display variable values when t, and macro definitions otherwise.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
147 (defvar gdb-recording nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
148 "If t, then record session for playback and reverse execution")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
149 (defvar gdb-error "Non-nil when GDB is reporting an error.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
150 (defvar gdb-macro-info nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
151 "Non-nil if GDB knows that the inferior includes preprocessor macro info.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
152 (defvar gdb-buffer-fringe-width nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
153 (defvar gdb-signalled nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
154 (defvar gdb-source-window nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
155 (defvar gdb-inferior-status nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
156 (defvar gdb-continuation nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
157 (defvar gdb-look-up-stack nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
158 (defvar gdb-frame-begin nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
159 "Non-nil when GDB generates frame-begin annotation.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
160 (defvar gdb-printing t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
161 (defvar gdb-parent-bptno-enabled nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
162 (defvar gdb-ready nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
163 (defvar gdb-stack-update nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
164 (defvar gdb-early-user-input nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
165
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
166 (defvar gdb-buffer-type nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
167 "One of the symbols bound in `gdb-buffer-rules'.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
168 (make-variable-buffer-local 'gdb-buffer-type)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
169
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
170 (defvar gdb-input-queue ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
171 "A list of gdb command objects.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
172
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
173 (defvar gdb-prompting nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
174 "True when gdb is idle with no pending input.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
175
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
176 (defvar gdb-output-sink nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
177 "The disposition of the output of the current gdb command.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
178 Possible values are these symbols:
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
179
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
180 `user' -- gdb output should be copied to the GUD buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
181 for the user to see.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
182
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
183 `inferior' -- gdb output should be copied to the inferior-io buffer.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
184
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
185 `pre-emacs' -- output should be ignored util the post-prompt
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
186 annotation is received. Then the output-sink
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
187 becomes:...
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
188 `emacs' -- output should be collected in the partial-output-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
189 for subsequent processing by a command. This is the
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
190 disposition of output generated by commands that
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
191 gdb mode sends to gdb on its own behalf.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
192 `post-emacs' -- ignore output until the prompt annotation is
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
193 received, then go to USER disposition.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
194
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
195 gdba (gdb-ui.el) uses all five values, gdbmi (gdb-mi.el) only two
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
196 \(`user' and `emacs').")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
197
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
198 (defvar gdb-current-item nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
199 "The most recent command item sent to gdb.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
200
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
201 (defvar gdb-pending-triggers '()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
202 "A list of trigger functions that have run later than their output handlers.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
203
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
204 (defvar gdb-first-post-prompt nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
205 (defvar gdb-version nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
206 (defvar gdb-locals-font-lock-keywords nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
207 (defvar gdb-source-file-list nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
208 "List of source files for the current executable.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
209 (defconst gdb-error-regexp "\\^error,msg=\"\\(.+\\)\"")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
210
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
211 (defvar gdb-locals-font-lock-keywords-1
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
212 '(;; var = (struct struct_tag) value
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
213 ( "\\(^\\(\\sw\\|[_.]\\)+\\) += +(\\(struct\\) \\(\\(\\sw\\|[_.]\\)+\\)"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
214 (1 font-lock-variable-name-face)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
215 (3 font-lock-keyword-face)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
216 (4 font-lock-type-face))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
217 ;; var = (type) value
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
218 ( "\\(^\\(\\sw\\|[_.]\\)+\\) += +(\\(\\(\\sw\\|[_.]\\)+\\)"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
219 (1 font-lock-variable-name-face)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
220 (3 font-lock-type-face))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
221 ;; var = val
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
222 ( "\\(^\\(\\sw\\|[_.]\\)+\\) += +[^(]"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
223 (1 font-lock-variable-name-face)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
224 "Font lock keywords used in `gdb-local-mode'.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
225
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
226 (defvar gdb-locals-font-lock-keywords-2
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
227 '(;; var = type value
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
228 ( "\\(^\\(\\sw\\|[_.]\\)+\\)\t+\\(\\(\\sw\\|[_.]\\)+\\)"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
229 (1 font-lock-variable-name-face)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
230 (3 font-lock-type-face)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
231 "Font lock keywords used in `gdb-local-mode'.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
232
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
233 ;; Variables for GDB 6.4+
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
234 (defvar gdb-register-names nil "List of register names.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
235 (defvar gdb-changed-registers nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
236 "List of changed register numbers (strings).")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
237
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
238 ;;;###autoload
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
239 (defun gdb (command-line)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
240 "Run gdb on program FILE in buffer *gud-FILE*.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
241 The directory containing FILE becomes the initial working
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
242 directory and source-file directory for your debugger.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
243
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
244 If `gdb-many-windows' is nil (the default value) then gdb just
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
245 pops up the GUD buffer unless `gdb-show-main' is t. In this case
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
246 it starts with two windows: one displaying the GUD buffer and the
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
247 other with the source file with the main routine of the inferior.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
248
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
249 If `gdb-many-windows' is t, regardless of the value of
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
250 `gdb-show-main', the layout below will appear unless
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
251 `gdb-use-separate-io-buffer' is nil when the source buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
252 occupies the full width of the frame. Keybindings are shown in
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
253 some of the buffers.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
254
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
255 Watch expressions appear in the speedbar/slowbar.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
256
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
257 The following commands help control operation :
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
258
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
259 `gdb-many-windows' - Toggle the number of windows gdb uses.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
260 `gdb-restore-windows' - To restore the window layout.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
261
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
262 See Info node `(emacs)GDB Graphical Interface' for a more
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
263 detailed description of this mode.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
264
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
265 +----------------------------------------------------------------------+
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
266 | GDB Toolbar |
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
267 +-----------------------------------+----------------------------------+
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
268 | GUD buffer (I/O of GDB) | Locals buffer |
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
269 |-----------------------------------+----------------------------------+
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
270 | | |
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
271 | Source buffer | I/O buffer for debugged program |
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
272 | | |
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
273 |-----------------------------------+----------------------------------+
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
274 | Stack buffer | Breakpoints/threads buffer |
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
275 +-----------------------------------+----------------------------------+
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
276
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
277 The option \"--annotate=3\" must be included in this value. To
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
278 run GDB in text command mode, use `gud-gdb'. You need to use
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
279 text command mode to debug multiple programs within one Emacs
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
280 session."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
281 (interactive (list (gud-query-cmdline 'gdb)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
282
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
283 (when (and gud-comint-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
284 (buffer-name gud-comint-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
285 (get-buffer-process gud-comint-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
286 (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
287 (gdb-restore-windows)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
288 (error
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
289 "Multiple debugging requires restarting in text command mode"))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
290
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
291 (gud-common-init command-line nil 'gud-gdba-marker-filter)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
292 (set (make-local-variable 'gud-minor-mode) 'gdba)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
293 (setq comint-input-sender 'gdb-send)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
294
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
295 (gud-def gud-break "break %f:%l" "\C-b" "Set breakpoint at current line.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
296 (gud-def gud-tbreak "tbreak %f:%l" "\C-t"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
297 "Set temporary breakpoint at current line.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
298 (gud-def gud-remove "clear %f:%l" "\C-d" "Remove breakpoint at current line.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
299 (gud-def gud-step "step %p" "\C-s" "Step one source line with display.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
300 (gud-def gud-stepi "stepi %p" "\C-i" "Step one instruction with display.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
301 (gud-def gud-next "next %p" "\C-n" "Step one line (skip functions).")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
302 (gud-def gud-nexti "nexti %p" nil "Step one instruction (skip functions).")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
303 (gud-def gud-cont "continue" "\C-r" "Continue with display.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
304 (gud-def gud-finish "finish" "\C-f" "Finish executing current function.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
305 (gud-def gud-jump
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
306 (progn (gud-call "tbreak %f:%l") (gud-call "jump %f:%l"))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
307 "\C-j" "Set execution address to current line.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
308
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
309 (gud-def gud-rstep "reverse-step %p" nil "Reverse step one source line with display.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
310 (gud-def gud-rstepi "reverse-stepi %p" nil "Reverse step one instruction with display.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
311 (gud-def gud-rnext "reverse-next %p" nil "Reverse step one line (skip functions).")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
312 (gud-def gud-rnexti "reverse-nexti %p" nil "Reverse step one instruction (skip functions).")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
313 (gud-def gud-rcont "reverse-continue" nil "Reverse continue with display.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
314 (gud-def gud-rfinish "reverse-finish" nil "Reverse finish executing current function.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
315
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
316 (gud-def gud-up "up %p" "<" "Up N stack frames (numeric arg).")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
317 (gud-def gud-down "down %p" ">" "Down N stack frames (numeric arg).")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
318 (gud-def gud-print "print %e" "\C-p" "Evaluate C expression at point.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
319 (gud-def gud-pstar "print* %e" nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
320 "Evaluate C dereferenced pointer expression at point.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
321
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
322 ;; For debugging Emacs only.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
323 (gud-def gud-pv "pv1 %e" "\C-v" "Print the value of the lisp variable.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
324
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
325 (gud-def gud-until "until %l" "\C-u" "Continue to current line.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
326 (gud-def gud-run "run" nil "Run the program.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
327
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
328 (local-set-key "\C-i" 'gud-gdb-complete-command)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
329 (setq comint-prompt-regexp "^(.*gdb[+]?) *")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
330 (setq paragraph-start comint-prompt-regexp)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
331 (setq gdb-output-sink 'user)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
332 (setq gdb-first-prompt t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
333 (setq gud-running nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
334 (setq gdb-ready nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
335 (setq gdb-stack-update nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
336 (setq gdb-flush-pending-output nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
337 (setq gdb-early-user-input nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
338 (setq gud-filter-pending-text nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
339 (gdb-thread-identification)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
340 (run-hooks 'gdb-mode-hook))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
341
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
342 ;; Keep as an alias for compatibility with Emacs 22.1.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
343 ;;;###autoload
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
344 (defalias 'gdba 'gdb)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
345
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
346 (defgroup gdb nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
347 "Gdb Graphical Mode options specifically for running Gdb in Emacs."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
348 :group 'processes
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
349 :group 'tools)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
350
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
351 (defcustom gdb-debug-log-max 128
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
352 "Maximum size of `gdb-debug-log'. If nil, size is unlimited."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
353 :group 'gdb
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
354 :type '(choice (integer :tag "Number of elements")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
355 (const :tag "Unlimited" nil))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
356 :version "22.1")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
357
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
358 (defvar gdb-debug-log nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
359 "List of commands sent to and replies received from GDB.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
360 Most recent commands are listed first. This list stores only the last
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
361 `gdb-debug-log-max' values. This variable is used to debug GDB-UI.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
362
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
363 ;;;###autoload
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
364 (defcustom gdb-enable-debug nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
365 "Non-nil means record the process input and output in `gdb-debug-log'."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
366 :type 'boolean
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
367 :group 'gdb
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
368 :version "22.1")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
369
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
370 (defcustom gdb-cpp-define-alist-program "gcc -E -dM -"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
371 "Shell command for generating a list of defined macros in a source file.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
372 This list is used to display the #define directive associated
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
373 with an identifier as a tooltip. It works in a debug session with
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
374 GDB, when `gud-tooltip-mode' is t.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
375
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
376 Set `gdb-cpp-define-alist-flags' for any include paths or
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
377 predefined macros."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
378 :type 'string
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
379 :group 'gdb
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
380 :version "22.1")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
381
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
382 (defcustom gdb-cpp-define-alist-flags ""
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
383 "Preprocessor flags for `gdb-cpp-define-alist-program'."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
384 :type 'string
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
385 :group 'gdb
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
386 :version "22.1")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
387
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
388 (defcustom gdb-create-source-file-list t
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
389 "Non-nil means create a list of files from which the executable was built.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
390 Set this to nil if the GUD buffer displays \"initializing...\" in the mode
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
391 line for a long time when starting, possibly because your executable was
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
392 built from a large number of files. This allows quicker initialization
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
393 but means that these files are not automatically enabled for debugging,
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
394 e.g., you won't be able to click in the fringe to set a breakpoint until
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
395 execution has already stopped there."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
396 :type 'boolean
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
397 :group 'gdb
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
398 :version "23.1")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
399
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
400 (defcustom gdb-show-main nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
401 "Non-nil means display source file containing the main routine at startup.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
402 Also display the main routine in the disassembly buffer if present."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
403 :type 'boolean
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
404 :group 'gdb
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
405 :version "22.1")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
406
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
407 (defcustom gdb-many-windows nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
408 "If nil, just pop up the GUD buffer unless `gdb-show-main' is t.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
409 In this case start with two windows: one displaying the GUD
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
410 buffer and the other with the source file with the main routine
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
411 of the debugged program. Non-nil means display the layout shown
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
412 for `gdba'."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
413 :type 'boolean
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
414 :group 'gdb
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
415 :version "22.1")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
416
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
417 (defcustom gdb-use-separate-io-buffer nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
418 "Non-nil means display output from the debugged program in a separate buffer."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
419 :type 'boolean
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
420 :group 'gdb
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
421 :version "22.1")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
422
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
423 (defun gdb-force-mode-line-update (status)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
424 (let ((buffer gud-comint-buffer))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
425 (if (and buffer (buffer-name buffer))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
426 (with-current-buffer buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
427 (setq mode-line-process
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
428 (format ":%s [%s]"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
429 (process-status (get-buffer-process buffer)) status))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
430 ;; Force mode line redisplay soon.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
431 (force-mode-line-update)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
432
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
433 (defun gdb-enable-debug (arg)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
434 "Toggle logging of transaction between Emacs and Gdb.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
435 The log is stored in `gdb-debug-log' as an alist with elements
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
436 whose cons is send, send-item or recv and whose cdr is the string
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
437 being transferred. This list may grow up to a size of
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
438 `gdb-debug-log-max' after which the oldest element (at the end of
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
439 the list) is deleted every time a new one is added (at the front)."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
440 (interactive "P")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
441 (setq gdb-enable-debug
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
442 (if (null arg)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
443 (not gdb-enable-debug)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
444 (> (prefix-numeric-value arg) 0)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
445 (message (format "Logging of transaction %sabled"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
446 (if gdb-enable-debug "en" "dis"))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
447
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
448 (defun gdb-many-windows (arg)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
449 "Toggle the number of windows in the basic arrangement.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
450 With prefix argument ARG, display additional buffers if ARG is positive,
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
451 otherwise use a single window."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
452 (interactive "P")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
453 (setq gdb-many-windows
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
454 (if (null arg)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
455 (not gdb-many-windows)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
456 (> (prefix-numeric-value arg) 0)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
457 (message (format "Display of other windows %sabled"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
458 (if gdb-many-windows "en" "dis")))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
459 (if (and gud-comint-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
460 (buffer-name gud-comint-buffer))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
461 (condition-case nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
462 (gdb-restore-windows)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
463 (error nil))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
464
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
465 (defun gdb-use-separate-io-buffer (arg)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
466 "Toggle separate IO for debugged program.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
467 With prefix argument ARG, use separate IO if ARG is positive,
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
468 otherwise do not."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
469 (interactive "P")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
470 (setq gdb-use-separate-io-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
471 (if (null arg)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
472 (not gdb-use-separate-io-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
473 (> (prefix-numeric-value arg) 0)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
474 (message (format "Separate IO %sabled"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
475 (if gdb-use-separate-io-buffer "en" "dis")))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
476 (if (and gud-comint-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
477 (buffer-name gud-comint-buffer))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
478 (condition-case nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
479 (if gdb-use-separate-io-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
480 (if gdb-many-windows (gdb-restore-windows))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
481 (kill-buffer (gdb-inferior-io-name)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
482 (error nil))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
483
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
484 (defvar gdb-define-alist nil "Alist of #define directives for GUD tooltips.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
485
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
486 (defun gdb-create-define-alist ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
487 "Create an alist of #define directives for GUD tooltips."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
488 (let* ((file (buffer-file-name))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
489 (output
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
490 (with-output-to-string
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
491 (with-current-buffer standard-output
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
492 (and file
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
493 (file-exists-p file)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
494 ;; call-process doesn't work with remote file names.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
495 (not (file-remote-p default-directory))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
496 (call-process shell-file-name file
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
497 (list t nil) nil "-c"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
498 (concat gdb-cpp-define-alist-program " "
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
499 gdb-cpp-define-alist-flags))))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
500 (define-list (split-string output "\n" t)) (name))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
501 (setq gdb-define-alist nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
502 (dolist (define define-list)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
503 (setq name (nth 1 (split-string define "[( ]")))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
504 (push (cons name define) gdb-define-alist))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
505
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
506 (declare-function tooltip-show "tooltip" (text &optional use-echo-area))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
507 (defvar tooltip-use-echo-area)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
508
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
509 (defun gdb-tooltip-print (expr)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
510 (tooltip-show
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
511 (with-current-buffer (gdb-get-buffer 'gdb-partial-output-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
512 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
513 (let ((string
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
514 (if (search-forward "=" nil t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
515 (concat expr (buffer-substring (- (point) 2) (point-max)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
516 (buffer-string))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
517 ;; remove newline for gud-tooltip-echo-area
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
518 (substring string 0 (- (length string) 1))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
519 (or gud-tooltip-echo-area tooltip-use-echo-area
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
520 (not (display-graphic-p)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
521
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
522 ;; If expr is a macro for a function don't print because of possible dangerous
106697
ac408704629c lisp/*: Fix typos in docstrings and messages.
Juanma Barranquero <lekktu@gmail.com>
parents: 106680
diff changeset
523 ;; side-effects. Also printing a function within a tooltip generates an
106678
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
524 ;; unexpected starting annotation (phase error).
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
525 (defun gdb-tooltip-print-1 (expr)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
526 (with-current-buffer (gdb-get-buffer 'gdb-partial-output-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
527 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
528 (if (search-forward "expands to: " nil t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
529 (unless (looking-at "\\S-+.*(.*).*")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
530 (gdb-enqueue-input
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
531 (list (concat gdb-server-prefix "print " expr "\n")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
532 `(lambda () (gdb-tooltip-print ,expr))))))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
533
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
534 (defconst gdb-source-file-regexp "\\(.+?\\), \\|\\([^, \n].*$\\)")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
535
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
536 (defun gdb-init-buffer ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
537 (set (make-local-variable 'gud-minor-mode)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
538 (buffer-local-value 'gud-minor-mode gud-comint-buffer))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
539 (set (make-local-variable 'tool-bar-map) gud-tool-bar-map)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
540 (when gud-tooltip-mode
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
541 (make-local-variable 'gdb-define-alist)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
542 (gdb-create-define-alist)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
543 (add-hook 'after-save-hook 'gdb-create-define-alist nil t)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
544
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
545 (defun gdb-set-gud-minor-mode-existing-buffers ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
546 "Create list of source files for current GDB session."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
547 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
548 (when (search-forward "read in on demand:" nil t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
549 (while (re-search-forward gdb-source-file-regexp nil t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
550 (push (file-name-nondirectory (or (match-string 1) (match-string 2)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
551 gdb-source-file-list))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
552 (dolist (buffer (buffer-list))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
553 (with-current-buffer buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
554 (when (and buffer-file-name
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
555 (member (file-name-nondirectory buffer-file-name)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
556 gdb-source-file-list))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
557 (gdb-init-buffer)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
558 (gdb-force-mode-line-update
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
559 (propertize "ready" 'face font-lock-variable-name-face)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
560
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
561 (defun gdb-find-watch-expression ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
562 (let* ((var (nth (- (line-number-at-pos (point)) 2) gdb-var-list))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
563 (varnum (car var)) expr array)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
564 (string-match "\\(var[0-9]+\\)\\.\\(.*\\)" varnum)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
565 (let ((var1 (assoc (match-string 1 varnum) gdb-var-list)) var2 varnumlet
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
566 (component-list (split-string (match-string 2 varnum) "\\." t)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
567 (setq expr (nth 1 var1))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
568 (setq varnumlet (car var1))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
569 (dolist (component component-list)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
570 (setq var2 (assoc varnumlet gdb-var-list))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
571 (setq expr (concat expr
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
572 (if (string-match ".*\\[[0-9]+\\]$" (nth 3 var2))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
573 (concat "[" component "]")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
574 (concat "." component))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
575 (setq varnumlet (concat varnumlet "." component)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
576 expr)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
577
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
578 (defun gdb-toggle-recording ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
579 "Start/stop recording of debug session."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
580 (interactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
581 (if gud-running
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
582 (message-box "Recording cannot be started or stopped while your program is still running")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
583 (gdb-enqueue-input
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
584 (list (concat gdb-server-prefix
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
585 (if gdb-recording "record stop\n" "target record\n"))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
586 'gdb-recording-handler))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
587
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
588 ;; Convenience function for tool bar.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
589 (defalias 'gdb-toggle-recording-1 'gdb-toggle-recording)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
590
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
591 (defun gdb-recording-handler ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
592 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
593 (if (re-search-forward "current architecture doesn't support record function" nil t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
594 (message-box "Not enabled. The current architecture doesn't support the process record function.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
595 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
596 (if (re-search-forward "Undefined target command" nil t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
597 (message-box "Not enabled. Process record requires GDB 7.0 onwards.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
598 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
599 (if (re-search-forward "the program is not being run" nil t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
600 (message-box "Not enabled. Starting process recording requires an active target (running process).")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
601 (setq gdb-recording (not gdb-recording))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
602 ;; Actually forcing the tool-bar to update.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
603 (force-mode-line-update)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
604
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
605 (defun gdb-init-1 ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
606 (gud-def gud-break (if (not (string-match "Machine" mode-name))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
607 (gud-call "break %f:%l" arg)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
608 (save-excursion
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
609 (beginning-of-line)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
610 (forward-char 2)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
611 (gud-call "break *%a" arg)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
612 "\C-b" "Set breakpoint at current line or address.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
613 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
614 (gud-def gud-remove (if (not (string-match "Machine" mode-name))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
615 (gud-call "clear %f:%l" arg)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
616 (save-excursion
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
617 (beginning-of-line)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
618 (forward-char 2)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
619 (gud-call "clear *%a" arg)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
620 "\C-d" "Remove breakpoint at current line or address.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
621 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
622 (gud-def gud-until (if (not (string-match "Machine" mode-name))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
623 (gud-call "until %f:%l" arg)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
624 (save-excursion
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
625 (beginning-of-line)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
626 (forward-char 2)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
627 (gud-call "until *%a" arg)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
628 "\C-u" "Continue to current line or address.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
629 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
630 (gud-def gud-go (gud-call (if gdb-active-process "continue" "run") arg)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
631 nil "Start or continue execution.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
632
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
633 ;; For debugging Emacs only.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
634 (gud-def gud-pp
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
635 (gud-call
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
636 (concat
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
637 "pp1 " (if (eq (buffer-local-value
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
638 'major-mode (window-buffer)) 'speedbar-mode)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
639 (gdb-find-watch-expression) "%e")) arg)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
640 nil "Print the Emacs s-expression.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
641
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
642 (define-key gud-minor-mode-map [left-margin mouse-1]
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
643 'gdb-mouse-set-clear-breakpoint)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
644 (define-key gud-minor-mode-map [left-fringe mouse-1]
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
645 'gdb-mouse-set-clear-breakpoint)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
646 (define-key gud-minor-mode-map [left-margin C-mouse-1]
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
647 'gdb-mouse-toggle-breakpoint-margin)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
648 (define-key gud-minor-mode-map [left-fringe C-mouse-1]
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
649 'gdb-mouse-toggle-breakpoint-fringe)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
650
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
651 (define-key gud-minor-mode-map [left-margin drag-mouse-1]
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
652 'gdb-mouse-until)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
653 (define-key gud-minor-mode-map [left-fringe drag-mouse-1]
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
654 'gdb-mouse-until)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
655 (define-key gud-minor-mode-map [left-margin mouse-3]
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
656 'gdb-mouse-until)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
657 (define-key gud-minor-mode-map [left-fringe mouse-3]
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
658 'gdb-mouse-until)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
659
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
660 (define-key gud-minor-mode-map [left-margin C-drag-mouse-1]
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
661 'gdb-mouse-jump)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
662 (define-key gud-minor-mode-map [left-fringe C-drag-mouse-1]
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
663 'gdb-mouse-jump)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
664 (define-key gud-minor-mode-map [left-fringe C-mouse-3]
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
665 'gdb-mouse-jump)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
666 (define-key gud-minor-mode-map [left-margin C-mouse-3]
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
667 'gdb-mouse-jump)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
668
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
669 ;; (re-)initialize
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
670 (setq gdb-pc-address (if gdb-show-main "main" nil))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
671 (setq gdb-previous-frame-pc-address nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
672 gdb-memory-address "main"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
673 gdb-previous-frame nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
674 gdb-selected-frame nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
675 gdb-current-language nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
676 gdb-frame-number nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
677 gdb-var-list nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
678 gdb-main-file nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
679 gdb-first-post-prompt t
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
680 gdb-prompting nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
681 gdb-input-queue nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
682 gdb-current-item nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
683 gdb-pending-triggers nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
684 gdb-output-sink 'user
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
685 gdb-server-prefix "server "
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
686 gdb-location-alist nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
687 gdb-source-file-list nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
688 gdb-error nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
689 gdb-macro-info nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
690 gdb-buffer-fringe-width (car (window-fringes))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
691 gdb-debug-log nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
692 gdb-signalled nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
693 gdb-source-window nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
694 gdb-inferior-status nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
695 gdb-continuation nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
696 gdb-look-up-stack nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
697 gdb-frame-begin nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
698 gdb-printing t
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
699 gud-old-arrow nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
700 gdb-thread-indicator nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
701 gdb-register-names nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
702 gdb-recording nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
703
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
704 (setq gdb-buffer-type 'gdba)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
705
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
706 (if gdb-use-separate-io-buffer (gdb-clear-inferior-io))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
707
107681
33d43eba45d4 (gdb-apple-test): New function.
Nick Roberts <nickrob@snap.net.nz>
parents: 107196
diff changeset
708 (if (eq system-type 'darwin)
33d43eba45d4 (gdb-apple-test): New function.
Nick Roberts <nickrob@snap.net.nz>
parents: 107196
diff changeset
709 (gdb-enqueue-input (list "server show version\n" 'gdb-apple-test)))
33d43eba45d4 (gdb-apple-test): New function.
Nick Roberts <nickrob@snap.net.nz>
parents: 107196
diff changeset
710
106678
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
711 ;; Hack to see test for GDB 6.4+ (-stack-info-frame was implemented in 6.4)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
712 (gdb-enqueue-input (list "server interpreter mi -stack-info-frame\n"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
713 'gdb-get-version)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
714
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
715 (defun gdb-init-2 ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
716 (if (eq window-system 'w32)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
717 (gdb-enqueue-input (list "set new-console off\n" 'ignore)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
718 (gdb-enqueue-input (list "set height 0\n" 'ignore))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
719 (gdb-enqueue-input (list "set width 0\n" 'ignore))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
720
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
721 (if (string-equal gdb-version "pre-6.4")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
722 (if gdb-create-source-file-list
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
723 (gdb-enqueue-input (list (concat gdb-server-prefix "info sources\n")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
724 'gdb-set-gud-minor-mode-existing-buffers))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
725 (setq gdb-locals-font-lock-keywords gdb-locals-font-lock-keywords-1))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
726 ; Needs GDB 6.2 onwards.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
727 (if gdb-create-source-file-list
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
728 (gdb-enqueue-input
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
729 (list "server interpreter mi \"-file-list-exec-source-files\"\n"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
730 'gdb-set-gud-minor-mode-existing-buffers-1)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
731 (setq gdb-locals-font-lock-keywords gdb-locals-font-lock-keywords-2)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
732 ; Needs GDB 7.0 onwards.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
733 (gdb-enqueue-input
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
734 (list "server interpreter mi -enable-pretty-printing\n" 'ignore)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
735
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
736 ;; Find source file and compilation directory here.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
737 ;; Works for C, C++, Fortran and Ada but not Java (GDB 6.4)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
738 (gdb-enqueue-input (list "server list\n" 'ignore))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
739 (gdb-enqueue-input (list "server list MAIN__\n" 'ignore))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
740 (gdb-enqueue-input (list "server info source\n" 'gdb-source-info)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
741
107681
33d43eba45d4 (gdb-apple-test): New function.
Nick Roberts <nickrob@snap.net.nz>
parents: 107196
diff changeset
742 ;; Workaround for some Apple versions of GDB that add ^M at EOL
33d43eba45d4 (gdb-apple-test): New function.
Nick Roberts <nickrob@snap.net.nz>
parents: 107196
diff changeset
743 ;; after the command "server interpreter mi -stack-info-frame".
33d43eba45d4 (gdb-apple-test): New function.
Nick Roberts <nickrob@snap.net.nz>
parents: 107196
diff changeset
744 (defun gdb-apple-test ()
33d43eba45d4 (gdb-apple-test): New function.
Nick Roberts <nickrob@snap.net.nz>
parents: 107196
diff changeset
745 (goto-char (point-min))
33d43eba45d4 (gdb-apple-test): New function.
Nick Roberts <nickrob@snap.net.nz>
parents: 107196
diff changeset
746 (if (re-search-forward "(Apple version " nil t)
33d43eba45d4 (gdb-apple-test): New function.
Nick Roberts <nickrob@snap.net.nz>
parents: 107196
diff changeset
747 (let* ((process (get-buffer-process gud-comint-buffer))
33d43eba45d4 (gdb-apple-test): New function.
Nick Roberts <nickrob@snap.net.nz>
parents: 107196
diff changeset
748 (coding-systems (process-coding-system process)))
33d43eba45d4 (gdb-apple-test): New function.
Nick Roberts <nickrob@snap.net.nz>
parents: 107196
diff changeset
749 (set-process-coding-system process
33d43eba45d4 (gdb-apple-test): New function.
Nick Roberts <nickrob@snap.net.nz>
parents: 107196
diff changeset
750 (coding-system-change-eol-conversion
33d43eba45d4 (gdb-apple-test): New function.
Nick Roberts <nickrob@snap.net.nz>
parents: 107196
diff changeset
751 (car coding-systems) 'dos)
33d43eba45d4 (gdb-apple-test): New function.
Nick Roberts <nickrob@snap.net.nz>
parents: 107196
diff changeset
752 (cdr coding-systems)))))
33d43eba45d4 (gdb-apple-test): New function.
Nick Roberts <nickrob@snap.net.nz>
parents: 107196
diff changeset
753
106678
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
754 (defun gdb-get-version ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
755 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
756 (if (re-search-forward "Undefined\\( mi\\)* command:" nil t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
757 (setq gdb-version "pre-6.4")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
758 (setq gdb-version "6.4+"))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
759 (gdb-init-2))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
760
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
761 (defmacro gdb-if-arrow (arrow-position &rest body)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
762 `(if ,arrow-position
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
763 (let ((buffer (marker-buffer ,arrow-position)) (line))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
764 (if (equal buffer (window-buffer (posn-window end)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
765 (with-current-buffer buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
766 (when (or (equal start end)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
767 (equal (posn-point start)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
768 (marker-position ,arrow-position)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
769 ,@body))))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
770
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
771 (defun gdb-mouse-until (event)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
772 "Continue running until a source line past the current line.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
773 The destination source line can be selected either by clicking
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
774 with mouse-3 on the fringe/margin or dragging the arrow
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
775 with mouse-1 (default bindings)."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
776 (interactive "e")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
777 (let ((start (event-start event))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
778 (end (event-end event)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
779 (gdb-if-arrow gud-overlay-arrow-position
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
780 (setq line (line-number-at-pos (posn-point end)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
781 (gud-call (concat "until " (number-to-string line))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
782 (gdb-if-arrow gdb-overlay-arrow-position
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
783 (save-excursion
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
784 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
785 (forward-line (1- (line-number-at-pos (posn-point end))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
786 (forward-char 2)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
787 (gud-call (concat "until *%a"))))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
788
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
789 (defun gdb-mouse-jump (event)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
790 "Set execution address/line.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
791 The destination source line can be selected either by clicking with C-mouse-3
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
792 on the fringe/margin or dragging the arrow with C-mouse-1 (default bindings).
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
793 Unlike `gdb-mouse-until' the destination address can be before the current
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
794 line, and no execution takes place."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
795 (interactive "e")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
796 (let ((start (event-start event))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
797 (end (event-end event)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
798 (gdb-if-arrow gud-overlay-arrow-position
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
799 (setq line (line-number-at-pos (posn-point end)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
800 (progn
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
801 (gud-call (concat "tbreak " (number-to-string line)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
802 (gud-call (concat "jump " (number-to-string line)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
803 (gdb-if-arrow gdb-overlay-arrow-position
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
804 (save-excursion
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
805 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
806 (forward-line (1- (line-number-at-pos (posn-point end))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
807 (forward-char 2)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
808 (progn
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
809 (gud-call (concat "tbreak *%a"))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
810 (gud-call (concat "jump *%a")))))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
811
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
812 (defcustom gdb-speedbar-auto-raise nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
813 "If non-nil raise speedbar every time display of watch expressions is\
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
814 updated."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
815 :type 'boolean
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
816 :group 'gdb
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
817 :version "22.1")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
818
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
819 (defun gdb-speedbar-auto-raise (arg)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
820 "Toggle automatic raising of the speedbar for watch expressions.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
821 With prefix argument ARG, automatically raise speedbar if ARG is
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
822 positive, otherwise don't automatically raise it."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
823 (interactive "P")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
824 (setq gdb-speedbar-auto-raise
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
825 (if (null arg)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
826 (not gdb-speedbar-auto-raise)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
827 (> (prefix-numeric-value arg) 0)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
828 (message (format "Auto raising %sabled"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
829 (if gdb-speedbar-auto-raise "en" "dis"))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
830
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
831 (defcustom gdb-use-colon-colon-notation nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
832 "If non-nil use FUN::VAR format to display variables in the speedbar."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
833 :type 'boolean
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
834 :group 'gdb
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
835 :version "22.1")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
836
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
837 (define-key gud-minor-mode-map "\C-c\C-w" 'gud-watch)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
838 (define-key global-map (concat gud-key-prefix "\C-w") 'gud-watch)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
839
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
840 (declare-function tooltip-identifier-from-point "tooltip" (point))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
841
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
842 (defun gud-watch (&optional arg event)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
843 "Watch expression at point.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
844 With arg, enter name of variable to be watched in the minibuffer."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
845 (interactive (list current-prefix-arg last-input-event))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
846 (let ((minor-mode (buffer-local-value 'gud-minor-mode gud-comint-buffer)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
847 (if (memq minor-mode '(gdbmi gdba))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
848 (progn
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
849 (if event (posn-set-point (event-end event)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
850 (require 'tooltip)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
851 (save-selected-window
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
852 (let ((expr
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
853 (if arg
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
854 (completing-read "Name of variable: "
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
855 'gud-gdb-complete-command)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
856 (if (and transient-mark-mode mark-active)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
857 (buffer-substring (region-beginning) (region-end))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
858 (concat (if (eq major-mode 'gdb-registers-mode) "$")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
859 (tooltip-identifier-from-point (point)))))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
860 (set-text-properties 0 (length expr) nil expr)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
861 (gdb-enqueue-input
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
862 (list
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
863 (if (eq minor-mode 'gdba)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
864 (concat
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
865 "server interpreter mi \"-var-create - * " expr "\"\n")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
866 (concat"-var-create - * " expr "\n"))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
867 `(lambda () (gdb-var-create-handler ,expr)))))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
868 (message "gud-watch is a no-op in this mode."))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
869
106680
63c5fb6b67fc Declare some functions for the byte-compiler.
Juanma Barranquero <lekktu@gmail.com>
parents: 106678
diff changeset
870 (declare-function speedbar-change-initial-expansion-list "speedbar" (new-default))
63c5fb6b67fc Declare some functions for the byte-compiler.
Juanma Barranquero <lekktu@gmail.com>
parents: 106678
diff changeset
871
106678
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
872 (defun gdb-var-create-handler (expr)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
873 (let* ((result (gdb-json-partial-output)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
874 (if (not (bindat-get-field result 'msg))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
875 (let ((var
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
876 (list (bindat-get-field result 'name)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
877 (if (and (string-equal gdb-current-language "c")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
878 gdb-use-colon-colon-notation gdb-selected-frame)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
879 (setq expr (concat gdb-selected-frame "::" expr))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
880 expr)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
881 (bindat-get-field result 'numchild)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
882 (bindat-get-field result 'type)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
883 (bindat-get-field result 'value)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
884 nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
885 (bindat-get-field result 'has_more)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
886 gdb-frame-address)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
887 (push var gdb-var-list)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
888 (speedbar 1)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
889 (unless (string-equal
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
890 speedbar-initial-expansion-list-name "GUD")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
891 (speedbar-change-initial-expansion-list "GUD")))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
892 (message-box "No symbol \"%s\" in current context." expr))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
893
106680
63c5fb6b67fc Declare some functions for the byte-compiler.
Juanma Barranquero <lekktu@gmail.com>
parents: 106678
diff changeset
894 (declare-function speedbar-timer-fn "speedbar" ())
63c5fb6b67fc Declare some functions for the byte-compiler.
Juanma Barranquero <lekktu@gmail.com>
parents: 106678
diff changeset
895
106678
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
896 (defun gdb-speedbar-update ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
897 (when (and (boundp 'speedbar-frame) (frame-live-p speedbar-frame)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
898 (not (member 'gdb-speedbar-timer gdb-pending-triggers)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
899 ;; Dummy command to update speedbar even when idle.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
900 (gdb-enqueue-input (list "server pwd\n" 'gdb-speedbar-timer-fn))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
901 ;; Keep gdb-pending-triggers non-nil till end.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
902 (push 'gdb-speedbar-timer gdb-pending-triggers)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
903
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
904 (defun gdb-speedbar-timer-fn ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
905 (if gdb-speedbar-auto-raise
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
906 (raise-frame speedbar-frame))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
907 (setq gdb-pending-triggers
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
908 (delq 'gdb-speedbar-timer gdb-pending-triggers))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
909 (speedbar-timer-fn))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
910
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
911 (defun gdb-var-evaluate-expression-handler (varnum changed)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
912 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
913 (re-search-forward "\\(.+\\)\\^done,value=\\(\".*\"\\)" nil t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
914 (setq gdb-pending-triggers
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
915 (delq (string-to-number (match-string 1)) gdb-pending-triggers))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
916 (let ((var (assoc varnum gdb-var-list)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
917 (when var
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
918 (if changed (setcar (nthcdr 5 var) 'changed))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
919 (setcar (nthcdr 4 var) (read (match-string 2)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
920 (gdb-speedbar-update))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
921
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
922 (defun gdb-var-list-children (varnum)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
923 (gdb-enqueue-input
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
924 (list (concat "server interpreter mi \"-var-list-children " varnum "\"\n")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
925 `(lambda () (gdb-var-list-children-handler ,varnum)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
926
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
927 (defconst gdb-var-list-children-regexp
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
928 "child={.*?name=\"\\(.*?\\)\".*?,exp=\"\\(.*?\\)\".*?,\
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
929 numchild=\"\\(.*?\\)\"\\(}\\|.*?,\\(type=\"\\(.*?\\)\"\\)?.*?}\\)")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
930
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
931 (defun gdb-var-list-children-handler (varnum)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
932 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
933 (let ((var-list nil))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
934 (catch 'child-already-watched
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
935 (dolist (var gdb-var-list)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
936 (if (string-equal varnum (car var))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
937 (progn
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
938 (push var var-list)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
939 (while (re-search-forward gdb-var-list-children-regexp nil t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
940 (let ((varchild (list (match-string 1)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
941 (match-string 2)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
942 (match-string 3)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
943 (match-string 6)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
944 nil nil)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
945 (if (assoc (car varchild) gdb-var-list)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
946 (throw 'child-already-watched nil))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
947 (push varchild var-list)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
948 (gdb-enqueue-input
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
949 (list
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
950 (concat
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
951 "server interpreter mi \"0-var-evaluate-expression "
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
952 (car varchild) "\"\n")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
953 `(lambda () (gdb-var-evaluate-expression-handler
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
954 ,(car varchild) nil)))))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
955 (push var var-list)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
956 (setq gdb-var-list (nreverse var-list)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
957
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
958 (defun gdb-var-update ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
959 (when (not (member 'gdb-var-update gdb-pending-triggers))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
960 (gdb-enqueue-input
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
961 (list "server interpreter mi \"-var-update *\"\n"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
962 'gdb-var-update-handler))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
963 (push 'gdb-var-update gdb-pending-triggers)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
964
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
965 (defconst gdb-var-update-regexp
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
966 "{.*?name=\"\\(.*?\\)\".*?,in_scope=\"\\(.*?\\)\".*?,\
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
967 type_changed=\".*?\".*?}")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
968
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
969 (defun gdb-var-update-handler ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
970 (dolist (var gdb-var-list)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
971 (setcar (nthcdr 5 var) nil))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
972 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
973 (let ((n 0))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
974 (while (re-search-forward gdb-var-update-regexp nil t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
975 (let ((varnum (match-string 1)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
976 (if (string-equal (match-string 2) "false")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
977 (let ((var (assoc varnum gdb-var-list)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
978 (if var (setcar (nthcdr 5 var) 'out-of-scope)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
979 (setq n (1+ n))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
980 (push n gdb-pending-triggers)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
981 (gdb-enqueue-input
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
982 (list
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
983 (concat "server interpreter mi \"" (number-to-string n)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
984 "-var-evaluate-expression " varnum "\"\n")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
985 `(lambda () (gdb-var-evaluate-expression-handler ,varnum t))))))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
986 (setq gdb-pending-triggers
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
987 (delq 'gdb-var-update gdb-pending-triggers)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
988
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
989 (defun gdb-var-set-format (format)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
990 "Set the output format for a variable displayed in the speedbar."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
991 (let* ((var (nth (- (count-lines (point-min) (point)) 2) gdb-var-list))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
992 (varnum (car var)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
993 (gdb-enqueue-input
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
994 (list
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
995 (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
996 (concat "server interpreter mi \"-var-set-format "
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
997 varnum " " format "\"\n")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
998 (concat "-var-set-format " varnum " " format "\n"))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
999 `(lambda () (gdb-var-set-format-handler ,varnum))))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1000
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1001 (defconst gdb-var-set-format-regexp
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1002 "format=\"\\(.*?\\)\",.*value=\"\\(.*?\\)\"")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1003
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1004 (defun gdb-var-set-format-handler (varnum)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1005 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1006 (if (re-search-forward gdb-var-set-format-regexp nil t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1007 (let ((var (assoc varnum gdb-var-list)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1008 (setcar (nthcdr 4 var) (match-string 2))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1009 (gdb-var-update-1))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1010
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1011 (defun gdb-var-delete-1 (var varnum)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1012 (gdb-enqueue-input
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1013 (list
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1014 (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1015 (concat "server interpreter mi \"-var-delete " varnum "\"\n")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1016 (concat "-var-delete " varnum "\n"))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1017 'ignore))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1018 (setq gdb-var-list (delq var gdb-var-list))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1019 (dolist (varchild gdb-var-list)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1020 (if (string-match (concat (car var) "\\.") (car varchild))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1021 (setq gdb-var-list (delq varchild gdb-var-list)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1022
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1023 (defun gdb-var-delete ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1024 "Delete watch expression at point from the speedbar."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1025 (interactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1026 (if (memq (buffer-local-value 'gud-minor-mode gud-comint-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1027 '(gdbmi gdba))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1028 (let* ((var (nth (- (count-lines (point-min) (point)) 2) gdb-var-list))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1029 (varnum (car var)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1030 (if (string-match "\\." (car var))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1031 (message-box "Can only delete a root expression")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1032 (gdb-var-delete-1 var varnum)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1033
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1034 (defun gdb-var-delete-children (varnum)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1035 "Delete children of variable object at point from the speedbar."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1036 (gdb-enqueue-input
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1037 (list
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1038 (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1039 (concat "server interpreter mi \"-var-delete -c " varnum "\"\n")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1040 (concat "-var-delete -c " varnum "\n")) 'ignore)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1041
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1042 (defun gdb-edit-value (text token indent)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1043 "Assign a value to a variable displayed in the speedbar."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1044 (let* ((var (nth (- (count-lines (point-min) (point)) 2) gdb-var-list))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1045 (varnum (car var)) (value))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1046 (setq value (read-string "New value: "))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1047 (gdb-enqueue-input
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1048 (list
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1049 (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1050 (concat "server interpreter mi \"-var-assign "
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1051 varnum " " value "\"\n")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1052 (concat "-var-assign " varnum " " value "\n"))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1053 `(lambda () (gdb-edit-value-handler ,value))))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1054
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1055 (defun gdb-edit-value-handler (value)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1056 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1057 (if (re-search-forward gdb-error-regexp nil t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1058 (message-box "Invalid number or expression (%s)" value)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1059
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1060 (defcustom gdb-show-changed-values t
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1061 "If non-nil change the face of out of scope variables and changed values.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1062 Out of scope variables are suppressed with `shadow' face.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1063 Changed values are highlighted with the face `font-lock-warning-face'."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1064 :type 'boolean
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1065 :group 'gdb
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1066 :version "22.1")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1067
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1068 (defcustom gdb-max-children 40
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1069 "Maximum number of children before expansion requires confirmation."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1070 :type 'integer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1071 :group 'gdb
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1072 :version "22.1")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1073
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1074 (defcustom gdb-delete-out-of-scope t
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1075 "If non-nil delete watch expressions automatically when they go out of scope."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1076 :type 'boolean
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1077 :group 'gdb
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1078 :version "22.2")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1079
106680
63c5fb6b67fc Declare some functions for the byte-compiler.
Juanma Barranquero <lekktu@gmail.com>
parents: 106678
diff changeset
1080 (declare-function speedbar-change-expand-button-char "speedbar" (char))
63c5fb6b67fc Declare some functions for the byte-compiler.
Juanma Barranquero <lekktu@gmail.com>
parents: 106678
diff changeset
1081 (declare-function speedbar-delete-subblock "speedbar" (indent))
63c5fb6b67fc Declare some functions for the byte-compiler.
Juanma Barranquero <lekktu@gmail.com>
parents: 106678
diff changeset
1082 (declare-function speedbar-center-buffer-smartly "speedbar" ())
63c5fb6b67fc Declare some functions for the byte-compiler.
Juanma Barranquero <lekktu@gmail.com>
parents: 106678
diff changeset
1083
106678
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1084 (defun gdb-speedbar-expand-node (text token indent)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1085 "Expand the node the user clicked on.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1086 TEXT is the text of the button we clicked on, a + or - item.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1087 TOKEN is data related to this node.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1088 INDENT is the current indentation depth."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1089 (if (and gud-comint-buffer (buffer-name gud-comint-buffer))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1090 (progn
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1091 (cond ((string-match "+" text) ;expand this node
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1092 (let* ((var (assoc token gdb-var-list))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1093 (expr (nth 1 var)) (children (nth 2 var)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1094 (if (or (<= (string-to-number children) gdb-max-children)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1095 (y-or-n-p
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1096 (format
106697
ac408704629c lisp/*: Fix typos in docstrings and messages.
Juanma Barranquero <lekktu@gmail.com>
parents: 106680
diff changeset
1097 "%s has %s children. Continue? " expr children)))
106678
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1098 (if (and (eq (buffer-local-value
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1099 'gud-minor-mode gud-comint-buffer) 'gdba)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1100 (string-equal gdb-version "pre-6.4"))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1101 (gdb-var-list-children token)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1102 (gdb-var-list-children-1 token)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1103 ((string-match "-" text) ;contract this node
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1104 (dolist (var gdb-var-list)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1105 (if (string-match (concat token "\\.") (car var))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1106 (setq gdb-var-list (delq var gdb-var-list))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1107 (gdb-var-delete-children token)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1108 (speedbar-change-expand-button-char ?+)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1109 (speedbar-delete-subblock indent))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1110 (t (error "Ooops... not sure what to do")))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1111 (speedbar-center-buffer-smartly))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1112 (message-box "GUD session has been killed")))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1113
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1114 (defun gdb-get-target-string ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1115 (with-current-buffer gud-comint-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1116 gud-target-name))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1117
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1118
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1119 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1120 ;; gdb buffers.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1121 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1122 ;; Each buffer has a TYPE -- a symbol that identifies the function
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1123 ;; of that particular buffer.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1124 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1125 ;; The usual gdb interaction buffer is given the type `gdba' and
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1126 ;; is constructed specially.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1127 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1128 ;; Others are constructed by gdb-get-buffer-create and
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1129 ;; named according to the rules set forth in the gdb-buffer-rules-assoc
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1130
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1131 (defvar gdb-buffer-rules-assoc '())
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1132
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1133 (defun gdb-get-buffer (key)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1134 "Return the gdb buffer tagged with type KEY.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1135 The key should be one of the cars in `gdb-buffer-rules-assoc'."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1136 (save-excursion
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1137 (gdb-look-for-tagged-buffer key (buffer-list))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1138
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1139 (defun gdb-get-buffer-create (key)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1140 "Create a new gdb buffer of the type specified by KEY.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1141 The key should be one of the cars in `gdb-buffer-rules-assoc'."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1142 (or (gdb-get-buffer key)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1143 (let* ((rules (assoc key gdb-buffer-rules-assoc))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1144 (name (funcall (gdb-rules-name-maker rules)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1145 (new (get-buffer-create name)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1146 (with-current-buffer new
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1147 (let ((trigger))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1148 (if (cdr (cdr rules))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1149 (setq trigger (funcall (car (cdr (cdr rules))))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1150 (setq gdb-buffer-type key)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1151 (set (make-local-variable 'gud-minor-mode)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1152 (buffer-local-value 'gud-minor-mode gud-comint-buffer))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1153 (set (make-local-variable 'tool-bar-map) gud-tool-bar-map)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1154 (if trigger (funcall trigger)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1155 new))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1156
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1157 (defun gdb-rules-name-maker (rules) (car (cdr rules)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1158
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1159 (defun gdb-look-for-tagged-buffer (key bufs)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1160 (let ((retval nil))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1161 (while (and (not retval) bufs)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1162 (set-buffer (car bufs))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1163 (if (eq gdb-buffer-type key)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1164 (setq retval (car bufs)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1165 (setq bufs (cdr bufs)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1166 retval))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1167
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1168 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1169 ;; This assoc maps buffer type symbols to rules. Each rule is a list of
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1170 ;; at least one and possible more functions. The functions have these
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1171 ;; roles in defining a buffer type:
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1172 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1173 ;; NAME - Return a name for this buffer type.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1174 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1175 ;; The remaining function(s) are optional:
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1176 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1177 ;; MODE - called in a new buffer with no arguments, should establish
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1178 ;; the proper mode for the buffer.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1179 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1180
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1181 (defun gdb-set-buffer-rules (buffer-type &rest rules)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1182 (let ((binding (assoc buffer-type gdb-buffer-rules-assoc)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1183 (if binding
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1184 (setcdr binding rules)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1185 (push (cons buffer-type rules)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1186 gdb-buffer-rules-assoc))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1187
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1188 ;; GUD buffers are an exception to the rules
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1189 (gdb-set-buffer-rules 'gdba 'error)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1190
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1191 ;; Partial-output buffer : This accumulates output from a command executed on
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1192 ;; behalf of emacs (rather than the user).
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1193 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1194 (gdb-set-buffer-rules 'gdb-partial-output-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1195 'gdb-partial-output-name)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1196
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1197 (defun gdb-partial-output-name ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1198 (concat " *partial-output-"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1199 (gdb-get-target-string)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1200 "*"))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1201
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1202
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1203 (gdb-set-buffer-rules 'gdb-inferior-io
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1204 'gdb-inferior-io-name
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1205 'gdb-inferior-io-mode)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1206
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1207 (defun gdb-inferior-io-name ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1208 (concat "*input/output of "
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1209 (gdb-get-target-string)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1210 "*"))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1211
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1212 (defun gdb-display-separate-io-buffer ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1213 "Display IO of debugged program in a separate window."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1214 (interactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1215 (if gdb-use-separate-io-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1216 (gdb-display-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1217 (gdb-get-buffer-create 'gdb-inferior-io) t)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1218
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1219 (defconst gdb-frame-parameters
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1220 '((height . 14) (width . 80)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1221 (unsplittable . t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1222 (tool-bar-lines . nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1223 (menu-bar-lines . nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1224 (minibuffer . nil)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1225
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1226 (defun gdb-frame-separate-io-buffer ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1227 "Display IO of debugged program in a new frame."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1228 (interactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1229 (if gdb-use-separate-io-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1230 (let ((special-display-regexps (append special-display-regexps '(".*")))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1231 (special-display-frame-alist gdb-frame-parameters))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1232 (display-buffer (gdb-get-buffer-create 'gdb-inferior-io)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1233
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1234 (defvar gdb-inferior-io-mode-map
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1235 (let ((map (make-sparse-keymap)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1236 (define-key map "\C-c\C-c" 'gdb-separate-io-interrupt)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1237 (define-key map "\C-c\C-z" 'gdb-separate-io-stop)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1238 (define-key map "\C-c\C-\\" 'gdb-separate-io-quit)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1239 (define-key map "\C-c\C-d" 'gdb-separate-io-eof)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1240 (define-key map "\C-d" 'gdb-separate-io-eof)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1241 map))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1242
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1243 (define-derived-mode gdb-inferior-io-mode comint-mode "Inferior I/O"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1244 "Major mode for gdb inferior-io."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1245 :syntax-table nil :abbrev-table nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1246 ;; We want to use comint because it has various nifty and familiar
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1247 ;; features. We don't need a process, but comint wants one, so create
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1248 ;; a dummy one.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1249 (make-comint-in-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1250 (substring (buffer-name) 1 (- (length (buffer-name)) 1))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1251 (current-buffer) "hexl")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1252 (setq comint-input-sender 'gdb-inferior-io-sender))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1253
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1254 (defun gdb-inferior-io-sender (proc string)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1255 ;; PROC is the pseudo-process created to satisfy comint.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1256 (with-current-buffer (process-buffer proc)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1257 (setq proc (get-buffer-process gud-comint-buffer))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1258 (process-send-string proc string)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1259 (process-send-string proc "\n")))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1260
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1261 (defun gdb-separate-io-interrupt ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1262 "Interrupt the program being debugged."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1263 (interactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1264 (interrupt-process
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1265 (get-buffer-process gud-comint-buffer) comint-ptyp))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1266
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1267 (defun gdb-separate-io-quit ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1268 "Send quit signal to the program being debugged."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1269 (interactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1270 (quit-process
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1271 (get-buffer-process gud-comint-buffer) comint-ptyp))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1272
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1273 (defun gdb-separate-io-stop ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1274 "Stop the program being debugged."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1275 (interactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1276 (stop-process
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1277 (get-buffer-process gud-comint-buffer) comint-ptyp))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1278
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1279 (defun gdb-separate-io-eof ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1280 "Send end-of-file to the program being debugged."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1281 (interactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1282 (process-send-eof
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1283 (get-buffer-process gud-comint-buffer)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1284
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1285
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1286 ;; gdb communications
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1287 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1288
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1289 ;; INPUT: things sent to gdb
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1290 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1291 ;; The queues are lists. Each element is either a string (indicating user or
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1292 ;; user-like input) or a list of the form:
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1293 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1294 ;; (INPUT-STRING HANDLER-FN)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1295 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1296 ;; The handler function will be called from the partial-output buffer when the
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1297 ;; command completes. This is the way to write commands which invoke gdb
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1298 ;; commands autonomously.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1299 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1300 ;; These lists are consumed tail first.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1301 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1302
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1303 (defun gdb-send (proc string)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1304 "A comint send filter for gdb.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1305 This filter may simply queue input for a later time."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1306 (if gdb-ready
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1307 (progn
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1308 (with-current-buffer gud-comint-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1309 (let ((inhibit-read-only t))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1310 (remove-text-properties (point-min) (point-max) '(face))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1311 (if gud-running
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1312 (progn
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1313 (let ((item (concat string "\n")))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1314 (if gdb-enable-debug (push (cons 'send item) gdb-debug-log))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1315 (process-send-string proc item)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1316 (if (string-match "\\\\\\'" string)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1317 (setq gdb-continuation (concat gdb-continuation string "\n"))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1318 (let ((item (concat
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1319 gdb-continuation string
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1320 (if (not comint-input-sender-no-newline) "\n"))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1321 (gdb-enqueue-input item)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1322 (setq gdb-continuation nil)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1323 (push (concat string "\n") gdb-early-user-input)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1324
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1325 ;; Note: Stuff enqueued here will be sent to the next prompt, even if it
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1326 ;; is a query, or other non-top-level prompt.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1327
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1328 (defun gdb-enqueue-input (item)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1329 (if (not gud-running)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1330 (if gdb-prompting
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1331 (progn
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1332 (gdb-send-item item)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1333 (setq gdb-prompting nil))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1334 (push item gdb-input-queue))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1335
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1336 (defun gdb-dequeue-input ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1337 (let ((queue gdb-input-queue))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1338 (if queue
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1339 (let ((last (car (last queue))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1340 (unless (nbutlast queue) (setq gdb-input-queue '()))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1341 last)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1342 ;; This should be nil here anyway but set it just to make sure.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1343 (setq gdb-pending-triggers nil))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1344
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1345 (defun gdb-send-item (item)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1346 (setq gdb-flush-pending-output nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1347 (if gdb-enable-debug (push (cons 'send-item item) gdb-debug-log))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1348 (setq gdb-current-item item)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1349 (let ((process (get-buffer-process gud-comint-buffer)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1350 (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1351 (if (stringp item)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1352 (progn
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1353 (setq gdb-output-sink 'user)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1354 (process-send-string process item))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1355 (progn
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1356 (gdb-clear-partial-output)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1357 (setq gdb-output-sink 'pre-emacs)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1358 (process-send-string process
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1359 (car item))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1360 ;; case: eq gud-minor-mode 'gdbmi
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1361 (gdb-clear-partial-output)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1362 (setq gdb-output-sink 'emacs)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1363 (process-send-string process (car item)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1364
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1365 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1366 ;; output -- things gdb prints to emacs
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1367 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1368 ;; GDB output is a stream interrupted by annotations.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1369 ;; Annotations can be recognized by their beginning
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1370 ;; with \C-j\C-z\C-z<tag><opt>\C-j
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1371 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1372 ;; The tag is a string obeying symbol syntax.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1373 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1374 ;; The optional part `<opt>' can be either the empty string
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1375 ;; or a space followed by more data relating to the annotation.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1376 ;; For example, the SOURCE annotation is followed by a filename,
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1377 ;; line number and various useless goo. This data must not include
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1378 ;; any newlines.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1379 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1380
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1381 (defcustom gud-gdb-command-name "gdb --annotate=3"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1382 "Default command to execute an executable under the GDB debugger.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1383 The option \"--annotate=3\" must be included in this value if you
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1384 want the GDB Graphical Interface."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1385 :type 'string
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1386 :group 'gud
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1387 :version "22.1")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1388
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1389 (defvar gdb-annotation-rules
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1390 '(("pre-prompt" gdb-pre-prompt)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1391 ("prompt" gdb-prompt)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1392 ("commands" gdb-subprompt)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1393 ("overload-choice" gdb-subprompt)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1394 ("query" gdb-subprompt)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1395 ;; Need this prompt for GDB 6.1
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1396 ("nquery" gdb-subprompt)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1397 ("prompt-for-continue" gdb-subprompt)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1398 ("post-prompt" gdb-post-prompt)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1399 ("source" gdb-source)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1400 ("starting" gdb-starting)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1401 ("exited" gdb-exited)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1402 ("signalled" gdb-signalled)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1403 ("signal" gdb-signal)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1404 ("breakpoint" gdb-stopping)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1405 ("watchpoint" gdb-stopping)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1406 ("frame-begin" gdb-frame-begin)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1407 ("stopped" gdb-stopped)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1408 ("error-begin" gdb-error)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1409 ("error" gdb-error)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1410 ("new-thread" (lambda (ignored)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1411 (gdb-get-buffer-create 'gdb-threads-buffer)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1412 ("thread-changed" gdb-thread-changed))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1413 "An assoc mapping annotation tags to functions which process them.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1414
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1415 (defun gdb-resync()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1416 (setq gdb-flush-pending-output t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1417 (setq gud-running nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1418 (gdb-force-mode-line-update
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1419 (propertize "stopped" 'face font-lock-warning-face))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1420 (setq gdb-output-sink 'user)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1421 (setq gdb-input-queue nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1422 (setq gdb-pending-triggers nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1423 (setq gdb-prompting t))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1424
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1425 (defconst gdb-source-spec-regexp
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1426 "\\(.*\\):\\([0-9]*\\):[0-9]*:[a-z]*:0x0*\\([a-f0-9]*\\)")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1427
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1428 ;; Do not use this except as an annotation handler.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1429 (defun gdb-source (args)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1430 (string-match gdb-source-spec-regexp args)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1431 ;; Extract the frame position from the marker.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1432 (setq gud-last-frame
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1433 (cons
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1434 (match-string 1 args)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1435 (string-to-number (match-string 2 args))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1436 (setq gdb-pc-address (match-string 3 args))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1437 ;; cover for auto-display output which comes *before*
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1438 ;; stopped annotation
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1439 (if (eq gdb-output-sink 'inferior) (setq gdb-output-sink 'user)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1440
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1441 (defun gdb-pre-prompt (ignored)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1442 "An annotation handler for `pre-prompt'.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1443 This terminates the collection of output from a previous command if that
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1444 happens to be in effect."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1445 (setq gdb-error nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1446 (let ((sink gdb-output-sink))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1447 (cond
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1448 ((eq sink 'user) t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1449 ((eq sink 'emacs)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1450 (setq gdb-output-sink 'post-emacs))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1451 (t
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1452 (gdb-resync)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1453 (error "Phase error in gdb-pre-prompt (got %s)" sink)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1454
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1455 (defun gdb-prompt (ignored)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1456 "An annotation handler for `prompt'.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1457 This sends the next command (if any) to gdb."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1458 (when gdb-first-prompt
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1459 (gdb-force-mode-line-update
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1460 (propertize "initializing..." 'face font-lock-variable-name-face))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1461 (gdb-init-1)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1462 (setq gdb-first-prompt nil))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1463 (let ((sink gdb-output-sink))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1464 (cond
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1465 ((eq sink 'user) t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1466 ((eq sink 'post-emacs)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1467 (setq gdb-output-sink 'user)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1468 (let ((handler
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1469 (car (cdr gdb-current-item))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1470 (with-current-buffer (gdb-get-buffer-create 'gdb-partial-output-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1471 (funcall handler))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1472 (t
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1473 (gdb-resync)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1474 (error "Phase error in gdb-prompt (got %s)" sink))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1475 (let ((input (gdb-dequeue-input)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1476 (if input
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1477 (gdb-send-item input)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1478 (progn
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1479 (setq gdb-prompting t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1480 (gud-display-frame)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1481 (setq gdb-early-user-input (nreverse gdb-early-user-input))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1482 (while gdb-early-user-input
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1483 (gdb-enqueue-input (car gdb-early-user-input))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1484 (setq gdb-early-user-input (cdr gdb-early-user-input)))))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1485
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1486 (defun gdb-subprompt (ignored)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1487 "An annotation handler for non-top-level prompts."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1488 (setq gdb-prompting t))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1489
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1490 (defun gdb-starting (ignored)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1491 "An annotation handler for `starting'.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1492 This says that I/O for the subprocess is now the program being debugged,
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1493 not GDB."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1494 (setq gdb-active-process t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1495 (setq gdb-printing t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1496 (let ((sink gdb-output-sink))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1497 (cond
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1498 ((eq sink 'user)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1499 (progn
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1500 (setq gud-running t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1501 (setq gdb-stack-update t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1502 ;; Temporarily set gud-running to nil to force "info stack" onto queue.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1503 (let ((gud-running nil))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1504 (gdb-invalidate-frames)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1505 (unless (or gdb-register-names
106697
ac408704629c lisp/*: Fix typos in docstrings and messages.
Juanma Barranquero <lekktu@gmail.com>
parents: 106680
diff changeset
1506 (string-equal gdb-version "pre-6.4"))
106678
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1507 (gdb-enqueue-input
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1508 (list "server interpreter mi -data-list-register-names\n"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1509 'gdb-get-register-names))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1510 (setq gdb-inferior-status "running")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1511 (setq gdb-signalled nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1512 (gdb-force-mode-line-update
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1513 (propertize gdb-inferior-status 'face font-lock-type-face))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1514 (gdb-remove-text-properties)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1515 (setq gud-old-arrow gud-overlay-arrow-position)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1516 (setq gud-overlay-arrow-position nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1517 (setq gdb-overlay-arrow-position nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1518 (setq gdb-stack-position nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1519 (if gdb-use-separate-io-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1520 (setq gdb-output-sink 'inferior))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1521 (t
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1522 (gdb-resync)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1523 (error "Unexpected `starting' annotation")))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1524
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1525 (defun gdb-signal (ignored)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1526 (setq gdb-inferior-status "signal")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1527 (gdb-force-mode-line-update
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1528 (propertize gdb-inferior-status 'face font-lock-warning-face))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1529 (gdb-stopping ignored))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1530
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1531 (defun gdb-stopping (ignored)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1532 "An annotation handler for `breakpoint' and other annotations.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1533 They say that I/O for the subprocess is now GDB, not the program
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1534 being debugged."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1535 (if gdb-use-separate-io-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1536 (let ((sink gdb-output-sink))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1537 (cond
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1538 ((eq sink 'inferior)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1539 (setq gdb-output-sink 'user))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1540 (t
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1541 (gdb-resync)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1542 (error "Unexpected stopping annotation"))))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1543
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1544 (defun gdb-exited (ignored)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1545 "An annotation handler for `exited' and `signalled'.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1546 They say that I/O for the subprocess is now GDB, not the program
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1547 being debugged and that the program is no longer running. This
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1548 function is used to change the focus of GUD tooltips to #define
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1549 directives."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1550 (setq gdb-active-process nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1551 (setq gud-overlay-arrow-position nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1552 (setq gdb-overlay-arrow-position nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1553 (setq gdb-stack-position nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1554 (setq gud-old-arrow nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1555 (setq gdb-inferior-status "exited")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1556 (gdb-force-mode-line-update
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1557 (propertize gdb-inferior-status 'face font-lock-warning-face))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1558 (gdb-stopping ignored))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1559
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1560 (defun gdb-signalled (ignored)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1561 (setq gdb-signalled t))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1562
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1563 (defun gdb-frame-begin (ignored)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1564 (setq gdb-frame-begin t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1565 (setq gdb-printing nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1566 (let ((sink gdb-output-sink))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1567 (cond
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1568 ((eq sink 'inferior)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1569 (setq gdb-output-sink 'user))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1570 ((eq sink 'user) t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1571 ((eq sink 'emacs) t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1572 (t
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1573 (gdb-resync)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1574 (error "Unexpected frame-begin annotation (%S)" sink)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1575
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1576 (defcustom gdb-same-frame (not focus-follows-mouse)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1577 "Non-nil means pop up GUD buffer in same frame."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1578 :group 'gdb
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1579 :type 'boolean
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1580 :version "22.1")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1581
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1582 (defcustom gdb-find-source-frame nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1583 "Non-nil means try to find a source frame further up stack e.g after signal."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1584 :group 'gdb
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1585 :type 'boolean
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1586 :version "22.1")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1587
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1588 (defun gdb-find-source-frame (arg)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1589 "Toggle looking for a source frame further up call stack.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1590 The code associated with current (innermost) frame may not have
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1591 been compiled with debug information, e.g., C library routine.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1592 With prefix argument ARG, look for a source frame further up
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1593 stack to display in the source buffer if ARG is positive,
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1594 otherwise don't look further up."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1595 (interactive "P")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1596 (setq gdb-find-source-frame
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1597 (if (null arg)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1598 (not gdb-find-source-frame)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1599 (> (prefix-numeric-value arg) 0)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1600 (message (format "Looking for source frame %sabled"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1601 (if gdb-find-source-frame "en" "dis"))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1602
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1603 (defun gdb-stopped (ignored)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1604 "An annotation handler for `stopped'.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1605 It is just like `gdb-stopping', except that if we already set the output
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1606 sink to `user' in `gdb-stopping', that is fine."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1607 (setq gud-running nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1608 (unless (or gud-overlay-arrow-position gud-last-frame)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1609 (if (and gdb-frame-begin gdb-printing)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1610 (setq gud-overlay-arrow-position gud-old-arrow)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1611 ;;Pop up GUD buffer to display current frame when it doesn't have source
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1612 ;;information i.e if not compiled with -g as with libc routines generally.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1613 (if gdb-same-frame
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1614 (gdb-display-gdb-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1615 (gdb-frame-gdb-buffer))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1616 (if gdb-find-source-frame
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1617 ;;Try to find source further up stack e.g after signal.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1618 (setq gdb-look-up-stack
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1619 (if (gdb-get-buffer 'gdb-stack-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1620 'keep
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1621 (progn
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1622 (gdb-get-buffer-create 'gdb-stack-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1623 (gdb-invalidate-frames)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1624 'delete))))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1625 (unless (member gdb-inferior-status '("exited" "signal"))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1626 (setq gdb-active-process t) ;Just for attaching case.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1627 (setq gdb-inferior-status "stopped")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1628 (gdb-force-mode-line-update
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1629 (propertize gdb-inferior-status 'face font-lock-warning-face)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1630 (let ((sink gdb-output-sink))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1631 (cond
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1632 ((eq sink 'inferior)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1633 (setq gdb-output-sink 'user))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1634 ((eq sink 'user) t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1635 (t
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1636 (gdb-resync)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1637 (error "Unexpected stopped annotation"))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1638 (if gdb-signalled (gdb-exited ignored)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1639
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1640 (defun gdb-error (ignored)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1641 (setq gdb-error (not gdb-error)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1642
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1643 (defun gdb-thread-changed (ignored)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1644 (gdb-frames-force-update))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1645
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1646 (defun gdb-post-prompt (ignored)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1647 "An annotation handler for `post-prompt'.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1648 This begins the collection of output from the current command if that
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1649 happens to be appropriate."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1650 ;; Don't add to queue if there outstanding items or gdb-version is not known
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1651 ;; yet.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1652 (unless (or gdb-pending-triggers gdb-first-post-prompt)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1653 (gdb-get-selected-frame)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1654 (gdb-invalidate-frames)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1655 ;; Regenerate breakpoints buffer in case it has been inadvertantly deleted.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1656 (gdb-get-buffer-create 'gdb-breakpoints-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1657 (gdb-invalidate-breakpoints)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1658 ;; Do this through gdb-get-selected-frame -> gdb-frame-handler
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1659 ;; so gdb-pc-address is updated.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1660 ;; (gdb-invalidate-assembler)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1661
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1662 (if (string-equal gdb-version "pre-6.4")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1663 (gdb-invalidate-registers)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1664 (gdb-get-changed-registers)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1665 (gdb-invalidate-registers-1))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1666
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1667 (gdb-invalidate-memory)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1668 (if (string-equal gdb-version "pre-6.4")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1669 (gdb-invalidate-locals)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1670 (gdb-invalidate-locals-1))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1671
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1672 (gdb-invalidate-threads)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1673 (unless (or (null gdb-var-list)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1674 (eq system-type 'darwin)) ;Breaks on Darwin's GDB-5.3.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1675 ;; FIXME: with GDB-6 on Darwin, this might very well work.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1676 ;; Only needed/used with speedbar/watch expressions.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1677 (when (and (boundp 'speedbar-frame) (frame-live-p speedbar-frame))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1678 (if (string-equal gdb-version "pre-6.4")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1679 (gdb-var-update)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1680 (gdb-var-update-1)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1681 (setq gdb-first-post-prompt nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1682 (let ((sink gdb-output-sink))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1683 (cond
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1684 ((eq sink 'user) t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1685 ((eq sink 'pre-emacs)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1686 (setq gdb-output-sink 'emacs))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1687 (t
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1688 (gdb-resync)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1689 (error "Phase error in gdb-post-prompt (got %s)" sink)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1690
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1691 (defconst gdb-buffer-list
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1692 '(gdb-stack-buffer gdb-locals-buffer gdb-registers-buffer gdb-threads-buffer))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1693
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1694 (defun gdb-remove-text-properties ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1695 (dolist (buffertype gdb-buffer-list)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1696 (let ((buffer (gdb-get-buffer buffertype)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1697 (if buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1698 (with-current-buffer buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1699 (let ((inhibit-read-only t))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1700 (remove-text-properties
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1701 (point-min) (point-max) '(mouse-face nil help-echo nil))))))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1702
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1703 ;; GUD displays the selected GDB frame. This might might not be the current
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1704 ;; GDB frame (after up, down etc). If no GDB frame is visible but the last
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1705 ;; visited breakpoint is, use that window.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1706 (defun gdb-display-source-buffer (buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1707 (let* ((last-window (if gud-last-last-frame
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1708 (get-buffer-window
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1709 (gud-find-file (car gud-last-last-frame)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1710 (source-window (or last-window
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1711 (if (and gdb-source-window
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1712 (window-live-p gdb-source-window))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1713 gdb-source-window))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1714 (when source-window
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1715 (setq gdb-source-window source-window)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1716 (set-window-buffer source-window buffer))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1717 source-window))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1718
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1719 ;; Derived from gud-gdb-marker-regexp
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1720 (defvar gdb-fullname-regexp
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1721 (concat "\\(.:?[^" ":" "\n]*\\)" ":" "\\([0-9]*\\)" ":" ".*"))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1722
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1723 (defun gud-gdba-marker-filter (string)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1724 "A gud marker filter for gdb. Handle a burst of output from GDB."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1725 (if gdb-flush-pending-output
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1726 nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1727 (when gdb-enable-debug
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1728 (push (cons 'recv string) gdb-debug-log)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1729 (if (and gdb-debug-log-max
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1730 (> (length gdb-debug-log) gdb-debug-log-max))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1731 (setcdr (nthcdr (1- gdb-debug-log-max) gdb-debug-log) nil)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1732 ;; Recall the left over gud-marker-acc from last time.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1733 (setq gud-marker-acc (concat gud-marker-acc string))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1734 ;; Start accumulating output for the GUD buffer.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1735 (let ((output ""))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1736 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1737 ;; Process all the complete markers in this chunk.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1738 (while (string-match "\n\032\032\\(.*\\)\n" gud-marker-acc)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1739 (let ((annotation (match-string 1 gud-marker-acc))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1740 (before (substring gud-marker-acc 0 (match-beginning 0)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1741 (after (substring gud-marker-acc (match-end 0))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1742 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1743 ;; Parse the tag from the annotation, and maybe its arguments.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1744 (string-match "\\(\\S-*\\) ?\\(.*\\)" annotation)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1745 (let* ((annotation-type (match-string 1 annotation))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1746 (annotation-arguments (match-string 2 annotation))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1747 (annotation-rule (assoc annotation-type
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1748 gdb-annotation-rules)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1749
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1750 ;; Stuff prior to the match is just ordinary output.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1751 ;; It is either concatenated to OUTPUT or directed
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1752 ;; elsewhere.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1753 (setq output (gdb-concat-output output before))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1754
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1755 ;; Take that stuff off the gud-marker-acc.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1756 (setq gud-marker-acc after)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1757
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1758 ;; Call the handler for this annotation.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1759 (if annotation-rule
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1760 (funcall (car (cdr annotation-rule))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1761 annotation-arguments))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1762
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1763 ;; Else the annotation is not recognized. Ignore it silently,
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1764 ;; so that GDB can add new annotations without causing
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1765 ;; us to blow up.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1766 )))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1767
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1768 ;; Does the remaining text end in a partial line?
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1769 ;; If it does, then keep part of the gud-marker-acc until we get more.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1770 (if (string-match "\n\\'\\|\n\032\\'\\|\n\032\032.*\\'"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1771 gud-marker-acc)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1772 (progn
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1773 ;; Everything before the potential marker start can be output.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1774 (setq output
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1775 (gdb-concat-output output
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1776 (substring gud-marker-acc 0
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1777 (match-beginning 0))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1778 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1779 ;; Everything after, we save, to combine with later input.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1780 (setq gud-marker-acc (substring gud-marker-acc
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1781 (match-beginning 0))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1782 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1783 ;; In case we know the gud-marker-acc contains no partial annotations:
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1784 (progn
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1785 (setq output (gdb-concat-output output gud-marker-acc))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1786 (setq gud-marker-acc "")))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1787 output)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1788
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1789 (defun gdb-concat-output (so-far new)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1790 (if gdb-error
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1791 (put-text-property 0 (length new) 'face font-lock-warning-face new))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1792 (let ((sink gdb-output-sink))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1793 (cond
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1794 ((eq sink 'user) (concat so-far new))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1795 ((or (eq sink 'pre-emacs) (eq sink 'post-emacs)) so-far)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1796 ((eq sink 'emacs)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1797 (gdb-append-to-partial-output new)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1798 so-far)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1799 ((eq sink 'inferior)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1800 (gdb-append-to-inferior-io new)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1801 so-far)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1802 (t
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1803 (gdb-resync)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1804 (error "Bogon output sink %S" sink)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1805
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1806 (defun gdb-append-to-partial-output (string)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1807 (with-current-buffer (gdb-get-buffer-create 'gdb-partial-output-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1808 (goto-char (point-max))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1809 (insert string)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1810
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1811 (defun gdb-clear-partial-output ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1812 (with-current-buffer (gdb-get-buffer-create 'gdb-partial-output-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1813 (erase-buffer)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1814
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1815 (defun gdb-append-to-inferior-io (string)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1816 (with-current-buffer (gdb-get-buffer-create 'gdb-inferior-io)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1817 (goto-char (point-max))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1818 (insert-before-markers string))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1819 (if (not (string-equal string ""))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1820 (gdb-display-buffer (gdb-get-buffer-create 'gdb-inferior-io) t)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1821
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1822 (defun gdb-clear-inferior-io ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1823 (with-current-buffer (gdb-get-buffer-create 'gdb-inferior-io)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1824 (erase-buffer)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1825
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1826 (defun gdb-jsonify-buffer (&optional fix-key fix-list)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1827 "Prepare GDB/MI output in current buffer for parsing with `json-read'.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1828
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1829 Field names are wrapped in double quotes and equal signs are
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1830 replaced with semicolons.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1831
106840
5df8e547a422 Fix typos in docstrings.
Juanma Barranquero <lekktu@gmail.com>
parents: 106815
diff changeset
1832 If FIX-KEY is non-nil, strip all \"FIX-KEY=\" occurrences from
106697
ac408704629c lisp/*: Fix typos in docstrings and messages.
Juanma Barranquero <lekktu@gmail.com>
parents: 106680
diff changeset
1833 partial output. This is used to get rid of useless keys in lists
ac408704629c lisp/*: Fix typos in docstrings and messages.
Juanma Barranquero <lekktu@gmail.com>
parents: 106680
diff changeset
1834 in MI messages, e.g.: [key=.., key=..]. -stack-list-frames and
106678
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1835 -break-info are examples of MI commands which issue such
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1836 responses.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1837
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1838 If FIX-LIST is non-nil, \"FIX-LIST={..}\" is replaced with
106697
ac408704629c lisp/*: Fix typos in docstrings and messages.
Juanma Barranquero <lekktu@gmail.com>
parents: 106680
diff changeset
1839 \"FIX-LIST=[..]\" prior to parsing. This is used to fix broken
106678
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1840 -break-info output when it contains breakpoint script field
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1841 incompatible with GDB/MI output syntax."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1842 (save-excursion
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1843 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1844 ;; Sometimes missing symbol information precedes "^done" record.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1845 (re-search-forward "[[:ascii:]]*?\\^done," nil t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1846 (replace-match "")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1847 (re-search-forward "(gdb) \n" nil t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1848 (replace-match "")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1849 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1850 (when fix-key
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1851 (save-excursion
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1852 (while (re-search-forward (concat "[\\[,]\\(" fix-key "=\\)") nil t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1853 (replace-match "" nil nil nil 1))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1854 (when fix-list
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1855 (save-excursion
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1856 ;; Find positions of braces which enclose broken list
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1857 (while (re-search-forward (concat fix-list "={\"") nil t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1858 (let ((p1 (goto-char (- (point) 2)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1859 (p2 (progn (forward-sexp)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1860 (1- (point)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1861 ;; Replace braces with brackets
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1862 (save-excursion
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1863 (goto-char p1)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1864 (delete-char 1)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1865 (insert "[")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1866 (goto-char p2)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1867 (delete-char 1)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1868 (insert "]"))))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1869 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1870 (insert "{")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1871 (while (re-search-forward
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1872 "\\([[:alnum:]-_]+\\)=\\({\\|\\[\\|\"\"\\|\".*?[^\\]\"\\)" nil t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1873 (replace-match "\"\\1\":\\2" nil nil))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1874 (goto-char (point-max))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1875 (insert "}")))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1876
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1877 (defun gdb-json-read-buffer (&optional fix-key fix-list)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1878 "Prepare and parse GDB/MI output in current buffer with `json-read'.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1879
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1880 FIX-KEY and FIX-LIST work as in `gdb-jsonify-buffer'."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1881 (gdb-jsonify-buffer fix-key fix-list)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1882 (save-excursion
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1883 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1884 (let ((json-array-type 'list))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1885 (json-read))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1886
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1887 (defun gdb-json-partial-output (&optional fix-key fix-list)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1888 "Prepare and parse gdb-partial-output-buffer with `json-read'.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1889
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1890 FIX-KEY and FIX-KEY work as in `gdb-jsonify-buffer'."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1891 (with-current-buffer (gdb-get-buffer-create 'gdb-partial-output-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1892 (gdb-json-read-buffer fix-key fix-list)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1893
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1894
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1895 ;; One trick is to have a command who's output is always available in a buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1896 ;; of it's own, and is always up to date. We build several buffers of this
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1897 ;; type.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1898 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1899 ;; There are two aspects to this: gdb has to tell us when the output for that
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1900 ;; command might have changed, and we have to be able to run the command
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1901 ;; behind the user's back.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1902 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1903 ;; The output phasing associated with the variable gdb-output-sink
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1904 ;; help us to run commands behind the user's back.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1905 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1906 ;; Below is the code for specificly managing buffers of output from one
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1907 ;; command.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1908 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1909
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1910 ;; The trigger function is suitable for use in the assoc GDB-ANNOTATION-RULES
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1911 ;; It adds an input for the command we are tracking. It should be the
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1912 ;; annotation rule binding of whatever gdb sends to tell us this command
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1913 ;; might have changed it's output.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1914 ;;
106697
ac408704629c lisp/*: Fix typos in docstrings and messages.
Juanma Barranquero <lekktu@gmail.com>
parents: 106680
diff changeset
1915 ;; NAME is the function name. DEMAND-PREDICATE tests if output is really needed.
106678
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1916 ;; GDB-COMMAND is a string of such. OUTPUT-HANDLER is the function bound to the
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1917 ;; input in the input queue (see comment about ``gdb communications'' above).
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1918
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1919 (defmacro def-gdb-auto-update-trigger (name demand-predicate gdb-command
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1920 output-handler)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1921 `(defun ,name (&optional ignored)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1922 (if (and ,demand-predicate
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1923 (not (member ',name
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1924 gdb-pending-triggers)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1925 (progn
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1926 (gdb-enqueue-input
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1927 (list ,gdb-command ',output-handler))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1928 (push ',name gdb-pending-triggers)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1929
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1930 (defmacro def-gdb-auto-update-handler (name trigger buf-key custom-defun)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1931 `(defun ,name ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1932 (setq gdb-pending-triggers
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1933 (delq ',trigger
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1934 gdb-pending-triggers))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1935 (let ((buf (gdb-get-buffer ',buf-key)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1936 (and buf
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1937 (with-current-buffer buf
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1938 (let* ((window (get-buffer-window buf 0))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1939 (start (window-start window))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1940 (p (if window (window-point window) (point)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1941 (buffer-read-only nil))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1942 (erase-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1943 (insert-buffer-substring (gdb-get-buffer-create
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1944 'gdb-partial-output-buffer))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1945 (if window
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1946 (progn
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1947 (set-window-start window start)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1948 (set-window-point window p))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1949 (goto-char p))))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1950 ;; put customisation here
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1951 (,custom-defun)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1952
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1953 (defmacro def-gdb-auto-updated-buffer (buffer-key
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1954 trigger-name gdb-command
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1955 output-handler-name custom-defun)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1956 `(progn
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1957 (def-gdb-auto-update-trigger ,trigger-name
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1958 ;; The demand predicate:
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1959 (gdb-get-buffer ',buffer-key)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1960 ,gdb-command
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1961 ,output-handler-name)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1962 (def-gdb-auto-update-handler ,output-handler-name
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1963 ,trigger-name ,buffer-key ,custom-defun)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1964
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1965
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1966 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1967 ;; Breakpoint buffer : This displays the output of `info breakpoints'.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1968 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1969 (gdb-set-buffer-rules 'gdb-breakpoints-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1970 'gdb-breakpoints-buffer-name
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1971 'gdb-breakpoints-mode)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1972
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1973 (def-gdb-auto-updated-buffer gdb-breakpoints-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1974 ;; This defines the auto update rule for buffers of type
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1975 ;; `gdb-breakpoints-buffer'.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1976 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1977 ;; It defines a function to serve as the annotation handler that
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1978 ;; handles the `foo-invalidated' message. That function is called:
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1979 gdb-invalidate-breakpoints
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1980 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1981 ;; To update the buffer, this command is sent to gdb.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1982 "server info breakpoints\n"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1983 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1984 ;; This also defines a function to be the handler for the output
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1985 ;; from the command above. That function will copy the output into
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1986 ;; the appropriately typed buffer. That function will be called:
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1987 gdb-info-breakpoints-handler
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1988 ;; buffer specific functions
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1989 gdb-info-breakpoints-custom)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1990
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1991 (defconst breakpoint-xpm-data
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1992 "/* XPM */
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1993 static char *magick[] = {
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1994 /* columns rows colors chars-per-pixel */
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1995 \"10 10 2 1\",
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1996 \" c red\",
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1997 \"+ c None\",
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1998 /* pixels */
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1999 \"+++ +++\",
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2000 \"++ ++\",
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2001 \"+ +\",
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2002 \" \",
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2003 \" \",
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2004 \" \",
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2005 \" \",
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2006 \"+ +\",
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2007 \"++ ++\",
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2008 \"+++ +++\",
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2009 };"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2010 "XPM data used for breakpoint icon.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2011
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2012 (defconst breakpoint-enabled-pbm-data
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2013 "P1
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2014 10 10\",
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2015 0 0 0 0 1 1 1 1 0 0 0 0
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2016 0 0 0 1 1 1 1 1 1 0 0 0
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2017 0 0 1 1 1 1 1 1 1 1 0 0
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2018 0 1 1 1 1 1 1 1 1 1 1 0
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2019 0 1 1 1 1 1 1 1 1 1 1 0
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2020 0 1 1 1 1 1 1 1 1 1 1 0
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2021 0 1 1 1 1 1 1 1 1 1 1 0
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2022 0 0 1 1 1 1 1 1 1 1 0 0
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2023 0 0 0 1 1 1 1 1 1 0 0 0
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2024 0 0 0 0 1 1 1 1 0 0 0 0"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2025 "PBM data used for enabled breakpoint icon.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2026
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2027 (defconst breakpoint-disabled-pbm-data
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2028 "P1
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2029 10 10\",
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2030 0 0 1 0 1 0 1 0 0 0
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2031 0 1 0 1 0 1 0 1 0 0
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2032 1 0 1 0 1 0 1 0 1 0
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2033 0 1 0 1 0 1 0 1 0 1
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2034 1 0 1 0 1 0 1 0 1 0
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2035 0 1 0 1 0 1 0 1 0 1
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2036 1 0 1 0 1 0 1 0 1 0
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2037 0 1 0 1 0 1 0 1 0 1
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2038 0 0 1 0 1 0 1 0 1 0
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2039 0 0 0 1 0 1 0 1 0 0"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2040 "PBM data used for disabled breakpoint icon.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2041
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2042 (defvar breakpoint-enabled-icon nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2043 "Icon for enabled breakpoint in display margin.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2044
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2045 (defvar breakpoint-disabled-icon nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2046 "Icon for disabled breakpoint in display margin.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2047
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2048 (declare-function define-fringe-bitmap "fringe.c"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2049 (bitmap bits &optional height width align))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2050
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2051 (and (display-images-p)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2052 ;; Bitmap for breakpoint in fringe
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2053 (define-fringe-bitmap 'breakpoint
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2054 "\x3c\x7e\xff\xff\xff\xff\x7e\x3c")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2055 ;; Bitmap for gud-overlay-arrow in fringe
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2056 (define-fringe-bitmap 'hollow-right-triangle
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2057 "\xe0\x90\x88\x84\x84\x88\x90\xe0"))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2058
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2059 (defface breakpoint-enabled
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2060 '((t
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2061 :foreground "red1"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2062 :weight bold))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2063 "Face for enabled breakpoint icon in fringe."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2064 :group 'gdb)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2065
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2066 (defface breakpoint-disabled
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2067 '((((class color) (min-colors 88)) :foreground "grey70")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2068 ;; Ensure that on low-color displays that we end up something visible.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2069 (((class color) (min-colors 8) (background light))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2070 :foreground "black")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2071 (((class color) (min-colors 8) (background dark))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2072 :foreground "white")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2073 (((type tty) (class mono))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2074 :inverse-video t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2075 (t :background "gray"))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2076 "Face for disabled breakpoint icon in fringe."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2077 :group 'gdb)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2078
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2079 (defconst gdb-breakpoint-regexp
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2080 "\\(?:\\([0-9]+\\).*?\\(?:point\\|catch\\s-+\\S-+\\)\\s-+\\S-+\\|\\([0-9]+\\.[0-9]+\\)\\)\\s-+\\(.\\)\\s-+")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2081
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2082 ;; Put breakpoint icons in relevant margins (even those set in the GUD buffer).
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2083 (defun gdb-info-breakpoints-custom ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2084 (let ((flag) (bptno))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2085 ;; Remove all breakpoint-icons in source buffers but not assembler buffer.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2086 (dolist (buffer (buffer-list))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2087 (with-current-buffer buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2088 (if (and (memq gud-minor-mode '(gdba gdbmi))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2089 (not (string-match "\\` ?\\*.+\\*\\'" (buffer-name))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2090 (gdb-remove-breakpoint-icons (point-min) (point-max)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2091 (with-current-buffer (gdb-get-buffer 'gdb-breakpoints-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2092 (save-excursion
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2093 (let ((buffer-read-only nil))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2094 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2095 (while (< (point) (- (point-max) 1))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2096 (forward-line 1)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2097 (if (looking-at gdb-breakpoint-regexp)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2098 (progn
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2099 (setq bptno (or (match-string 1) (match-string 2)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2100 (setq flag (char-after (match-beginning 3)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2101 (if (match-string 1)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2102 (setq gdb-parent-bptno-enabled (eq flag ?y)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2103 (add-text-properties
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2104 (match-beginning 3) (match-end 3)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2105 (if (eq flag ?y)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2106 '(face font-lock-warning-face)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2107 '(face font-lock-type-face)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2108 (let ((bl (point))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2109 (el (line-end-position)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2110 (when (re-search-forward " in \\(.*\\) at" el t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2111 (add-text-properties
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2112 (match-beginning 1) (match-end 1)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2113 '(face font-lock-function-name-face)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2114 (if (re-search-forward
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2115 ".*\\s-+\\(\\S-+\\):\\([0-9]+\\)$" el t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2116 (let ((line (match-string 2))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2117 (file (match-string 1)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2118 (add-text-properties bl el
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2119 '(mouse-face highlight
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2120 help-echo "mouse-2, RET: visit breakpoint"))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2121 (unless (file-exists-p file)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2122 (setq file (cdr (assoc bptno gdb-location-alist))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2123 (if (and file
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2124 (not (string-equal file "File not found")))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2125 (with-current-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2126 (find-file-noselect file 'nowarn)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2127 (gdb-init-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2128 ;; Only want one breakpoint icon at each
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2129 ;; location.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2130 (save-excursion
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2131 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2132 (forward-line (1- (string-to-number line)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2133 (gdb-put-breakpoint-icon (eq flag ?y) bptno)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2134 (gdb-enqueue-input
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2135 (list
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2136 (concat gdb-server-prefix "list "
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2137 (match-string-no-properties 1) ":1\n")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2138 'ignore))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2139 (gdb-enqueue-input
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2140 (list (concat gdb-server-prefix "info source\n")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2141 `(lambda () (gdb-get-location
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2142 ,bptno ,line ,flag))))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2143 (if (re-search-forward
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2144 "<\\(\\(\\sw\\|[_.]\\)+\\)\\(\\+[0-9]+\\)?>"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2145 el t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2146 (add-text-properties
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2147 (match-beginning 1) (match-end 1)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2148 '(face font-lock-function-name-face))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2149 (end-of-line)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2150 (re-search-backward "\\s-\\(\\S-*\\)"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2151 bl t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2152 (add-text-properties
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2153 (match-beginning 1) (match-end 1)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2154 '(face font-lock-variable-name-face)))))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2155 (end-of-line))))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2156 (if (gdb-get-buffer 'gdb-assembler-buffer) (gdb-assembler-custom))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2157
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2158 ;; Breakpoints buffer is always present. Hack to just update
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2159 ;; current frame if there's been no execution.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2160 (if gdb-stack-update
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2161 (setq gdb-stack-update nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2162 (if (gdb-get-buffer 'gdb-stack-buffer) (gdb-info-stack-custom))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2163
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2164 (declare-function gud-remove "gdb-ui" t t) ; gud-def
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2165 (declare-function gud-break "gdb-ui" t t) ; gud-def
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2166 (declare-function fringe-bitmaps-at-pos "fringe.c" (&optional pos window))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2167
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2168 (defun gdb-mouse-set-clear-breakpoint (event)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2169 "Set/clear breakpoint in left fringe/margin at mouse click.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2170 If not in a source or disassembly buffer just set point."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2171 (interactive "e")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2172 (mouse-minibuffer-check event)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2173 (let ((posn (event-end event)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2174 (with-selected-window (posn-window posn)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2175 (if (or (buffer-file-name) (eq major-mode 'gdb-assembler-mode))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2176 (if (numberp (posn-point posn))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2177 (save-excursion
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2178 (goto-char (posn-point posn))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2179 (if (or (posn-object posn)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2180 (eq (car (fringe-bitmaps-at-pos (posn-point posn)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2181 'breakpoint))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2182 (gud-remove nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2183 (gud-break nil)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2184 (posn-set-point posn))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2185
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2186 (defun gdb-mouse-toggle-breakpoint-margin (event)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2187 "Enable/disable breakpoint in left margin with mouse click."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2188 (interactive "e")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2189 (mouse-minibuffer-check event)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2190 (let ((posn (event-end event)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2191 (if (numberp (posn-point posn))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2192 (with-selected-window (posn-window posn)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2193 (save-excursion
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2194 (goto-char (posn-point posn))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2195 (if (posn-object posn)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2196 (let* ((bptno (get-text-property
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2197 0 'gdb-bptno (car (posn-string posn)))))
110926
a98040347deb (gdb-mouse-toggle-breakpoint-margin)
Nick Roberts <nickrob@snap.net.nz>
parents: 107681
diff changeset
2198 (string-match "\\([0-9]+\\)*" bptno)
106678
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2199 (gdb-enqueue-input
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2200 (list
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2201 (concat gdb-server-prefix
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2202 (if (get-text-property
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2203 0 'gdb-enabled (car (posn-string posn)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2204 "disable "
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2205 "enable ")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2206 (match-string 1 bptno) "\n")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2207 'ignore)))))))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2208
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2209 (defun gdb-mouse-toggle-breakpoint-fringe (event)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2210 "Enable/disable breakpoint in left fringe with mouse click."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2211 (interactive "e")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2212 (mouse-minibuffer-check event)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2213 (let* ((posn (event-end event))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2214 (pos (posn-point posn))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2215 obj)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2216 (when (numberp pos)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2217 (with-selected-window (posn-window posn)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2218 (with-current-buffer (window-buffer (selected-window))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2219 (goto-char pos)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2220 (dolist (overlay (overlays-in pos pos))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2221 (when (overlay-get overlay 'put-break)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2222 (setq obj (overlay-get overlay 'before-string))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2223 (when (stringp obj)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2224 (let* ((bptno (get-text-property 0 'gdb-bptno obj)))
110926
a98040347deb (gdb-mouse-toggle-breakpoint-margin)
Nick Roberts <nickrob@snap.net.nz>
parents: 107681
diff changeset
2225 (string-match "\\([0-9]+\\)*" bptno)
106678
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2226 (gdb-enqueue-input
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2227 (list
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2228 (concat gdb-server-prefix
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2229 (if (get-text-property 0 'gdb-enabled obj)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2230 "disable "
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2231 "enable ")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2232 (match-string 1 bptno) "\n")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2233 'ignore)))))))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2234
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2235 (defun gdb-breakpoints-buffer-name ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2236 (with-current-buffer gud-comint-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2237 (concat "*breakpoints of " (gdb-get-target-string) "*")))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2238
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2239 (defun gdb-display-breakpoints-buffer ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2240 "Display status of user-settable breakpoints."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2241 (interactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2242 (gdb-display-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2243 (gdb-get-buffer-create 'gdb-breakpoints-buffer) t))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2244
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2245 (defun gdb-frame-breakpoints-buffer ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2246 "Display status of user-settable breakpoints in a new frame."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2247 (interactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2248 (let ((special-display-regexps (append special-display-regexps '(".*")))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2249 (special-display-frame-alist gdb-frame-parameters))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2250 (display-buffer (gdb-get-buffer-create 'gdb-breakpoints-buffer))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2251
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2252 (defvar gdb-breakpoints-mode-map
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2253 (let ((map (make-sparse-keymap))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2254 (menu (make-sparse-keymap "Breakpoints")))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2255 (define-key menu [quit] '("Quit" . gdb-delete-frame-or-window))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2256 (define-key menu [goto] '("Goto" . gdb-goto-breakpoint))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2257 (define-key menu [delete] '("Delete" . gdb-delete-breakpoint))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2258 (define-key menu [toggle] '("Toggle" . gdb-toggle-breakpoint))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2259 (suppress-keymap map)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2260 (define-key map [menu-bar breakpoints] (cons "Breakpoints" menu))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2261 (define-key map " " 'gdb-toggle-breakpoint)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2262 (define-key map "D" 'gdb-delete-breakpoint)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2263 ;; Don't bind "q" to kill-this-buffer as we need it for breakpoint icons.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2264 (define-key map "q" 'gdb-delete-frame-or-window)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2265 (define-key map "\r" 'gdb-goto-breakpoint)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2266 (define-key map [mouse-2] 'gdb-goto-breakpoint)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2267 (define-key map [follow-link] 'mouse-face)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2268 map))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2269
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2270 (defun gdb-delete-frame-or-window ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2271 "Delete frame if there is only one window. Otherwise delete the window."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2272 (interactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2273 (if (one-window-p) (delete-frame)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2274 (delete-window)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2275
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2276 ;;from make-mode-line-mouse-map
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2277 (defun gdb-make-header-line-mouse-map (mouse function) "\
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2278 Return a keymap with single entry for mouse key MOUSE on the header line.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2279 MOUSE is defined to run function FUNCTION with no args in the buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2280 corresponding to the mode line clicked."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2281 (let ((map (make-sparse-keymap)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2282 (define-key map (vector 'header-line mouse) function)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2283 (define-key map (vector 'header-line 'down-mouse-1) 'ignore)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2284 map))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2285
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2286 (defmacro gdb-propertize-header (name buffer help-echo mouse-face face)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2287 `(propertize ,name
106697
ac408704629c lisp/*: Fix typos in docstrings and messages.
Juanma Barranquero <lekktu@gmail.com>
parents: 106680
diff changeset
2288 'help-echo ,help-echo
106678
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2289 'mouse-face ',mouse-face
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2290 'face ',face
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2291 'local-map
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2292 (gdb-make-header-line-mouse-map
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2293 'mouse-1
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2294 (lambda (event) (interactive "e")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2295 (save-selected-window
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2296 (select-window (posn-window (event-start event)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2297 (set-window-dedicated-p (selected-window) nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2298 (switch-to-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2299 (gdb-get-buffer-create ',buffer))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2300 (setq header-line-format(gdb-set-header ',buffer))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2301 (set-window-dedicated-p (selected-window) t))))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2302
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2303 (defun gdb-set-header (buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2304 (cond ((eq buffer 'gdb-locals-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2305 (list
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2306 (gdb-propertize-header "Locals" gdb-locals-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2307 nil nil mode-line)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2308 " "
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2309 (gdb-propertize-header "Registers" gdb-registers-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2310 "mouse-1: select" mode-line-highlight mode-line-inactive)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2311 ((eq buffer 'gdb-registers-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2312 (list
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2313 (gdb-propertize-header "Locals" gdb-locals-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2314 "mouse-1: select" mode-line-highlight mode-line-inactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2315 " "
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2316 (gdb-propertize-header "Registers" gdb-registers-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2317 nil nil mode-line)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2318 ((eq buffer 'gdb-breakpoints-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2319 (list
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2320 (gdb-propertize-header "Breakpoints" gdb-breakpoints-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2321 nil nil mode-line)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2322 " "
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2323 (gdb-propertize-header "Threads" gdb-threads-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2324 "mouse-1: select" mode-line-highlight mode-line-inactive)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2325 ((eq buffer 'gdb-threads-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2326 (list
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2327 (gdb-propertize-header "Breakpoints" gdb-breakpoints-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2328 "mouse-1: select" mode-line-highlight mode-line-inactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2329 " "
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2330 (gdb-propertize-header "Threads" gdb-threads-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2331 nil nil mode-line)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2332
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2333 (defvar gdb-breakpoints-header
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2334 (list
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2335 (gdb-propertize-header "Breakpoints" gdb-breakpoints-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2336 nil nil mode-line)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2337 " "
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2338 (gdb-propertize-header "Threads" gdb-threads-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2339 "mouse-1: select" mode-line-highlight mode-line-inactive)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2340
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2341 (defun gdb-breakpoints-mode ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2342 "Major mode for gdb breakpoints.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2343
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2344 \\{gdb-breakpoints-mode-map}"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2345 (kill-all-local-variables)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2346 (setq major-mode 'gdb-breakpoints-mode)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2347 (setq mode-name "Breakpoints")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2348 (use-local-map gdb-breakpoints-mode-map)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2349 (setq buffer-read-only t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2350 (buffer-disable-undo)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2351 (setq header-line-format gdb-breakpoints-header)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2352 (run-mode-hooks 'gdb-breakpoints-mode-hook)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2353 (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2354 'gdb-invalidate-breakpoints
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2355 'gdbmi-invalidate-breakpoints))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2356
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2357 (defun gdb-toggle-breakpoint ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2358 "Enable/disable breakpoint at current line."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2359 (interactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2360 (save-excursion
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2361 (beginning-of-line 1)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2362 (if (looking-at gdb-breakpoint-regexp)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2363 (gdb-enqueue-input
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2364 (list
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2365 (concat gdb-server-prefix
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2366 (if (eq ?y (char-after (match-beginning 3)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2367 "disable "
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2368 "enable ")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2369 (or (match-string 1) (match-string 2)) "\n") 'ignore))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2370 (error "Not recognized as break/watchpoint line"))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2371
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2372 (defun gdb-delete-breakpoint ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2373 "Delete the breakpoint at current line."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2374 (interactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2375 (save-excursion
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2376 (beginning-of-line 1)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2377 (if (looking-at gdb-breakpoint-regexp)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2378 (if (match-string 1)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2379 (gdb-enqueue-input
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2380 (list
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2381 (concat gdb-server-prefix "delete " (match-string 1) "\n")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2382 'ignore))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2383 (message-box "This breakpoint cannot be deleted on its own."))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2384 (error "Not recognized as break/watchpoint line"))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2385
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2386 (defun gdb-goto-breakpoint (&optional event)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2387 "Display the breakpoint location specified at current line."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2388 (interactive (list last-input-event))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2389 (if event (posn-set-point (event-end event)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2390 (save-excursion
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2391 (beginning-of-line 1)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2392 (if (looking-at "\\([0-9]+\\.?[0-9]*\\) .*\\s-+\\(\\S-+\\):\\([0-9]+\\)$")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2393 (let ((bptno (match-string 1))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2394 (file (match-string 2))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2395 (line (match-string 3)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2396 (save-selected-window
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2397 (let* ((buffer (find-file-noselect
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2398 (if (file-exists-p file) file
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2399 (cdr (assoc bptno gdb-location-alist)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2400 (window (or (gdb-display-source-buffer buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2401 (display-buffer buffer))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2402 (setq gdb-source-window window)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2403 (with-current-buffer buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2404 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2405 (forward-line (1- (string-to-number line)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2406 (set-window-point window (point))))))
106697
ac408704629c lisp/*: Fix typos in docstrings and messages.
Juanma Barranquero <lekktu@gmail.com>
parents: 106680
diff changeset
2407 (error "No location specified"))))
106678
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2408
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2409
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2410 ;; Frames buffer. This displays a perpetually correct backtrace
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2411 ;; (from the command `where').
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2412 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2413 ;; Alas, if your stack is deep, it is costly.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2414 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2415 (defcustom gdb-max-frames 40
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2416 "Maximum number of frames displayed in call stack."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2417 :type 'integer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2418 :group 'gdb
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2419 :version "22.1")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2420
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2421 (gdb-set-buffer-rules 'gdb-stack-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2422 'gdb-stack-buffer-name
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2423 'gdb-frames-mode)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2424
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2425 (def-gdb-auto-updated-buffer gdb-stack-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2426 gdb-invalidate-frames
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2427 (concat "server info stack " (number-to-string gdb-max-frames) "\n")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2428 gdb-info-stack-handler
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2429 gdb-info-stack-custom)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2430
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2431 ;; This may be more important for embedded targets where unwinding the
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2432 ;; stack may take a long time.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2433 (defadvice gdb-invalidate-frames (around gdb-invalidate-frames-advice
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2434 (&optional ignored) activate compile)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2435 "Only queue \"info stack\" if execution has occurred."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2436 (if gdb-stack-update ad-do-it))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2437
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2438 (defun gdb-info-stack-custom ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2439 (with-current-buffer (gdb-get-buffer 'gdb-stack-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2440 (let (move-to)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2441 (save-excursion
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2442 (unless (eq gdb-look-up-stack 'delete)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2443 (let ((buffer-read-only nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2444 bl el)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2445 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2446 (while (< (point) (point-max))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2447 (setq bl (line-beginning-position)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2448 el (line-end-position))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2449 (when (looking-at "#")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2450 (add-text-properties bl el
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2451 '(mouse-face highlight
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2452 help-echo "mouse-2, RET: Select frame")))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2453 (goto-char bl)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2454 (when (looking-at "^#\\([0-9]+\\)")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2455 (when (string-equal (match-string 1) gdb-frame-number)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2456 (if (gud-tool-bar-item-visible-no-fringe)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2457 (progn
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2458 (put-text-property bl (+ bl 4)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2459 'face '(:inverse-video t))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2460 (setq move-to bl))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2461 (or gdb-stack-position
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2462 (setq gdb-stack-position (make-marker)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2463 (set-marker gdb-stack-position (point))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2464 (setq move-to gdb-stack-position)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2465 (when (re-search-forward "\\([^ ]+\\) (" el t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2466 (put-text-property (match-beginning 1) (match-end 1)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2467 'face font-lock-function-name-face)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2468 (setq bl (match-end 0))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2469 (while (re-search-forward "<\\([^>]+\\)>" el t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2470 (put-text-property (match-beginning 1) (match-end 1)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2471 'face font-lock-function-name-face))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2472 (goto-char bl)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2473 (while (re-search-forward "\\(\\(\\sw\\|[_.]\\)+\\)=" el t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2474 (put-text-property (match-beginning 1) (match-end 1)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2475 'face font-lock-variable-name-face))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2476 (forward-line 1))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2477 (forward-line -1)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2478 (when (looking-at "(More stack frames follow...)")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2479 (add-text-properties
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2480 (match-beginning 0) (match-end 0)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2481 '(mouse-face highlight
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2482 gdb-max-frames t
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2483 help-echo
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2484 "mouse-2, RET: customize gdb-max-frames to see more frames"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2485 )))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2486 (when gdb-look-up-stack
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2487 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2488 (when (re-search-forward "\\(\\S-+?\\):\\([0-9]+\\)" nil t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2489 (let ((start (line-beginning-position))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2490 (file (match-string 1))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2491 (line (match-string 2)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2492 (re-search-backward "^#*\\([0-9]+\\)" start t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2493 (gdb-enqueue-input
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2494 (list (concat gdb-server-prefix "frame "
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2495 (match-string 1) "\n") 'gdb-set-hollow))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2496 (gdb-enqueue-input
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2497 (list (concat gdb-server-prefix "frame 0\n") 'ignore))))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2498 (when move-to
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2499 (let ((window (get-buffer-window (current-buffer) 0)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2500 (when window
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2501 (with-selected-window window
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2502 (goto-char move-to)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2503 (unless (pos-visible-in-window-p)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2504 (recenter '(center)))))))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2505 (if (eq gdb-look-up-stack 'delete)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2506 (kill-buffer (gdb-get-buffer 'gdb-stack-buffer)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2507 (setq gdb-look-up-stack nil))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2508
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2509 (defun gdb-set-hollow ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2510 (if gud-last-last-frame
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2511 (with-current-buffer (gud-find-file (car gud-last-last-frame))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2512 (setq fringe-indicator-alist
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2513 '((overlay-arrow . hollow-right-triangle))))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2514
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2515 (defun gdb-stack-buffer-name ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2516 (with-current-buffer gud-comint-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2517 (concat "*stack frames of " (gdb-get-target-string) "*")))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2518
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2519 (defun gdb-display-stack-buffer ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2520 "Display backtrace of current stack."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2521 (interactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2522 (gdb-display-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2523 (gdb-get-buffer-create 'gdb-stack-buffer) t))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2524
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2525 (defun gdb-frame-stack-buffer ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2526 "Display backtrace of current stack in a new frame."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2527 (interactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2528 (let ((special-display-regexps (append special-display-regexps '(".*")))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2529 (special-display-frame-alist gdb-frame-parameters))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2530 (display-buffer (gdb-get-buffer-create 'gdb-stack-buffer))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2531
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2532 (defvar gdb-frames-mode-map
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2533 (let ((map (make-sparse-keymap)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2534 (suppress-keymap map)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2535 (define-key map "q" 'kill-this-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2536 (define-key map "\r" 'gdb-frames-select)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2537 (define-key map "F" 'gdb-frames-force-update)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2538 (define-key map [mouse-2] 'gdb-frames-select)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2539 (define-key map [follow-link] 'mouse-face)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2540 map))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2541
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2542 (declare-function gdbmi-invalidate-frames "ext:gdb-mi" nil t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2543
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2544 (defun gdb-frames-force-update ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2545 "Force update of call stack.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2546 Use when the displayed call stack gets out of sync with the
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2547 actual one, e.g after using the Gdb command \"return\" or setting
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2548 $pc directly from the GUD buffer. This command isn't normally needed."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2549 (interactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2550 (setq gdb-stack-update t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2551 (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2552 (gdb-invalidate-frames)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2553 (gdbmi-invalidate-frames)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2554
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2555 (defun gdb-frames-mode ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2556 "Major mode for gdb call stack.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2557
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2558 \\{gdb-frames-mode-map}"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2559 (kill-all-local-variables)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2560 (setq major-mode 'gdb-frames-mode)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2561 (setq mode-name "Frames")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2562 (setq gdb-stack-position nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2563 (add-to-list 'overlay-arrow-variable-list 'gdb-stack-position)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2564 (setq truncate-lines t) ;; Make it easier to see overlay arrow.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2565 (setq buffer-read-only t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2566 (buffer-disable-undo)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2567 (gdb-thread-identification)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2568 (use-local-map gdb-frames-mode-map)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2569 (run-mode-hooks 'gdb-frames-mode-hook)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2570 (setq gdb-stack-update t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2571 (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2572 'gdb-invalidate-frames
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2573 'gdbmi-invalidate-frames))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2574
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2575 (defun gdb-get-frame-number ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2576 (save-excursion
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2577 (end-of-line)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2578 (let* ((start (line-beginning-position))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2579 (pos (re-search-backward "^#*\\([0-9]+\\)" start t))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2580 (n (or (and pos (match-string 1)) "0")))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2581 n)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2582
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2583 (defun gdb-frames-select (&optional event)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2584 "Select the frame and display the relevant source."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2585 (interactive (list last-input-event))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2586 (if event (posn-set-point (event-end event)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2587 (if (get-text-property (point) 'gdb-max-frames)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2588 (progn
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2589 (message-box "After setting gdb-max-frames, you need to enter\n\
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2590 another GDB command e.g pwd, to see new frames")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2591 (customize-variable-other-window 'gdb-max-frames))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2592 (gdb-enqueue-input
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2593 (list (concat gdb-server-prefix "frame "
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2594 (gdb-get-frame-number) "\n") 'ignore))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2595
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2596
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2597 ;; Threads buffer. This displays a selectable thread list.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2598 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2599 (gdb-set-buffer-rules 'gdb-threads-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2600 'gdb-threads-buffer-name
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2601 'gdb-threads-mode)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2602
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2603 (def-gdb-auto-updated-buffer gdb-threads-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2604 gdb-invalidate-threads
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2605 (concat gdb-server-prefix "info threads\n")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2606 gdb-info-threads-handler
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2607 gdb-info-threads-custom)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2608
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2609 (defun gdb-info-threads-custom ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2610 (with-current-buffer (gdb-get-buffer 'gdb-threads-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2611 (let ((buffer-read-only nil))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2612 (save-excursion
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2613 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2614 (if (re-search-forward "\\* \\([0-9]+\\)" nil t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2615 (setq gdb-thread-indicator
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2616 (propertize (concat " [" (match-string 1) "]")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2617 ; FIXME: this help-echo doesn't work
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2618 'help-echo "thread id")))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2619 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2620 (while (< (point) (point-max))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2621 (unless (looking-at "No ")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2622 (add-text-properties (line-beginning-position) (line-end-position)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2623 '(mouse-face highlight
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2624 help-echo "mouse-2, RET: select thread")))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2625 (forward-line 1))))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2626
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2627 (defun gdb-threads-buffer-name ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2628 (with-current-buffer gud-comint-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2629 (concat "*threads of " (gdb-get-target-string) "*")))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2630
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2631 (defun gdb-display-threads-buffer ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2632 "Display IDs of currently known threads."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2633 (interactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2634 (gdb-display-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2635 (gdb-get-buffer-create 'gdb-threads-buffer) t))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2636
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2637 (defun gdb-frame-threads-buffer ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2638 "Display IDs of currently known threads in a new frame."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2639 (interactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2640 (let ((special-display-regexps (append special-display-regexps '(".*")))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2641 (special-display-frame-alist gdb-frame-parameters))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2642 (display-buffer (gdb-get-buffer-create 'gdb-threads-buffer))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2643
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2644 (defvar gdb-threads-mode-map
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2645 (let ((map (make-sparse-keymap)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2646 (suppress-keymap map)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2647 (define-key map "q" 'kill-this-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2648 (define-key map "\r" 'gdb-threads-select)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2649 (define-key map [mouse-2] 'gdb-threads-select)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2650 (define-key map [follow-link] 'mouse-face)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2651 map))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2652
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2653 (defvar gdb-threads-font-lock-keywords
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2654 '((") +\\([^ ]+\\) (" (1 font-lock-function-name-face))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2655 ("in \\([^ ]+\\) (" (1 font-lock-function-name-face))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2656 ("\\(\\(\\sw\\|[_.]\\)+\\)=" (1 font-lock-variable-name-face)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2657 "Font lock keywords used in `gdb-threads-mode'.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2658
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2659 (defun gdb-threads-mode ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2660 "Major mode for gdb threads.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2661
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2662 \\{gdb-threads-mode-map}"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2663 (kill-all-local-variables)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2664 (setq major-mode 'gdb-threads-mode)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2665 (setq mode-name "Threads")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2666 (setq buffer-read-only t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2667 (buffer-disable-undo)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2668 (setq header-line-format gdb-breakpoints-header)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2669 (use-local-map gdb-threads-mode-map)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2670 (set (make-local-variable 'font-lock-defaults)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2671 '(gdb-threads-font-lock-keywords))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2672 (run-mode-hooks 'gdb-threads-mode-hook)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2673 ;; Force "info threads" onto queue.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2674 (lambda () (let ((gud-running nil)) (gdb-invalidate-threads))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2675
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2676 (defun gdb-get-thread-number ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2677 (save-excursion
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2678 (re-search-backward "^\\s-*\\([0-9]*\\)" nil t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2679 (match-string-no-properties 1)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2680
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2681 (defun gdb-threads-select (&optional event)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2682 "Select the thread and display the relevant source."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2683 (interactive (list last-input-event))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2684 (if event (posn-set-point (event-end event)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2685 (setq gdb-stack-update t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2686 (gdb-enqueue-input
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2687 (list (concat gdb-server-prefix "thread "
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2688 (gdb-get-thread-number) "\n") 'ignore))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2689 (gud-display-frame))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2690
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2691 (defun gdb-thread-identification ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2692 (setq mode-line-buffer-identification
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2693 (list (car mode-line-buffer-identification)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2694 '(gdb-thread-indicator gdb-thread-indicator))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2695
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2696 ;; Registers buffer.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2697 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2698 (defcustom gdb-all-registers nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2699 "Non-nil means include floating-point registers."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2700 :type 'boolean
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2701 :group 'gdb
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2702 :version "22.1")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2703
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2704 (gdb-set-buffer-rules 'gdb-registers-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2705 'gdb-registers-buffer-name
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2706 'gdb-registers-mode)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2707
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2708 (def-gdb-auto-updated-buffer gdb-registers-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2709 gdb-invalidate-registers
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2710 (concat
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2711 gdb-server-prefix "info " (if gdb-all-registers "all-") "registers\n")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2712 gdb-info-registers-handler
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2713 gdb-info-registers-custom)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2714
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2715 (defun gdb-info-registers-custom ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2716 (with-current-buffer (gdb-get-buffer 'gdb-registers-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2717 (save-excursion
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2718 (let ((buffer-read-only nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2719 start end)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2720 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2721 (while (< (point) (point-max))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2722 (setq start (line-beginning-position))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2723 (setq end (line-end-position))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2724 (when (looking-at "^[^ ]+")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2725 (unless (string-equal (match-string 0) "The")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2726 (put-text-property start (match-end 0)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2727 'face font-lock-variable-name-face)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2728 (add-text-properties start end
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2729 '(help-echo "mouse-2: edit value"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2730 mouse-face highlight))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2731 (forward-line 1))))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2732
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2733 (defun gdb-edit-register-value (&optional event)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2734 (interactive (list last-input-event))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2735 (save-excursion
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2736 (if event (posn-set-point (event-end event)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2737 (beginning-of-line)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2738 (let* ((register (current-word))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2739 (value (read-string (format "New value (%s): " register))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2740 (gdb-enqueue-input
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2741 (list (concat gdb-server-prefix "set $" register "=" value "\n")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2742 'ignore)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2743
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2744 (defvar gdb-registers-mode-map
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2745 (let ((map (make-sparse-keymap)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2746 (suppress-keymap map)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2747 (define-key map "\r" 'gdb-edit-register-value)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2748 (define-key map [mouse-2] 'gdb-edit-register-value)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2749 (define-key map " " 'gdb-all-registers)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2750 (define-key map "q" 'kill-this-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2751 map))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2752
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2753 (defvar gdb-locals-header
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2754 (list
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2755 (gdb-propertize-header "Locals" gdb-locals-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2756 nil nil mode-line)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2757 " "
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2758 (gdb-propertize-header "Registers" gdb-registers-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2759 "mouse-1: select" mode-line-highlight mode-line-inactive)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2760
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2761
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2762 (defun gdb-registers-mode ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2763 "Major mode for gdb registers.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2764
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2765 \\{gdb-registers-mode-map}"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2766 (kill-all-local-variables)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2767 (setq major-mode 'gdb-registers-mode)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2768 (setq mode-name "Registers")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2769 (setq header-line-format gdb-locals-header)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2770 (setq buffer-read-only t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2771 (buffer-disable-undo)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2772 (gdb-thread-identification)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2773 (use-local-map gdb-registers-mode-map)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2774 (run-mode-hooks 'gdb-registers-mode-hook)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2775 (if (string-equal gdb-version "pre-6.4")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2776 (progn
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2777 (if gdb-all-registers (setq mode-name "Registers:All"))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2778 'gdb-invalidate-registers)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2779 'gdb-invalidate-registers-1))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2780
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2781 (defun gdb-registers-buffer-name ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2782 (with-current-buffer gud-comint-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2783 (concat "*registers of " (gdb-get-target-string) "*")))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2784
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2785 (defun gdb-display-registers-buffer ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2786 "Display integer register contents."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2787 (interactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2788 (gdb-display-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2789 (gdb-get-buffer-create 'gdb-registers-buffer) t))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2790
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2791 (defun gdb-frame-registers-buffer ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2792 "Display integer register contents in a new frame."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2793 (interactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2794 (let ((special-display-regexps (append special-display-regexps '(".*")))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2795 (special-display-frame-alist gdb-frame-parameters))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2796 (display-buffer (gdb-get-buffer-create 'gdb-registers-buffer))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2797
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2798 (defun gdb-all-registers ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2799 "Toggle the display of floating-point registers (pre GDB 6.4 only)."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2800 (interactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2801 (when (string-equal gdb-version "pre-6.4")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2802 (if gdb-all-registers
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2803 (progn
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2804 (setq gdb-all-registers nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2805 (with-current-buffer (gdb-get-buffer-create 'gdb-registers-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2806 (setq mode-name "Registers")))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2807 (setq gdb-all-registers t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2808 (with-current-buffer (gdb-get-buffer-create 'gdb-registers-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2809 (setq mode-name "Registers:All")))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2810 (message (format "Display of floating-point registers %sabled"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2811 (if gdb-all-registers "en" "dis")))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2812 (gdb-invalidate-registers)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2813
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2814
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2815 ;; Memory buffer.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2816 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2817 (defcustom gdb-memory-repeat-count 32
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2818 "Number of data items in memory window."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2819 :type 'integer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2820 :group 'gdb
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2821 :version "22.1")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2822
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2823 (defcustom gdb-memory-format "x"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2824 "Display format of data items in memory window."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2825 :type '(choice (const :tag "Hexadecimal" "x")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2826 (const :tag "Signed decimal" "d")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2827 (const :tag "Unsigned decimal" "u")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2828 (const :tag "Octal" "o")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2829 (const :tag "Binary" "t"))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2830 :group 'gdb
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2831 :version "22.1")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2832
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2833 (defcustom gdb-memory-unit "w"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2834 "Unit size of data items in memory window."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2835 :type '(choice (const :tag "Byte" "b")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2836 (const :tag "Halfword" "h")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2837 (const :tag "Word" "w")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2838 (const :tag "Giant word" "g"))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2839 :group 'gdb
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2840 :version "22.1")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2841
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2842 (gdb-set-buffer-rules 'gdb-memory-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2843 'gdb-memory-buffer-name
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2844 'gdb-memory-mode)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2845
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2846 (def-gdb-auto-updated-buffer gdb-memory-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2847 gdb-invalidate-memory
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2848 (concat gdb-server-prefix "x/" (number-to-string gdb-memory-repeat-count)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2849 gdb-memory-format gdb-memory-unit " " gdb-memory-address "\n")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2850 gdb-read-memory-handler
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2851 gdb-read-memory-custom)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2852
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2853 (defun gdb-read-memory-custom ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2854 (save-excursion
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2855 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2856 (if (looking-at "0x[[:xdigit:]]+")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2857 (setq gdb-memory-address (match-string 0)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2858
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2859 (defvar gdb-memory-mode-map
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2860 (let ((map (make-sparse-keymap)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2861 (suppress-keymap map)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2862 (define-key map "S" 'gdb-memory-set-address)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2863 (define-key map "N" 'gdb-memory-set-repeat-count)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2864 (define-key map "q" 'kill-this-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2865 map))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2866
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2867 (defun gdb-memory-set-address (&optional event)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2868 "Set the start memory address."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2869 (interactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2870 (let ((arg (read-from-minibuffer "Start address: ")))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2871 (setq gdb-memory-address arg))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2872 (gdb-invalidate-memory))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2873
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2874 (defun gdb-memory-set-repeat-count (&optional event)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2875 "Set the number of data items in memory window."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2876 (interactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2877 (let* ((arg (read-from-minibuffer "Repeat count: "))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2878 (count (string-to-number arg)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2879 (if (<= count 0)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2880 (error "Positive numbers only")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2881 (customize-set-variable 'gdb-memory-repeat-count count)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2882 (gdb-invalidate-memory))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2883
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2884 (defun gdb-memory-format-binary ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2885 "Set the display format to binary."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2886 (interactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2887 (customize-set-variable 'gdb-memory-format "t")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2888 (gdb-invalidate-memory))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2889
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2890 (defun gdb-memory-format-octal ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2891 "Set the display format to octal."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2892 (interactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2893 (customize-set-variable 'gdb-memory-format "o")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2894 (gdb-invalidate-memory))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2895
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2896 (defun gdb-memory-format-unsigned ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2897 "Set the display format to unsigned decimal."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2898 (interactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2899 (customize-set-variable 'gdb-memory-format "u")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2900 (gdb-invalidate-memory))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2901
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2902 (defun gdb-memory-format-signed ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2903 "Set the display format to decimal."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2904 (interactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2905 (customize-set-variable 'gdb-memory-format "d")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2906 (gdb-invalidate-memory))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2907
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2908 (defun gdb-memory-format-hexadecimal ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2909 "Set the display format to hexadecimal."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2910 (interactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2911 (customize-set-variable 'gdb-memory-format "x")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2912 (gdb-invalidate-memory))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2913
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2914 (defvar gdb-memory-format-map
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2915 (let ((map (make-sparse-keymap)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2916 (define-key map [header-line down-mouse-3] 'gdb-memory-format-menu-1)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2917 map)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2918 "Keymap to select format in the header line.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2919
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2920 (defvar gdb-memory-format-menu (make-sparse-keymap "Format")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2921 "Menu of display formats in the header line.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2922
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2923 (define-key gdb-memory-format-menu [binary]
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2924 '(menu-item "Binary" gdb-memory-format-binary
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2925 :button (:radio . (equal gdb-memory-format "t"))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2926 (define-key gdb-memory-format-menu [octal]
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2927 '(menu-item "Octal" gdb-memory-format-octal
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2928 :button (:radio . (equal gdb-memory-format "o"))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2929 (define-key gdb-memory-format-menu [unsigned]
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2930 '(menu-item "Unsigned Decimal" gdb-memory-format-unsigned
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2931 :button (:radio . (equal gdb-memory-format "u"))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2932 (define-key gdb-memory-format-menu [signed]
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2933 '(menu-item "Signed Decimal" gdb-memory-format-signed
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2934 :button (:radio . (equal gdb-memory-format "d"))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2935 (define-key gdb-memory-format-menu [hexadecimal]
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2936 '(menu-item "Hexadecimal" gdb-memory-format-hexadecimal
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2937 :button (:radio . (equal gdb-memory-format "x"))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2938
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2939 (defun gdb-memory-format-menu (event)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2940 (interactive "@e")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2941 (x-popup-menu event gdb-memory-format-menu))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2942
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2943 (defun gdb-memory-format-menu-1 (event)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2944 (interactive "e")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2945 (save-selected-window
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2946 (select-window (posn-window (event-start event)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2947 (let* ((selection (gdb-memory-format-menu event))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2948 (binding (and selection (lookup-key gdb-memory-format-menu
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2949 (vector (car selection))))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2950 (if binding (call-interactively binding)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2951
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2952 (defun gdb-memory-unit-giant ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2953 "Set the unit size to giant words (eight bytes)."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2954 (interactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2955 (customize-set-variable 'gdb-memory-unit "g")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2956 (gdb-invalidate-memory))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2957
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2958 (defun gdb-memory-unit-word ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2959 "Set the unit size to words (four bytes)."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2960 (interactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2961 (customize-set-variable 'gdb-memory-unit "w")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2962 (gdb-invalidate-memory))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2963
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2964 (defun gdb-memory-unit-halfword ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2965 "Set the unit size to halfwords (two bytes)."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2966 (interactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2967 (customize-set-variable 'gdb-memory-unit "h")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2968 (gdb-invalidate-memory))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2969
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2970 (defun gdb-memory-unit-byte ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2971 "Set the unit size to bytes."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2972 (interactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2973 (customize-set-variable 'gdb-memory-unit "b")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2974 (gdb-invalidate-memory))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2975
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2976 (defvar gdb-memory-unit-map
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2977 (let ((map (make-sparse-keymap)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2978 (define-key map [header-line down-mouse-3] 'gdb-memory-unit-menu-1)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2979 map)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2980 "Keymap to select units in the header line.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2981
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2982 (defvar gdb-memory-unit-menu (make-sparse-keymap "Unit")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2983 "Menu of units in the header line.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2984
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2985 (define-key gdb-memory-unit-menu [giantwords]
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2986 '(menu-item "Giant words" gdb-memory-unit-giant
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2987 :button (:radio . (equal gdb-memory-unit "g"))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2988 (define-key gdb-memory-unit-menu [words]
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2989 '(menu-item "Words" gdb-memory-unit-word
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2990 :button (:radio . (equal gdb-memory-unit "w"))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2991 (define-key gdb-memory-unit-menu [halfwords]
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2992 '(menu-item "Halfwords" gdb-memory-unit-halfword
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2993 :button (:radio . (equal gdb-memory-unit "h"))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2994 (define-key gdb-memory-unit-menu [bytes]
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2995 '(menu-item "Bytes" gdb-memory-unit-byte
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2996 :button (:radio . (equal gdb-memory-unit "b"))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2997
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2998 (defun gdb-memory-unit-menu (event)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2999 (interactive "@e")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3000 (x-popup-menu event gdb-memory-unit-menu))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3001
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3002 (defun gdb-memory-unit-menu-1 (event)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3003 (interactive "e")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3004 (save-selected-window
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3005 (select-window (posn-window (event-start event)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3006 (let* ((selection (gdb-memory-unit-menu event))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3007 (binding (and selection (lookup-key gdb-memory-unit-menu
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3008 (vector (car selection))))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3009 (if binding (call-interactively binding)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3010
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3011 (defvar gdb-memory-font-lock-keywords
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3012 '(;; <__function.name+n>
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3013 ("<\\(\\(\\sw\\|[_.]\\)+\\)\\(\\+[0-9]+\\)?>" (1 font-lock-function-name-face))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3014 )
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3015 "Font lock keywords used in `gdb-memory-mode'.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3016
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3017 (defun gdb-memory-mode ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3018 "Major mode for examining memory.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3019
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3020 \\{gdb-memory-mode-map}"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3021 (kill-all-local-variables)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3022 (setq major-mode 'gdb-memory-mode)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3023 (setq mode-name "Memory")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3024 (setq buffer-read-only t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3025 (buffer-disable-undo)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3026 (use-local-map gdb-memory-mode-map)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3027 (setq header-line-format
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3028 '(:eval
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3029 (concat
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3030 "Start address["
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3031 (propertize
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3032 "-"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3033 'face font-lock-warning-face
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3034 'help-echo "mouse-1: decrement address"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3035 'mouse-face 'mode-line-highlight
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3036 'local-map
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3037 (gdb-make-header-line-mouse-map
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3038 'mouse-1
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3039 (lambda () (interactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3040 (let ((gdb-memory-address
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3041 ;; Let GDB do the arithmetic.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3042 (concat
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3043 gdb-memory-address " - "
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3044 (number-to-string
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3045 (* gdb-memory-repeat-count
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3046 (cond ((string= gdb-memory-unit "b") 1)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3047 ((string= gdb-memory-unit "h") 2)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3048 ((string= gdb-memory-unit "w") 4)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3049 ((string= gdb-memory-unit "g") 8)))))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3050 (gdb-invalidate-memory)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3051 "|"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3052 (propertize "+"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3053 'face font-lock-warning-face
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3054 'help-echo "mouse-1: increment address"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3055 'mouse-face 'mode-line-highlight
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3056 'local-map (gdb-make-header-line-mouse-map
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3057 'mouse-1
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3058 (lambda () (interactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3059 (let ((gdb-memory-address nil))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3060 (gdb-invalidate-memory)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3061 "]: "
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3062 (propertize gdb-memory-address
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3063 'face font-lock-warning-face
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3064 'help-echo "mouse-1: set start address"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3065 'mouse-face 'mode-line-highlight
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3066 'local-map (gdb-make-header-line-mouse-map
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3067 'mouse-1
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3068 #'gdb-memory-set-address))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3069 " Repeat Count: "
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3070 (propertize (number-to-string gdb-memory-repeat-count)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3071 'face font-lock-warning-face
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3072 'help-echo "mouse-1: set repeat count"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3073 'mouse-face 'mode-line-highlight
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3074 'local-map (gdb-make-header-line-mouse-map
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3075 'mouse-1
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3076 #'gdb-memory-set-repeat-count))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3077 " Display Format: "
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3078 (propertize gdb-memory-format
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3079 'face font-lock-warning-face
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3080 'help-echo "mouse-3: select display format"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3081 'mouse-face 'mode-line-highlight
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3082 'local-map gdb-memory-format-map)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3083 " Unit Size: "
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3084 (propertize gdb-memory-unit
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3085 'face font-lock-warning-face
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3086 'help-echo "mouse-3: select unit size"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3087 'mouse-face 'mode-line-highlight
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3088 'local-map gdb-memory-unit-map))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3089 (set (make-local-variable 'font-lock-defaults)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3090 '(gdb-memory-font-lock-keywords))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3091 (run-mode-hooks 'gdb-memory-mode-hook)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3092 'gdb-invalidate-memory)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3093
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3094 (defun gdb-memory-buffer-name ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3095 (with-current-buffer gud-comint-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3096 (concat "*memory of " (gdb-get-target-string) "*")))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3097
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3098 (defun gdb-display-memory-buffer ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3099 "Display memory contents."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3100 (interactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3101 (gdb-display-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3102 (gdb-get-buffer-create 'gdb-memory-buffer) t))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3103
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3104 (defun gdb-frame-memory-buffer ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3105 "Display memory contents in a new frame."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3106 (interactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3107 (let* ((special-display-regexps (append special-display-regexps '(".*")))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3108 (special-display-frame-alist
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3109 (cons '(left-fringe . 0)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3110 (cons '(right-fringe . 0)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3111 (cons '(width . 83) gdb-frame-parameters)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3112 (display-buffer (gdb-get-buffer-create 'gdb-memory-buffer))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3113
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3114
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3115 ;; Locals buffer.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3116 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3117 (gdb-set-buffer-rules 'gdb-locals-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3118 'gdb-locals-buffer-name
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3119 'gdb-locals-mode)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3120
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3121 (def-gdb-auto-update-trigger gdb-invalidate-locals
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3122 (gdb-get-buffer 'gdb-locals-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3123 "server info locals\n"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3124 gdb-info-locals-handler)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3125
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3126 (defvar gdb-locals-watch-map
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3127 (let ((map (make-sparse-keymap)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3128 (suppress-keymap map)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3129 (define-key map "\r" (lambda () (interactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3130 (beginning-of-line)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3131 (gud-watch)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3132 (define-key map [mouse-2] (lambda (event) (interactive "e")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3133 (mouse-set-point event)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3134 (beginning-of-line)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3135 (gud-watch)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3136 map)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3137 "Keymap to create watch expression of a complex data type local variable.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3138
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3139 (defconst gdb-struct-string
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3140 (concat (propertize "[struct/union]"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3141 'mouse-face 'highlight
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3142 'help-echo "mouse-2: create watch expression"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3143 'local-map gdb-locals-watch-map) "\n"))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3144
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3145 (defconst gdb-array-string
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3146 (concat " " (propertize "[array]"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3147 'mouse-face 'highlight
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3148 'help-echo "mouse-2: create watch expression"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3149 'local-map gdb-locals-watch-map) "\n"))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3150
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3151 ;; Abbreviate for arrays and structures.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3152 ;; These can be expanded using gud-display.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3153 (defun gdb-info-locals-handler ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3154 (setq gdb-pending-triggers (delq 'gdb-invalidate-locals
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3155 gdb-pending-triggers))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3156 (let ((buf (gdb-get-buffer 'gdb-partial-output-buffer)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3157 (with-current-buffer buf
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3158 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3159 ;; Need this in case "set print pretty" is on.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3160 (while (re-search-forward "^[ }].*\n" nil t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3161 (replace-match "" nil nil))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3162 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3163 (while (re-search-forward "{\\(.*=.*\n\\|\n\\)" nil t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3164 (replace-match gdb-struct-string nil nil))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3165 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3166 (while (re-search-forward "\\s-*{[^.].*\n" nil t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3167 (replace-match gdb-array-string nil nil))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3168 (let ((buf (gdb-get-buffer 'gdb-locals-buffer)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3169 (and buf
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3170 (with-current-buffer buf
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3171 (let* ((window (get-buffer-window buf 0))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3172 (start (window-start window))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3173 (p (window-point window))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3174 (buffer-read-only nil))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3175 (erase-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3176 (insert-buffer-substring (gdb-get-buffer-create
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3177 'gdb-partial-output-buffer))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3178 (set-window-start window start)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3179 (set-window-point window p)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3180 (run-hooks 'gdb-info-locals-hook))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3181
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3182 (defvar gdb-locals-mode-map
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3183 (let ((map (make-sparse-keymap)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3184 (suppress-keymap map)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3185 (define-key map "q" 'kill-this-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3186 map))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3187
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3188 (defun gdb-locals-mode ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3189 "Major mode for gdb locals.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3190
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3191 \\{gdb-locals-mode-map}"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3192 (kill-all-local-variables)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3193 (setq major-mode 'gdb-locals-mode)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3194 (setq mode-name (concat "Locals:" gdb-selected-frame))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3195 (use-local-map gdb-locals-mode-map)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3196 (setq buffer-read-only t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3197 (buffer-disable-undo)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3198 (setq header-line-format gdb-locals-header)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3199 (gdb-thread-identification)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3200 (set (make-local-variable 'font-lock-defaults)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3201 '(gdb-locals-font-lock-keywords))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3202 (run-mode-hooks 'gdb-locals-mode-hook)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3203 (if (and (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3204 (string-equal gdb-version "pre-6.4"))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3205 'gdb-invalidate-locals
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3206 'gdb-invalidate-locals-1))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3207
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3208 (defun gdb-locals-buffer-name ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3209 (with-current-buffer gud-comint-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3210 (concat "*locals of " (gdb-get-target-string) "*")))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3211
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3212 (defun gdb-display-locals-buffer ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3213 "Display local variables of current stack and their values."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3214 (interactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3215 (gdb-display-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3216 (gdb-get-buffer-create 'gdb-locals-buffer) t))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3217
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3218 (defun gdb-frame-locals-buffer ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3219 "Display local variables of current stack and their values in a new frame."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3220 (interactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3221 (let ((special-display-regexps (append special-display-regexps '(".*")))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3222 (special-display-frame-alist gdb-frame-parameters))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3223 (display-buffer (gdb-get-buffer-create 'gdb-locals-buffer))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3224
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3225
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3226 ;;;; Window management
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3227 (defun gdb-display-buffer (buf dedicated &optional frame)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3228 (let ((answer (get-buffer-window buf (or frame 0))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3229 (if answer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3230 (display-buffer buf nil (or frame 0)) ;Deiconify the frame if necessary.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3231 (let ((window (get-lru-window)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3232 (if (memq (buffer-local-value 'gud-minor-mode (window-buffer window))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3233 '(gdba gdbmi))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3234 (let* ((largest (get-largest-window))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3235 (cur-size (window-height largest)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3236 (setq answer (split-window largest))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3237 (set-window-buffer answer buf)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3238 (set-window-dedicated-p answer dedicated)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3239 answer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3240 (set-window-buffer window buf)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3241 window)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3242
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3243
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3244 ;;; Shared keymap initialization:
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3245
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3246 (let ((menu (make-sparse-keymap "GDB-Windows")))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3247 (define-key gud-menu-map [displays]
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3248 `(menu-item "GDB-Windows" ,menu
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3249 :help "Open a GDB-UI buffer in a new window."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3250 :visible (memq gud-minor-mode '(gdbmi gdba))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3251 (define-key menu [gdb] '("Gdb" . gdb-display-gdb-buffer))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3252 (define-key menu [threads] '("Threads" . gdb-display-threads-buffer))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3253 (define-key menu [inferior]
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3254 '(menu-item "Separate IO" gdb-display-separate-io-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3255 :enable gdb-use-separate-io-buffer))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3256 (define-key menu [memory] '("Memory" . gdb-display-memory-buffer))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3257 (define-key menu [registers] '("Registers" . gdb-display-registers-buffer))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3258 (define-key menu [disassembly]
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3259 '("Disassembly" . gdb-display-assembler-buffer))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3260 (define-key menu [breakpoints]
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3261 '("Breakpoints" . gdb-display-breakpoints-buffer))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3262 (define-key menu [locals] '("Locals" . gdb-display-locals-buffer))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3263 (define-key menu [frames] '("Stack" . gdb-display-stack-buffer)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3264
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3265 (let ((menu (make-sparse-keymap "GDB-Frames")))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3266 (define-key gud-menu-map [frames]
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3267 `(menu-item "GDB-Frames" ,menu
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3268 :help "Open a GDB-UI buffer in a new frame."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3269 :visible (memq gud-minor-mode '(gdbmi gdba))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3270 (define-key menu [gdb] '("Gdb" . gdb-frame-gdb-buffer))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3271 (define-key menu [threads] '("Threads" . gdb-frame-threads-buffer))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3272 (define-key menu [memory] '("Memory" . gdb-frame-memory-buffer))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3273 (define-key menu [inferior]
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3274 '(menu-item "Separate IO" gdb-frame-separate-io-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3275 :enable gdb-use-separate-io-buffer))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3276 (define-key menu [registers] '("Registers" . gdb-frame-registers-buffer))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3277 (define-key menu [disassembly] '("Disassembly" . gdb-frame-assembler-buffer))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3278 (define-key menu [breakpoints]
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3279 '("Breakpoints" . gdb-frame-breakpoints-buffer))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3280 (define-key menu [locals] '("Locals" . gdb-frame-locals-buffer))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3281 (define-key menu [frames] '("Stack" . gdb-frame-stack-buffer)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3282
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3283 (let ((menu (make-sparse-keymap "GDB-UI/MI")))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3284 (define-key gud-menu-map [ui]
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3285 `(menu-item (if (eq gud-minor-mode 'gdba) "GDB-UI" "GDB-MI")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3286 ,menu :visible (memq gud-minor-mode '(gdbmi gdba))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3287 (define-key menu [gdb-customize]
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3288 '(menu-item "Customize" (lambda () (interactive) (customize-group 'gdb))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3289 :help "Customize Gdb Graphical Mode options."))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3290 (define-key menu [gdb-find-source-frame]
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3291 '(menu-item "Look For Source Frame" gdb-find-source-frame
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3292 :visible (eq gud-minor-mode 'gdba)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3293 :help "Toggle looking for source frame further up call stack."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3294 :button (:toggle . gdb-find-source-frame)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3295 (define-key menu [gdb-use-separate-io]
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3296 '(menu-item "Separate IO" gdb-use-separate-io-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3297 :visible (eq gud-minor-mode 'gdba)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3298 :help "Toggle separate IO for debugged program."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3299 :button (:toggle . gdb-use-separate-io-buffer)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3300 (define-key menu [gdb-many-windows]
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3301 '(menu-item "Display Other Windows" gdb-many-windows
106697
ac408704629c lisp/*: Fix typos in docstrings and messages.
Juanma Barranquero <lekktu@gmail.com>
parents: 106680
diff changeset
3302 :help "Toggle display of locals, stack and breakpoint information."
106678
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3303 :button (:toggle . gdb-many-windows)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3304 (define-key menu [gdb-restore-windows]
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3305 '(menu-item "Restore Window Layout" gdb-restore-windows
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3306 :help "Restore standard layout for debug session.")))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3307
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3308 (defun gdb-frame-gdb-buffer ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3309 "Display GUD buffer in a new frame."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3310 (interactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3311 (let ((special-display-regexps (append special-display-regexps '(".*")))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3312 (special-display-frame-alist
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3313 (remove '(menu-bar-lines) (remove '(tool-bar-lines)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3314 gdb-frame-parameters)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3315 (same-window-regexps nil))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3316 (display-buffer gud-comint-buffer)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3317
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3318 (defun gdb-display-gdb-buffer ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3319 "Display GUD buffer."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3320 (interactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3321 (let ((same-window-regexps nil))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3322 (select-window (display-buffer gud-comint-buffer nil 0))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3323
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3324 (defun gdb-set-window-buffer (name)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3325 (set-window-buffer (selected-window) (get-buffer name))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3326 (set-window-dedicated-p (selected-window) t))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3327
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3328 (defun gdb-setup-windows ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3329 "Layout the window pattern for `gdb-many-windows'."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3330 (gdb-display-locals-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3331 (gdb-display-stack-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3332 (delete-other-windows)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3333 (gdb-display-breakpoints-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3334 (delete-other-windows)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3335 ; Don't dedicate.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3336 (pop-to-buffer gud-comint-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3337 (split-window nil ( / ( * (window-height) 3) 4))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3338 (split-window nil ( / (window-height) 3))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3339 (split-window-horizontally)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3340 (other-window 1)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3341 (gdb-set-window-buffer (gdb-locals-buffer-name))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3342 (other-window 1)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3343 (switch-to-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3344 (if gud-last-last-frame
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3345 (gud-find-file (car gud-last-last-frame))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3346 (if gdb-main-file
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3347 (gud-find-file gdb-main-file)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3348 ;; Put buffer list in window if we
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3349 ;; can't find a source file.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3350 (list-buffers-noselect))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3351 (setq gdb-source-window (selected-window))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3352 (when gdb-use-separate-io-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3353 (split-window-horizontally)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3354 (other-window 1)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3355 (gdb-set-window-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3356 (gdb-get-buffer-create 'gdb-inferior-io)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3357 (other-window 1)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3358 (gdb-set-window-buffer (gdb-stack-buffer-name))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3359 (split-window-horizontally)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3360 (other-window 1)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3361 (gdb-set-window-buffer (gdb-breakpoints-buffer-name))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3362 (other-window 1))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3363
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3364 (defun gdb-restore-windows ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3365 "Restore the basic arrangement of windows used by gdba.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3366 This arrangement depends on the value of `gdb-many-windows'."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3367 (interactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3368 (pop-to-buffer gud-comint-buffer) ;Select the right window and frame.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3369 (delete-other-windows)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3370 (if gdb-many-windows
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3371 (gdb-setup-windows)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3372 (when (or gud-last-last-frame gdb-show-main)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3373 (split-window)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3374 (other-window 1)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3375 (switch-to-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3376 (if gud-last-last-frame
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3377 (gud-find-file (car gud-last-last-frame))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3378 (gud-find-file gdb-main-file)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3379 (setq gdb-source-window (selected-window))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3380 (other-window 1))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3381
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3382 (defun gdb-reset ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3383 "Exit a debugging session cleanly.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3384 Kills the gdb buffers, and resets variables and the source buffers."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3385 (dolist (buffer (buffer-list))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3386 (unless (eq buffer gud-comint-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3387 (with-current-buffer buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3388 (if (memq gud-minor-mode '(gdbmi gdba))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3389 (if (string-match "\\` ?\\*.+\\*\\'" (buffer-name))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3390 (kill-buffer nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3391 (gdb-remove-breakpoint-icons (point-min) (point-max) t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3392 (setq gud-minor-mode nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3393 (kill-local-variable 'tool-bar-map)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3394 (kill-local-variable 'gdb-define-alist))))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3395 (setq gdb-overlay-arrow-position nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3396 (setq overlay-arrow-variable-list
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3397 (delq 'gdb-overlay-arrow-position overlay-arrow-variable-list))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3398 (setq fringe-indicator-alist '((overlay-arrow . right-triangle)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3399 (setq gdb-stack-position nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3400 (setq overlay-arrow-variable-list
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3401 (delq 'gdb-stack-position overlay-arrow-variable-list))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3402 (if (boundp 'speedbar-frame) (speedbar-timer-fn))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3403 (setq gud-running nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3404 (setq gdb-active-process nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3405 (setq gdb-var-list nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3406 (remove-hook 'after-save-hook 'gdb-create-define-alist t))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3407
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3408 (defun gdb-source-info ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3409 "Find the source file where the program starts and display it with related
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3410 buffers."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3411 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3412 (if (and (search-forward "Located in " nil t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3413 (looking-at "\\S-+"))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3414 (setq gdb-main-file (match-string 0)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3415 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3416 (if (search-forward "Includes preprocessor macro info." nil t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3417 (setq gdb-macro-info t))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3418 (if gdb-many-windows
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3419 (gdb-setup-windows)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3420 (gdb-get-buffer-create 'gdb-breakpoints-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3421 (if (and gdb-show-main gdb-main-file)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3422 (let ((pop-up-windows t))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3423 (display-buffer (gud-find-file gdb-main-file)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3424 (setq gdb-ready t))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3425
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3426 (defun gdb-get-location (bptno line flag)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3427 "Find the directory containing the relevant source file.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3428 Put in buffer and place breakpoint icon."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3429 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3430 (catch 'file-not-found
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3431 (if (search-forward "Located in " nil t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3432 (when (looking-at "\\S-+")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3433 (delete (cons bptno "File not found") gdb-location-alist)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3434 (push (cons bptno (match-string 0)) gdb-location-alist))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3435 (gdb-resync)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3436 (unless (assoc bptno gdb-location-alist)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3437 (push (cons bptno "File not found") gdb-location-alist)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3438 (message-box "Cannot find source file for breakpoint location.\n\
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3439 Add directory to search path for source files using the GDB command, dir."))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3440 (throw 'file-not-found nil))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3441 (with-current-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3442 (find-file-noselect (match-string 0))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3443 (gdb-init-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3444 ;; only want one breakpoint icon at each location
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3445 (save-excursion
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3446 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3447 (forward-line (1- (string-to-number line)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3448 (gdb-put-breakpoint-icon (eq flag ?y) bptno)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3449
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3450 (add-hook 'find-file-hook 'gdb-find-file-hook)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3451
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3452 (defun gdb-find-file-hook ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3453 "Set up buffer for debugging if file is part of the source code
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3454 of the current session."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3455 (if (and (buffer-name gud-comint-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3456 ;; in case gud or gdb-ui is just loaded
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3457 gud-comint-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3458 (memq (buffer-local-value 'gud-minor-mode gud-comint-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3459 '(gdba gdbmi)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3460 ;;Pre GDB 6.3 "info sources" doesn't give absolute file name.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3461 (if (member (if (string-equal gdb-version "pre-6.4")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3462 (file-name-nondirectory buffer-file-name)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3463 buffer-file-name)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3464 gdb-source-file-list)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3465 (with-current-buffer (find-buffer-visiting buffer-file-name)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3466 (gdb-init-buffer)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3467
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3468 ;;from put-image
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3469 (defun gdb-put-string (putstring pos &optional dprop &rest sprops)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3470 "Put string PUTSTRING in front of POS in the current buffer.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3471 PUTSTRING is displayed by putting an overlay into the current buffer with a
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3472 `before-string' string that has a `display' property whose value is
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3473 PUTSTRING."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3474 (let ((string (make-string 1 ?x))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3475 (buffer (current-buffer)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3476 (setq putstring (copy-sequence putstring))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3477 (let ((overlay (make-overlay pos pos buffer))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3478 (prop (or dprop
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3479 (list (list 'margin 'left-margin) putstring))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3480 (put-text-property 0 1 'display prop string)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3481 (if sprops
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3482 (add-text-properties 0 1 sprops string))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3483 (overlay-put overlay 'put-break t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3484 (overlay-put overlay 'before-string string))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3485
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3486 ;;from remove-images
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3487 (defun gdb-remove-strings (start end &optional buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3488 "Remove strings between START and END in BUFFER.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3489 Remove only strings that were put in BUFFER with calls to `gdb-put-string'.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3490 BUFFER nil or omitted means use the current buffer."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3491 (unless buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3492 (setq buffer (current-buffer)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3493 (dolist (overlay (overlays-in start end))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3494 (when (overlay-get overlay 'put-break)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3495 (delete-overlay overlay))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3496
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3497 (defun gdb-put-breakpoint-icon (enabled bptno)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3498 (if (string-match "[0-9+]+\\." bptno)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3499 (setq enabled gdb-parent-bptno-enabled))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3500 (let ((start (- (line-beginning-position) 1))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3501 (end (+ (line-end-position) 1))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3502 (putstring (if enabled "B" "b"))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3503 (source-window (get-buffer-window (current-buffer) 0)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3504 (add-text-properties
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3505 0 1 '(help-echo "mouse-1: clear bkpt, mouse-3: enable/disable bkpt")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3506 putstring)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3507 (if enabled
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3508 (add-text-properties
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3509 0 1 `(gdb-bptno ,bptno gdb-enabled t) putstring)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3510 (add-text-properties
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3511 0 1 `(gdb-bptno ,bptno gdb-enabled nil) putstring))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3512 (gdb-remove-breakpoint-icons start end)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3513 (if (display-images-p)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3514 (if (>= (or left-fringe-width
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3515 (if source-window (car (window-fringes source-window)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3516 gdb-buffer-fringe-width) 8)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3517 (gdb-put-string
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3518 nil (1+ start)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3519 `(left-fringe breakpoint
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3520 ,(if enabled
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3521 'breakpoint-enabled
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3522 'breakpoint-disabled))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3523 'gdb-bptno bptno
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3524 'gdb-enabled enabled)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3525 (when (< left-margin-width 2)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3526 (save-current-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3527 (setq left-margin-width 2)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3528 (if source-window
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3529 (set-window-margins
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3530 source-window
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3531 left-margin-width right-margin-width))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3532 (put-image
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3533 (if enabled
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3534 (or breakpoint-enabled-icon
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3535 (setq breakpoint-enabled-icon
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3536 (find-image `((:type xpm :data
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3537 ,breakpoint-xpm-data
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3538 :ascent 100 :pointer hand)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3539 (:type pbm :data
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3540 ,breakpoint-enabled-pbm-data
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3541 :ascent 100 :pointer hand)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3542 (or breakpoint-disabled-icon
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3543 (setq breakpoint-disabled-icon
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3544 (find-image `((:type xpm :data
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3545 ,breakpoint-xpm-data
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3546 :conversion disabled
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3547 :ascent 100 :pointer hand)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3548 (:type pbm :data
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3549 ,breakpoint-disabled-pbm-data
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3550 :ascent 100 :pointer hand))))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3551 (+ start 1)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3552 putstring
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3553 'left-margin))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3554 (when (< left-margin-width 2)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3555 (save-current-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3556 (setq left-margin-width 2)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3557 (let ((window (get-buffer-window (current-buffer) 0)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3558 (if window
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3559 (set-window-margins
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3560 window left-margin-width right-margin-width)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3561 (gdb-put-string
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3562 (propertize putstring
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3563 'face (if enabled 'breakpoint-enabled 'breakpoint-disabled))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3564 (1+ start)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3565
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3566 (defun gdb-remove-breakpoint-icons (start end &optional remove-margin)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3567 (gdb-remove-strings start end)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3568 (if (display-images-p)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3569 (remove-images start end))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3570 (when remove-margin
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3571 (setq left-margin-width 0)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3572 (let ((window (get-buffer-window (current-buffer) 0)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3573 (if window
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3574 (set-window-margins
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3575 window left-margin-width right-margin-width)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3576
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3577
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3578 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3579 ;; Assembler buffer.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3580 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3581 (gdb-set-buffer-rules 'gdb-assembler-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3582 'gdb-assembler-buffer-name
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3583 'gdb-assembler-mode)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3584
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3585 ;; We can't use def-gdb-auto-update-handler because we don't want to use
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3586 ;; window-start but keep the overlay arrow/current line visible.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3587 (defun gdb-assembler-handler ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3588 (setq gdb-pending-triggers
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3589 (delq 'gdb-invalidate-assembler
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3590 gdb-pending-triggers))
107196
19bad34b0d81 Accommodate change of disassemble output in GDB 7.1.
Nick Roberts <nickrob@snap.net.nz>
parents: 106840
diff changeset
3591 (let ((buf (gdb-get-buffer 'gdb-partial-output-buffer)))
19bad34b0d81 Accommodate change of disassemble output in GDB 7.1.
Nick Roberts <nickrob@snap.net.nz>
parents: 106840
diff changeset
3592 (with-current-buffer buf
19bad34b0d81 Accommodate change of disassemble output in GDB 7.1.
Nick Roberts <nickrob@snap.net.nz>
parents: 106840
diff changeset
3593 (goto-char (point-min))
19bad34b0d81 Accommodate change of disassemble output in GDB 7.1.
Nick Roberts <nickrob@snap.net.nz>
parents: 106840
diff changeset
3594 ;; The disassemble command in GDB 7.1 onwards displays an overlay arrow.
19bad34b0d81 Accommodate change of disassemble output in GDB 7.1.
Nick Roberts <nickrob@snap.net.nz>
parents: 106840
diff changeset
3595 (while (re-search-forward "\\(^ 0x\\|=> 0x\\)" nil t)
19bad34b0d81 Accommodate change of disassemble output in GDB 7.1.
Nick Roberts <nickrob@snap.net.nz>
parents: 106840
diff changeset
3596 (replace-match "0x" nil nil))))
19bad34b0d81 Accommodate change of disassemble output in GDB 7.1.
Nick Roberts <nickrob@snap.net.nz>
parents: 106840
diff changeset
3597 (let ((buf (gdb-get-buffer 'gdb-assembler-buffer)))
19bad34b0d81 Accommodate change of disassemble output in GDB 7.1.
Nick Roberts <nickrob@snap.net.nz>
parents: 106840
diff changeset
3598 (and buf
19bad34b0d81 Accommodate change of disassemble output in GDB 7.1.
Nick Roberts <nickrob@snap.net.nz>
parents: 106840
diff changeset
3599 (with-current-buffer buf
19bad34b0d81 Accommodate change of disassemble output in GDB 7.1.
Nick Roberts <nickrob@snap.net.nz>
parents: 106840
diff changeset
3600 (let* ((window (get-buffer-window buf 0))
19bad34b0d81 Accommodate change of disassemble output in GDB 7.1.
Nick Roberts <nickrob@snap.net.nz>
parents: 106840
diff changeset
3601 (p (window-point window))
19bad34b0d81 Accommodate change of disassemble output in GDB 7.1.
Nick Roberts <nickrob@snap.net.nz>
parents: 106840
diff changeset
3602 (buffer-read-only nil))
19bad34b0d81 Accommodate change of disassemble output in GDB 7.1.
Nick Roberts <nickrob@snap.net.nz>
parents: 106840
diff changeset
3603 (erase-buffer)
19bad34b0d81 Accommodate change of disassemble output in GDB 7.1.
Nick Roberts <nickrob@snap.net.nz>
parents: 106840
diff changeset
3604 (insert-buffer-substring (gdb-get-buffer-create
106678
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3605 'gdb-partial-output-buffer))
107196
19bad34b0d81 Accommodate change of disassemble output in GDB 7.1.
Nick Roberts <nickrob@snap.net.nz>
parents: 106840
diff changeset
3606 (set-window-point window p)))))
19bad34b0d81 Accommodate change of disassemble output in GDB 7.1.
Nick Roberts <nickrob@snap.net.nz>
parents: 106840
diff changeset
3607 ;; put customisation here
19bad34b0d81 Accommodate change of disassemble output in GDB 7.1.
Nick Roberts <nickrob@snap.net.nz>
parents: 106840
diff changeset
3608 (gdb-assembler-custom))
106678
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3609
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3610 (defun gdb-assembler-custom ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3611 (let ((buffer (gdb-get-buffer 'gdb-assembler-buffer))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3612 (pos 1) (address) (flag) (bptno))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3613 (with-current-buffer buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3614 (save-excursion
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3615 (if (not (equal gdb-pc-address "main"))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3616 (progn
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3617 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3618 (if (and gdb-pc-address
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3619 (search-forward gdb-pc-address nil t))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3620 (progn
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3621 (setq pos (point))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3622 (beginning-of-line)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3623 (setq fringe-indicator-alist
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3624 (if (string-equal gdb-frame-number "0")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3625 nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3626 '((overlay-arrow . hollow-right-triangle))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3627 (or gdb-overlay-arrow-position
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3628 (setq gdb-overlay-arrow-position (make-marker)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3629 (set-marker gdb-overlay-arrow-position (point))))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3630 ;; remove all breakpoint-icons in assembler buffer before updating.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3631 (gdb-remove-breakpoint-icons (point-min) (point-max))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3632 (with-current-buffer (gdb-get-buffer 'gdb-breakpoints-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3633 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3634 (while (< (point) (- (point-max) 1))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3635 (forward-line 1)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3636 (when (looking-at
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3637 "\\([0-9]+\\.?[0-9]*\\).*?\\s-+\\(.\\)\\s-+0x0*\\(\\S-+\\)")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3638 (setq bptno (match-string 1))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3639 (setq flag (char-after (match-beginning 2)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3640 (setq address (match-string 3))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3641 (with-current-buffer buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3642 (save-excursion
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3643 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3644 (if (re-search-forward (concat "^0x0*" address) nil t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3645 (gdb-put-breakpoint-icon (eq flag ?y) bptno)))))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3646 (if (not (equal gdb-pc-address "main"))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3647 (with-current-buffer buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3648 (set-window-point (get-buffer-window buffer 0) pos)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3649
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3650 (defvar gdb-assembler-mode-map
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3651 (let ((map (make-sparse-keymap)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3652 (suppress-keymap map)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3653 (define-key map "q" 'kill-this-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3654 map))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3655
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3656 (defvar gdb-assembler-font-lock-keywords
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3657 '(;; <__function.name+n>
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3658 ("<\\(\\(\\sw\\|[_.]\\)+\\)\\(\\+[0-9]+\\)?>"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3659 (1 font-lock-function-name-face))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3660 ;; 0xNNNNNNNN <__function.name+n>: opcode
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3661 ("^0x[0-9a-f]+ \\(<\\(\\(\\sw\\|[_.]\\)+\\)\\+[0-9]+>\\)?:[ \t]+\\(\\sw+\\)"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3662 (4 font-lock-keyword-face))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3663 ;; %register(at least i386)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3664 ("%\\sw+" . font-lock-variable-name-face)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3665 ("^\\(Dump of assembler code for function\\) \\(.+\\):"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3666 (1 font-lock-comment-face)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3667 (2 font-lock-function-name-face))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3668 ("^\\(End of assembler dump\\.\\)" . font-lock-comment-face))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3669 "Font lock keywords used in `gdb-assembler-mode'.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3670
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3671 (defun gdb-assembler-mode ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3672 "Major mode for viewing code assembler.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3673
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3674 \\{gdb-assembler-mode-map}"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3675 (kill-all-local-variables)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3676 (setq major-mode 'gdb-assembler-mode)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3677 (setq mode-name (concat "Machine:" gdb-selected-frame))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3678 (setq gdb-overlay-arrow-position nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3679 (add-to-list 'overlay-arrow-variable-list 'gdb-overlay-arrow-position)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3680 (setq fringes-outside-margins t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3681 (setq buffer-read-only t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3682 (buffer-disable-undo)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3683 (gdb-thread-identification)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3684 (use-local-map gdb-assembler-mode-map)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3685 (gdb-invalidate-assembler)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3686 (set (make-local-variable 'font-lock-defaults)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3687 '(gdb-assembler-font-lock-keywords))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3688 (run-mode-hooks 'gdb-assembler-mode-hook)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3689 'gdb-invalidate-assembler)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3690
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3691 (defun gdb-assembler-buffer-name ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3692 (with-current-buffer gud-comint-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3693 (concat "*disassembly of " (gdb-get-target-string) "*")))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3694
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3695 (defun gdb-display-assembler-buffer ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3696 "Display disassembly view."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3697 (interactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3698 (setq gdb-previous-frame nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3699 (gdb-display-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3700 (gdb-get-buffer-create 'gdb-assembler-buffer) t))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3701
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3702 (defun gdb-frame-assembler-buffer ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3703 "Display disassembly view in a new frame."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3704 (interactive)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3705 (setq gdb-previous-frame nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3706 (let ((special-display-regexps (append special-display-regexps '(".*")))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3707 (special-display-frame-alist gdb-frame-parameters))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3708 (display-buffer (gdb-get-buffer-create 'gdb-assembler-buffer))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3709
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3710 ;; modified because if gdb-pc-address has changed value a new command
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3711 ;; must be enqueued to update the buffer with the new output
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3712 (defun gdb-invalidate-assembler (&optional ignored)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3713 (if (gdb-get-buffer 'gdb-assembler-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3714 (progn
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3715 (unless (and gdb-selected-frame
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3716 (string-equal gdb-selected-frame gdb-previous-frame))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3717 (if (or (not (member 'gdb-invalidate-assembler
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3718 gdb-pending-triggers))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3719 (not (equal (string-to-number gdb-pc-address)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3720 (string-to-number
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3721 gdb-previous-frame-pc-address))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3722 (progn
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3723 ;; take previous disassemble command, if any, off the queue
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3724 (with-current-buffer gud-comint-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3725 (let ((queue gdb-input-queue))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3726 (dolist (item queue)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3727 (if (equal (cdr item) '(gdb-assembler-handler))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3728 (setq gdb-input-queue
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3729 (delete item gdb-input-queue))))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3730 (gdb-enqueue-input
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3731 (list
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3732 (concat gdb-server-prefix "disassemble " gdb-pc-address "\n")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3733 'gdb-assembler-handler))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3734 (push 'gdb-invalidate-assembler gdb-pending-triggers)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3735 (setq gdb-previous-frame-pc-address gdb-pc-address)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3736 (setq gdb-previous-frame gdb-selected-frame)))))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3737
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3738 (defun gdb-get-selected-frame ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3739 (if (not (member 'gdb-get-selected-frame gdb-pending-triggers))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3740 (progn
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3741 (if (string-equal gdb-version "pre-6.4")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3742 (gdb-enqueue-input
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3743 (list (concat gdb-server-prefix "info frame\n")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3744 'gdb-frame-handler))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3745 (gdb-enqueue-input
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3746 (list "server interpreter mi -stack-info-frame\n"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3747 'gdb-frame-handler-1)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3748 (push 'gdb-get-selected-frame gdb-pending-triggers))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3749
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3750 (defun gdb-frame-handler ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3751 (setq gdb-pending-triggers
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3752 (delq 'gdb-get-selected-frame gdb-pending-triggers))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3753 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3754 (when (re-search-forward
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3755 "Stack level \\([0-9]+\\), frame at \\(0x[[:xdigit:]]+\\)" nil t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3756 (setq gdb-frame-number (match-string 1))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3757 (setq gdb-frame-address (match-string 2)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3758 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3759 (when (re-search-forward ".*=\\s-+\\(\\S-*\\)\\s-+in\\s-+\\(.*?\\)\
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3760 \\(?: (\\(\\S-+?\\):[0-9]+?)\\)*; "
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3761 nil t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3762 (setq gdb-selected-frame (match-string 2))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3763 (if (gdb-get-buffer 'gdb-locals-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3764 (with-current-buffer (gdb-get-buffer 'gdb-locals-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3765 (setq mode-name (concat "Locals:" gdb-selected-frame))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3766 (if (gdb-get-buffer 'gdb-assembler-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3767 (with-current-buffer (gdb-get-buffer 'gdb-assembler-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3768 (setq mode-name (concat "Machine:" gdb-selected-frame))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3769 (setq gdb-pc-address (match-string 1))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3770 (if (and (match-string 3) gud-overlay-arrow-position)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3771 (let ((buffer (marker-buffer gud-overlay-arrow-position))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3772 (position (marker-position gud-overlay-arrow-position)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3773 (when (and buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3774 (string-equal (file-name-nondirectory
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3775 (buffer-file-name buffer))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3776 (file-name-nondirectory (match-string 3))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3777 (with-current-buffer buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3778 (setq fringe-indicator-alist
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3779 (if (string-equal gdb-frame-number "0")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3780 nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3781 '((overlay-arrow . hollow-right-triangle))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3782 (set-marker gud-overlay-arrow-position position))))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3783 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3784 (if (re-search-forward " source language \\(\\S-+\\)\." nil t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3785 (setq gdb-current-language (match-string 1)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3786 (gdb-invalidate-assembler))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3787
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3788
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3789 ;; Code specific to GDB 6.4
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3790 (defconst gdb-source-file-regexp-1 "fullname=\"\\(.*?\\)\"")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3791
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3792 (defun gdb-set-gud-minor-mode-existing-buffers-1 ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3793 "Create list of source files for current GDB session.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3794 If buffers already exist for any of these files, `gud-minor-mode'
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3795 is set in them."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3796 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3797 (while (re-search-forward gdb-source-file-regexp-1 nil t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3798 (push (match-string 1) gdb-source-file-list))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3799 (dolist (buffer (buffer-list))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3800 (with-current-buffer buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3801 (when (member buffer-file-name gdb-source-file-list)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3802 (gdb-init-buffer))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3803 (gdb-force-mode-line-update
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3804 (propertize "ready" 'face font-lock-variable-name-face)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3805
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3806 ;; Used for -stack-info-frame but could be used for -stack-list-frames too.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3807 (defconst gdb-stack-list-frames-regexp
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3808 ".*?level=\"\\(.*?\\)\".*?,addr=\"\\(.*?\\)\".*?,func=\"\\(.*?\\)\",\
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3809 \\(?:.*?file=\".*?\".*?,fullname=\"\\(.*?\\)\".*?,line=\"\\(.*?\\)\".*?}\\|\
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3810 from=\"\\(.*?\\)\"\\)")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3811
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3812 (defun gdb-frame-handler-1 ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3813 (setq gdb-pending-triggers
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3814 (delq 'gdb-get-selected-frame gdb-pending-triggers))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3815 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3816 (when (re-search-forward gdb-stack-list-frames-regexp nil t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3817 (setq gdb-frame-number (match-string 1))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3818 (setq gdb-pc-address (match-string 2))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3819 (setq gdb-selected-frame (match-string 3))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3820 (if (gdb-get-buffer 'gdb-locals-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3821 (with-current-buffer (gdb-get-buffer 'gdb-locals-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3822 (setq mode-name (concat "Locals:" gdb-selected-frame))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3823 (if (gdb-get-buffer 'gdb-assembler-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3824 (with-current-buffer (gdb-get-buffer 'gdb-assembler-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3825 (setq mode-name (concat "Machine:" gdb-selected-frame)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3826 (if (and (match-string 4) (match-string 5) gud-overlay-arrow-position)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3827 (let ((buffer (marker-buffer gud-overlay-arrow-position))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3828 (position (marker-position gud-overlay-arrow-position)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3829 (when (and buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3830 (string-equal (file-name-nondirectory
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3831 (buffer-file-name buffer))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3832 (file-name-nondirectory (match-string 4))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3833 (with-current-buffer buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3834 (setq fringe-indicator-alist
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3835 (if (string-equal gdb-frame-number "0")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3836 nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3837 '((overlay-arrow . hollow-right-triangle))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3838 (set-marker gud-overlay-arrow-position position)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3839 (gdb-invalidate-assembler))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3840
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3841 ; Uses "-var-list-children --all-values". Needs GDB 6.4 onwards.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3842 (defun gdb-var-list-children-1 (varnum)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3843 (gdb-enqueue-input
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3844 (list
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3845 (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3846 (concat "server interpreter mi \"-var-list-children --all-values \\\""
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3847 varnum "\\\"\"\n")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3848 (concat "-var-list-children --all-values \"" varnum "\"\n"))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3849 `(lambda () (gdb-var-list-children-handler-1 ,varnum)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3850
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3851 (defun gdb-var-list-children-handler-1 (varnum)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3852 (let* ((var-list nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3853 (output (bindat-get-field (gdb-json-partial-output "child")))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3854 (children (bindat-get-field output 'children)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3855 (catch 'child-already-watched
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3856 (dolist (var gdb-var-list)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3857 (if (string-equal varnum (car var))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3858 (progn
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3859 ;; With dynamic varobjs numchild may have increased.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3860 (setcar (nthcdr 2 var) (bindat-get-field output 'numchild))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3861 (push var var-list)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3862 (dolist (child children)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3863 (let ((varchild (list (bindat-get-field child 'name)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3864 (bindat-get-field child 'exp)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3865 (bindat-get-field child 'numchild)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3866 (bindat-get-field child 'type)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3867 (bindat-get-field child 'value)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3868 nil
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3869 (bindat-get-field child 'has_more))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3870 (if (assoc (car varchild) gdb-var-list)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3871 (throw 'child-already-watched nil))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3872 (push varchild var-list))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3873 (push var var-list)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3874 (setq gdb-var-list (nreverse var-list))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3875 (gdb-speedbar-update))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3876
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3877 ; Uses "-var-update --all-values". Needs GDB 6.4 onwards.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3878 (defun gdb-var-update-1 ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3879 (if (not (member 'gdb-var-update gdb-pending-triggers))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3880 (progn
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3881 (gdb-enqueue-input
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3882 (list
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3883 (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3884 "server interpreter mi \"-var-update --all-values *\"\n"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3885 "-var-update --all-values *\n")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3886 'gdb-var-update-handler-1))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3887 (push 'gdb-var-update gdb-pending-triggers))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3888
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3889 (defun gdb-var-update-handler-1 ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3890 (let ((changelist (bindat-get-field (gdb-json-partial-output) 'changelist)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3891 (dolist (var gdb-var-list)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3892 (setcar (nthcdr 5 var) nil))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3893 (let ((temp-var-list gdb-var-list))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3894 (dolist (change changelist)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3895 (let* ((varnum (bindat-get-field change 'name))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3896 (var (assoc varnum gdb-var-list))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3897 (new-num (bindat-get-field change 'new_num_children)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3898 (when var
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3899 (let ((scope (bindat-get-field change 'in_scope))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3900 (has-more (bindat-get-field change 'has_more)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3901 (cond ((string-equal scope "false")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3902 (if gdb-delete-out-of-scope
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3903 (gdb-var-delete-1 var varnum)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3904 (setcar (nthcdr 5 var) 'out-of-scope)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3905 ((string-equal scope "true")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3906 (setcar (nthcdr 6 var) has-more)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3907 (when (and (or (not has-more)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3908 (string-equal has-more "0"))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3909 (not new-num)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3910 (string-equal (nth 2 var) "0"))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3911 (setcar (nthcdr 4 var)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3912 (bindat-get-field change 'value))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3913 (setcar (nthcdr 5 var) 'changed)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3914 ((string-equal scope "invalid")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3915 (gdb-var-delete-1 var varnum)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3916 (let ((var-list nil) var1
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3917 (children (bindat-get-field change 'new_children)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3918 (if new-num
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3919 (progn
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3920 (setq var1 (pop temp-var-list))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3921 (while var1
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3922 (if (string-equal varnum (car var1))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3923 (let ((new (string-to-number new-num))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3924 (previous (string-to-number (nth 2 var1))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3925 (setcar (nthcdr 2 var1) new-num)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3926 (push var1 var-list)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3927 (cond ((> new previous)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3928 ;; Add new children to list.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3929 (dotimes (dummy previous)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3930 (push (pop temp-var-list) var-list))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3931 (dolist (child children)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3932 (let ((varchild
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3933 (list (bindat-get-field child 'name)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3934 (bindat-get-field child 'exp)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3935 (bindat-get-field child 'numchild)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3936 (bindat-get-field child 'type)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3937 (bindat-get-field child 'value)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3938 'changed
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3939 (bindat-get-field child 'has_more))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3940 (push varchild var-list))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3941 ;; Remove deleted children from list.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3942 ((< new previous)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3943 (dotimes (dummy new)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3944 (push (pop temp-var-list) var-list))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3945 (dotimes (dummy (- previous new))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3946 (pop temp-var-list)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3947 (push var1 var-list))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3948 (setq var1 (pop temp-var-list)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3949 (setq gdb-var-list (nreverse var-list)))))))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3950 (setq gdb-pending-triggers
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3951 (delq 'gdb-var-update gdb-pending-triggers))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3952 (gdb-speedbar-update))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3953
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3954 ;; Registers buffer.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3955 ;;
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3956 (gdb-set-buffer-rules 'gdb-registers-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3957 'gdb-registers-buffer-name
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3958 'gdb-registers-mode)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3959
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3960 (def-gdb-auto-update-trigger gdb-invalidate-registers-1
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3961 (gdb-get-buffer 'gdb-registers-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3962 (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3963 "server interpreter mi \"-data-list-register-values x\"\n"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3964 "-data-list-register-values x\n")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3965 gdb-data-list-register-values-handler)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3966
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3967 (defconst gdb-data-list-register-values-regexp
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3968 "{.*?number=\"\\(.*?\\)\".*?,value=\"\\(.*?\\)\".*?}")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3969
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3970 (defun gdb-data-list-register-values-handler ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3971 (setq gdb-pending-triggers (delq 'gdb-invalidate-registers-1
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3972 gdb-pending-triggers))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3973 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3974 (if (re-search-forward gdb-error-regexp nil t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3975 (let ((err (match-string 1)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3976 (with-current-buffer (gdb-get-buffer 'gdb-registers-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3977 (let ((buffer-read-only nil))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3978 (erase-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3979 (put-text-property 0 (length err) 'face font-lock-warning-face err)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3980 (insert err)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3981 (goto-char (point-min)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3982 (let ((register-list (reverse gdb-register-names))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3983 (register nil) (register-string nil) (register-values nil))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3984 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3985 (while (re-search-forward gdb-data-list-register-values-regexp nil t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3986 (setq register (pop register-list))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3987 (setq register-string (concat register "\t" (match-string 2) "\n"))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3988 (if (member (match-string 1) gdb-changed-registers)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3989 (put-text-property 0 (length register-string)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3990 'face 'font-lock-warning-face
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3991 register-string))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3992 (setq register-values
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3993 (concat register-values register-string)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3994 (let ((buf (gdb-get-buffer 'gdb-registers-buffer)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3995 (with-current-buffer buf
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3996 (let* ((window (get-buffer-window buf 0))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3997 (start (window-start window))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3998 (p (if window (window-point window) (point)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3999 (buffer-read-only nil))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4000 (erase-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4001 (insert register-values)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4002 (if window
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4003 (progn
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4004 (set-window-start window start)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4005 (set-window-point window p))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4006 (goto-char p)))))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4007 (gdb-data-list-register-values-custom))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4008
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4009 (defun gdb-data-list-register-values-custom ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4010 (with-current-buffer (gdb-get-buffer 'gdb-registers-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4011 (save-excursion
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4012 (let ((buffer-read-only nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4013 start end)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4014 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4015 (while (< (point) (point-max))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4016 (setq start (line-beginning-position))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4017 (setq end (line-end-position))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4018 (when (looking-at "^[^\t]+")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4019 (unless (string-equal (match-string 0) "No registers.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4020 (put-text-property start (match-end 0)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4021 'face font-lock-variable-name-face)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4022 (add-text-properties start end
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4023 '(help-echo "mouse-2: edit value"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4024 mouse-face highlight))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4025 (forward-line 1))))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4026
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4027 ;; Needs GDB 6.4 onwards (used to fail with no stack).
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4028 (defun gdb-get-changed-registers ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4029 (if (and (gdb-get-buffer 'gdb-registers-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4030 (not (member 'gdb-get-changed-registers gdb-pending-triggers)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4031 (progn
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4032 (gdb-enqueue-input
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4033 (list
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4034 (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4035 "server interpreter mi -data-list-changed-registers\n"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4036 "-data-list-changed-registers\n")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4037 'gdb-get-changed-registers-handler))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4038 (push 'gdb-get-changed-registers gdb-pending-triggers))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4039
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4040 (defconst gdb-data-list-register-names-regexp "\"\\(.*?\\)\"")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4041
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4042 (defun gdb-get-changed-registers-handler ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4043 (setq gdb-pending-triggers
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4044 (delq 'gdb-get-changed-registers gdb-pending-triggers))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4045 (setq gdb-changed-registers nil)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4046 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4047 (while (re-search-forward gdb-data-list-register-names-regexp nil t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4048 (push (match-string 1) gdb-changed-registers)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4049
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4050
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4051 ;; Locals buffer.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4052 ;;
106697
ac408704629c lisp/*: Fix typos in docstrings and messages.
Juanma Barranquero <lekktu@gmail.com>
parents: 106680
diff changeset
4053 ;; uses "-stack-list-locals --simple-values". Needs GDB 6.1 onwards.
106678
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4054 (gdb-set-buffer-rules 'gdb-locals-buffer
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4055 'gdb-locals-buffer-name
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4056 'gdb-locals-mode)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4057
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4058 (def-gdb-auto-update-trigger gdb-invalidate-locals-1
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4059 (gdb-get-buffer 'gdb-locals-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4060 (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4061 "server interpreter mi -\"stack-list-locals --simple-values\"\n"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4062 "-stack-list-locals --simple-values\n")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4063 gdb-stack-list-locals-handler)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4064
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4065 (defconst gdb-stack-list-locals-regexp
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4066 "{.*?name=\"\\(.*?\\)\".*?,type=\"\\(.*?\\)\"")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4067
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4068 (defvar gdb-locals-watch-map-1
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4069 (let ((map (make-sparse-keymap)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4070 (suppress-keymap map)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4071 (define-key map "\r" 'gud-watch)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4072 (define-key map [mouse-2] 'gud-watch)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4073 map)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4074 "Keymap to create watch expression of a complex data type local variable.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4075
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4076 (defvar gdb-edit-locals-map-1
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4077 (let ((map (make-sparse-keymap)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4078 (suppress-keymap map)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4079 (define-key map "\r" 'gdb-edit-locals-value)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4080 (define-key map [mouse-2] 'gdb-edit-locals-value)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4081 map)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4082 "Keymap to edit value of a simple data type local variable.")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4083
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4084 (defun gdb-edit-locals-value (&optional event)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4085 "Assign a value to a variable displayed in the locals buffer."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4086 (interactive (list last-input-event))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4087 (save-excursion
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4088 (if event (posn-set-point (event-end event)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4089 (beginning-of-line)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4090 (let* ((var (current-word))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4091 (value (read-string (format "New value (%s): " var))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4092 (gdb-enqueue-input
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4093 (list (concat gdb-server-prefix "set variable " var " = " value "\n")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4094 'ignore)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4095
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4096 ;; Dont display values of arrays or structures.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4097 ;; These can be expanded using gud-watch.
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4098 (defun gdb-stack-list-locals-handler ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4099 (setq gdb-pending-triggers (delq 'gdb-invalidate-locals-1
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4100 gdb-pending-triggers))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4101 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4102 (if (re-search-forward gdb-error-regexp nil t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4103 (let ((err (match-string 1)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4104 (with-current-buffer (gdb-get-buffer 'gdb-locals-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4105 (let ((buffer-read-only nil))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4106 (erase-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4107 (insert err)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4108 (goto-char (point-min)))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4109 (let (local locals-list)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4110 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4111 (while (re-search-forward gdb-stack-list-locals-regexp nil t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4112 (let ((local (list (match-string 1)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4113 (match-string 2)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4114 nil)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4115 (if (looking-at ",value=\\(\".*\"\\).*?}")
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4116 (setcar (nthcdr 2 local) (read (match-string 1))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4117 (push local locals-list)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4118 (let ((buf (gdb-get-buffer 'gdb-locals-buffer)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4119 (and buf (with-current-buffer buf
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4120 (let* ((window (get-buffer-window buf 0))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4121 (start (window-start window))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4122 (p (if window (window-point window) (point)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4123 (buffer-read-only nil) (name) (value))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4124 (erase-buffer)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4125 (dolist (local locals-list)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4126 (setq name (car local))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4127 (setq value (nth 2 local))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4128 (if (or (not value)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4129 (string-match "^\\0x" value))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4130 (add-text-properties 0 (length name)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4131 `(mouse-face highlight
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4132 help-echo "mouse-2: create watch expression"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4133 local-map ,gdb-locals-watch-map-1)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4134 name)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4135 (add-text-properties 0 (length value)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4136 `(mouse-face highlight
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4137 help-echo "mouse-2: edit value"
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4138 local-map ,gdb-edit-locals-map-1)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4139 value))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4140 (insert
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4141 (concat name "\t" (nth 1 local)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4142 "\t" value "\n")))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4143 (if window
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4144 (progn
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4145 (set-window-start window start)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4146 (set-window-point window p))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4147 (goto-char p)))))))))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4148
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4149 (defun gdb-get-register-names ()
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4150 "Create a list of register names."
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4151 (goto-char (point-min))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4152 (while (re-search-forward gdb-data-list-register-names-regexp nil t)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4153 (push (match-string 1) gdb-register-names)))
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4154
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4155 (provide 'gdb-ui)
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4156
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4157 ;; arch-tag: e9fb00c5-74ef-469f-a088-37384caae352
3a8fd7717b30 This changeset reverts GDB Graphical Interface to use annotations. It incorporates features added
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
4158 ;;; gdb-ui.el ends here