Mercurial > emacs
annotate lisp/progmodes/gdb-mi.el @ 103852:4e37adb4a3f6
Kevin Ryde <user42 at zip.com.au>
(About PCL-CVS): Fix cross-reference.
author | Glenn Morris <rgm@gnu.org> |
---|---|
date | Sat, 11 Jul 2009 03:00:01 +0000 |
parents | d8f620ade0dc |
children | d9b3b49cf6d3 |
rev | line source |
---|---|
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1 ;;; gdb-mi.el --- User Interface for running GDB |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2 |
103563 | 3 ;; Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc. |
4 | |
5 ;; Author: Nick Roberts <nickrob@gnu.org> | |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
6 ;; Maintainer: FSF |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
7 ;; Keywords: unix, tools |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
8 |
103563 | 9 ;; This file is part of GNU Emacs. |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
10 |
103752
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
11 ;; Homepage: http://www.emacswiki.org/emacs/GDB-MI |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
12 |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
13 ;; GNU Emacs is free software: you can redistribute it and/or modify |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
14 ;; it under the terms of the GNU General Public License as published by |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
15 ;; the Free Software Foundation, either version 3 of the License, or |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
16 ;; (at your option) any later version. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
17 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
18 ;; GNU Emacs is distributed in the hope that it will be useful, |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
19 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
20 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
21 ;; GNU General Public License for more details. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
22 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
23 ;; You should have received a copy of the GNU General Public License |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
24 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
25 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
26 ;;; Credits: |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
27 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
28 ;; This file was written by by Nick Roberts following the general design |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
29 ;; used in gdb-ui.el for Emacs 22.1 - 23.1. It is currently being developed |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
30 ;; by Dmitry Dzhus <dima@sphinx.net.ru> as part of the Google Summer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
31 ;; of Code 2009 Project "Emacs GDB/MI migration". |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
32 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
33 ;;; Commentary: |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
34 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
35 ;; This mode acts as a graphical user interface to GDB. You can interact with |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
36 ;; GDB through the GUD buffer in the usual way, but there are also further |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
37 ;; buffers which control the execution and describe the state of your program. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
38 ;; It separates the input/output of your program from that of GDB and displays |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
39 ;; expressions and their current values in their own buffers. It also uses |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
40 ;; features of Emacs 21 such as the fringe/display margin for breakpoints, and |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
41 ;; the toolbar (see the GDB Graphical Interface section in the Emacs info |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
42 ;; manual). |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
43 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
44 ;; M-x gdb will start the debugger. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
45 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
46 ;; This file uses GDB/MI as the primary interface to GDB. It is still under |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
47 ;; development and is part of a process to migrate Emacs from annotations (as |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
48 ;; used in gdb-ui.el) to GDB/MI. It runs gdb with GDB/MI (-interp=mi) and |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
49 ;; access CLI using "-interpreter-exec console cli-command". This code works |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
50 ;; without gdb-ui.el and uses MI tokens instead of queues. Eventually MI |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
51 ;; should be asynchronous. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
52 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
53 ;; This mode will PARTLY WORK WITH RECENT GDB RELEASES (status in modeline |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
54 ;; doesn't update properly when execution commands are issued from GUD buffer) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
55 ;; and WORKS BEST when GDB runs asynchronously: maint set linux-async on. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
56 ;; |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
57 ;; You need development version of GDB 7.0 for the thread buffer to work. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
58 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
59 ;; This file replaces gdb-ui.el and is for development with GDB. Use the |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
60 ;; release branch of Emacs 22 for the latest version of gdb-ui.el. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
61 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
62 ;; Windows Platforms: |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
63 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
64 ;; If you are using Emacs and GDB on Windows you will need to flush the buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
65 ;; explicitly in your program if you want timely display of I/O in Emacs. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
66 ;; Alternatively you can make the output stream unbuffered, for example, by |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
67 ;; using a macro: |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
68 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
69 ;; #ifdef UNBUFFERED |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
70 ;; setvbuf (stdout, (char *) NULL, _IONBF, 0); |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
71 ;; #endif |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
72 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
73 ;; and compiling with -DUNBUFFERED while debugging. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
74 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
75 ;; If you are using Cygwin GDB and find that the source is not being displayed |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
76 ;; in Emacs when you step through it, possible solutions are to: |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
77 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
78 ;; 1) Use Cygwin X Windows and Cygwin Emacs. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
79 ;; (Since 22.1 Emacs builds under Cygwin.) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
80 ;; 2) Use MinGW GDB instead. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
81 ;; 3) Use cygwin-mount.el |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
82 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
83 ;;; Mac OSX: |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
84 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
85 ;; GDB in Emacs on Mac OSX works best with FSF GDB as Apple have made |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
86 ;; some changes to the version that they include as part of Mac OSX. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
87 ;; This requires GDB version 7.0 or later (estimated release date Aug 2009) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
88 ;; as earlier versions don not compile on Mac OSX. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
89 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
90 ;;; Known Bugs: |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
91 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
92 ;; 1) Stack buffer doesn't parse MI output if you stop in a routine without |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
93 ;; line information, e.g., a routine in libc (just a TODO item). |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
94 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
95 ;; TODO: |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
96 ;; 2) Watch windows to work with threads. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
97 ;; 3) Use treebuffer.el instead of the speedbar for watch-expressions? |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
98 ;; 4) Mark breakpoint locations on scroll-bar of source buffer? |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
99 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
100 ;;; Code: |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
101 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
102 (require 'gud) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
103 (require 'json) |
103749
f3eef698a354
gdb-mi.el: Now using bindat-get-field instead of fadr functions.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103748
diff
changeset
|
104 (require 'bindat) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
105 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
106 (defvar tool-bar-map) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
107 (defvar speedbar-initial-expansion-list-name) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
108 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
109 (defvar gdb-pc-address nil "Initialization for Assembler buffer. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
110 Set to \"main\" at start if `gdb-show-main' is t.") |
103748
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
111 (defvar gdb-memory-address "main") |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
112 (defvar gdb-memory-last-address nil |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
113 "Last successfully accessed memory address.") |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
114 (defvar gdb-memory-next-page nil |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
115 "Address of next memory page for program memory buffer.") |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
116 (defvar gdb-memory-prev-page nil |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
117 "Address of previous memory page for program memory buffer.") |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
118 |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
119 (defvar gdb-selected-frame nil) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
120 (defvar gdb-selected-file nil) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
121 (defvar gdb-selected-line nil) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
122 (defvar gdb-frame-number nil) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
123 (defvar gdb-current-language nil) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
124 (defvar gdb-var-list nil |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
125 "List of variables in watch window. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
126 Each element has the form (VARNUM EXPRESSION NUMCHILD TYPE VALUE STATUS) where |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
127 STATUS is nil (unchanged), `changed' or `out-of-scope'.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
128 (defvar gdb-main-file nil "Source file from which program execution begins.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
129 (defvar gdb-overlay-arrow-position nil) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
130 (defvar gdb-stack-position nil) |
103751
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
131 (defvar gdb-breakpoints-list nil |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
132 "List of breakpoints. |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
133 |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
134 `gdb-get-field' is used to access breakpoints data stored in this |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
135 variable. Each element contains the same fields as \"body\" |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
136 member of \"-break-info\".") |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
137 (defvar gdb-location-alist nil |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
138 "Alist of breakpoint numbers and full filenames. Only used for files that |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
139 Emacs can't find.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
140 (defvar gdb-active-process nil |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
141 "GUD tooltips display variable values when t, and macro definitions otherwise.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
142 (defvar gdb-error "Non-nil when GDB is reporting an error.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
143 (defvar gdb-macro-info nil |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
144 "Non-nil if GDB knows that the inferior includes preprocessor macro info.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
145 (defvar gdb-register-names nil "List of register names.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
146 (defvar gdb-changed-registers nil |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
147 "List of changed register numbers (strings).") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
148 (defvar gdb-buffer-fringe-width nil) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
149 (defvar gdb-last-command nil) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
150 (defvar gdb-prompt-name nil) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
151 (defvar gdb-token-number 0) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
152 (defvar gdb-handler-alist '()) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
153 (defvar gdb-handler-number nil) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
154 (defvar gdb-source-file-list nil |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
155 "List of source files for the current executable.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
156 (defvar gdb-first-done-or-error t) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
157 (defvar gdb-source-window nil) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
158 (defvar gdb-inferior-status nil) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
159 (defvar gdb-continuation nil) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
160 (defvar gdb-filter-output nil |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
161 "Message to be shown in GUD console. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
162 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
163 This variable is updated in `gdb-done-or-error' and returned by |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
164 `gud-gdbmi-marker-filter'.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
165 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
166 (defvar gdb-buffer-type nil |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
167 "One of the symbols bound in `gdb-buffer-rules'.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
168 (make-variable-buffer-local 'gdb-buffer-type) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
169 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
170 (defvar gdb-output-sink 'nil |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
171 "The disposition of the output of the current gdb command. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
172 Possible values are these symbols: |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
173 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
174 `user' -- gdb output should be copied to the GUD buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
175 for the user to see. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
176 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
177 `emacs' -- output should be collected in the partial-output-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
178 for subsequent processing by a command. This is the |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
179 disposition of output generated by commands that |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
180 gdb mode sends to gdb on its own behalf.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
181 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
182 (defvar gdb-pending-triggers '() |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
183 "A list of trigger functions that have run later than their output handlers.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
184 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
185 (defcustom gdb-debug-log-max 128 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
186 "Maximum size of `gdb-debug-log'. If nil, size is unlimited." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
187 :group 'gdb |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
188 :type '(choice (integer :tag "Number of elements") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
189 (const :tag "Unlimited" nil)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
190 :version "22.1") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
191 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
192 (defvar gdb-debug-log nil |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
193 "List of commands sent to and replies received from GDB. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
194 Most recent commands are listed first. This list stores only the last |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
195 `gdb-debug-log-max' values. This variable is used to debug GDB-MI.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
196 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
197 ;;;###autoload |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
198 (defcustom gdb-enable-debug nil |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
199 "Non-nil means record the process input and output in `gdb-debug-log'." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
200 :type 'boolean |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
201 :group 'gdb |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
202 :version "22.1") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
203 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
204 (defcustom gdb-cpp-define-alist-program "gcc -E -dM -" |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
205 "Shell command for generating a list of defined macros in a source file. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
206 This list is used to display the #define directive associated |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
207 with an identifier as a tooltip. It works in a debug session with |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
208 GDB, when `gud-tooltip-mode' is t. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
209 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
210 Set `gdb-cpp-define-alist-flags' for any include paths or |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
211 predefined macros." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
212 :type 'string |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
213 :group 'gdb |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
214 :version "22.1") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
215 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
216 (defcustom gdb-cpp-define-alist-flags "" |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
217 "Preprocessor flags for `gdb-cpp-define-alist-program'." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
218 :type 'string |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
219 :group 'gdb |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
220 :version "22.1") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
221 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
222 (defcustom gdb-create-source-file-list t |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
223 "Non-nil means create a list of files from which the executable was built. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
224 Set this to nil if the GUD buffer displays \"initializing...\" in the mode |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
225 line for a long time when starting, possibly because your executable was |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
226 built from a large number of files. This allows quicker initialization |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
227 but means that these files are not automatically enabled for debugging, |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
228 e.g., you won't be able to click in the fringe to set a breakpoint until |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
229 execution has already stopped there." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
230 :type 'boolean |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
231 :group 'gdb |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
232 :version "23.1") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
233 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
234 (defcustom gdb-show-main nil |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
235 "Non-nil means display source file containing the main routine at startup. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
236 Also display the main routine in the disassembly buffer if present." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
237 :type 'boolean |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
238 :group 'gdb |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
239 :version "22.1") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
240 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
241 ; Note: This mode requires a separate buffer for inferior IO. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
242 (defconst gdb-use-separate-io-buffer t) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
243 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
244 (defun gdb-force-mode-line-update (status) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
245 (let ((buffer gud-comint-buffer)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
246 (if (and buffer (buffer-name buffer)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
247 (with-current-buffer buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
248 (setq mode-line-process |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
249 (format ":%s [%s]" |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
250 (process-status (get-buffer-process buffer)) status)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
251 ;; Force mode line redisplay soon. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
252 (force-mode-line-update))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
253 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
254 (defun gdb-enable-debug (arg) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
255 "Toggle logging of transaction between Emacs and Gdb. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
256 The log is stored in `gdb-debug-log' as an alist with elements |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
257 whose cons is send, send-item or recv and whose cdr is the string |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
258 being transferred. This list may grow up to a size of |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
259 `gdb-debug-log-max' after which the oldest element (at the end of |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
260 the list) is deleted every time a new one is added (at the front)." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
261 (interactive "P") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
262 (setq gdb-enable-debug |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
263 (if (null arg) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
264 (not gdb-enable-debug) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
265 (> (prefix-numeric-value arg) 0))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
266 (message (format "Logging of transaction %sabled" |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
267 (if gdb-enable-debug "en" "dis")))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
268 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
269 (defun gdb-find-watch-expression () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
270 (let* ((var (nth (- (line-number-at-pos (point)) 2) gdb-var-list)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
271 (varnum (car var)) expr array) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
272 (string-match "\\(var[0-9]+\\)\\.\\(.*\\)" varnum) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
273 (let ((var1 (assoc (match-string 1 varnum) gdb-var-list)) var2 varnumlet |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
274 (component-list (split-string (match-string 2 varnum) "\\." t))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
275 (setq expr (nth 1 var1)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
276 (setq varnumlet (car var1)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
277 (dolist (component component-list) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
278 (setq var2 (assoc varnumlet gdb-var-list)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
279 (setq expr (concat expr |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
280 (if (string-match ".*\\[[0-9]+\\]$" (nth 3 var2)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
281 (concat "[" component "]") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
282 (concat "." component)))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
283 (setq varnumlet (concat varnumlet "." component))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
284 expr))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
285 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
286 (defvar gdb-locals-font-lock-keywords |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
287 '( |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
288 ;; var = type value |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
289 ( "\\(^\\(\\sw\\|[_.]\\)+\\)\t+\\(\\(\\sw\\|[_.]\\)+\\)" |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
290 (1 font-lock-variable-name-face) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
291 (3 font-lock-type-face)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
292 ) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
293 "Font lock keywords used in `gdb-local-mode'.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
294 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
295 ;;;###autoload |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
296 (defun gdb (command-line) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
297 "Run gdb on program FILE in buffer *gud-FILE*. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
298 The directory containing FILE becomes the initial working directory |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
299 and source-file directory for your debugger. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
300 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
301 If `gdb-many-windows' is nil (the default value) then gdb just |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
302 pops up the GUD buffer unless `gdb-show-main' is t. In this case |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
303 it starts with two windows: one displaying the GUD buffer and the |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
304 other with the source file with the main routine of the inferior. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
305 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
306 If `gdb-many-windows' is t, regardless of the value of |
103779
d8f620ade0dc
(gdb): Remove description of
Nick Roberts <nickrob@snap.net.nz>
parents:
103759
diff
changeset
|
307 `gdb-show-main', the layout below will appear. Keybindings are |
d8f620ade0dc
(gdb): Remove description of
Nick Roberts <nickrob@snap.net.nz>
parents:
103759
diff
changeset
|
308 shown in some of the buffers. |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
309 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
310 Watch expressions appear in the speedbar/slowbar. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
311 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
312 The following commands help control operation : |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
313 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
314 `gdb-many-windows' - Toggle the number of windows gdb uses. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
315 `gdb-restore-windows' - To restore the window layout. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
316 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
317 See Info node `(emacs)GDB Graphical Interface' for a more |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
318 detailed description of this mode. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
319 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
320 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
321 +----------------------------------------------------------------------+ |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
322 | GDB Toolbar | |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
323 +-----------------------------------+----------------------------------+ |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
324 | GUD buffer (I/O of GDB) | Locals buffer | |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
325 | | | |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
326 | | | |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
327 | | | |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
328 +-----------------------------------+----------------------------------+ |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
329 | Source buffer | I/O buffer (of debugged program) | |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
330 | | (comint-mode) | |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
331 | | | |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
332 | | | |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
333 | | | |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
334 | | | |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
335 | | | |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
336 | | | |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
337 +-----------------------------------+----------------------------------+ |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
338 | Stack buffer | Breakpoints buffer | |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
339 | RET gdb-frames-select | SPC gdb-toggle-breakpoint | |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
340 | | RET gdb-goto-breakpoint | |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
341 | | D gdb-delete-breakpoint | |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
342 +-----------------------------------+----------------------------------+" |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
343 ;; |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
344 (interactive (list (gud-query-cmdline 'gdb))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
345 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
346 (when (and gud-comint-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
347 (buffer-name gud-comint-buffer) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
348 (get-buffer-process gud-comint-buffer) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
349 (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
350 (gdb-restore-windows) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
351 (error |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
352 "Multiple debugging requires restarting in text command mode")) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
353 ;; |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
354 (gud-common-init command-line nil 'gud-gdbmi-marker-filter) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
355 (set (make-local-variable 'gud-minor-mode) 'gdbmi) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
356 (setq comint-input-sender 'gdb-send) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
357 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
358 (gud-def gud-tbreak "tbreak %f:%l" "\C-t" |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
359 "Set temporary breakpoint at current line.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
360 (gud-def gud-jump |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
361 (progn (gud-call "tbreak %f:%l") (gud-call "jump %f:%l")) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
362 "\C-j" "Set execution address to current line.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
363 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
364 (gud-def gud-up "up %p" "<" "Up N stack frames (numeric arg).") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
365 (gud-def gud-down "down %p" ">" "Down N stack frames (numeric arg).") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
366 (gud-def gud-print "print %e" "\C-p" "Evaluate C expression at point.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
367 (gud-def gud-pstar "print* %e" nil |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
368 "Evaluate C dereferenced pointer expression at point.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
369 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
370 (gud-def gud-step "-exec-step %p" "\C-s" |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
371 "Step one source line with display.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
372 (gud-def gud-stepi "-exec-step-instruction %p" "\C-i" |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
373 "Step one instruction with display.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
374 (gud-def gud-next "-exec-next %p" "\C-n" |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
375 "Step one line (skip functions).") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
376 (gud-def gud-nexti "nexti %p" nil |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
377 "Step one instruction (skip functions).") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
378 (gud-def gud-cont "-exec-continue" "\C-r" |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
379 "Continue with display.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
380 (gud-def gud-finish "-exec-finish" "\C-f" |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
381 "Finish executing current function.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
382 (gud-def gud-run "-exec-run" nil "Runn the program.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
383 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
384 (local-set-key "\C-i" 'gud-gdb-complete-command) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
385 (setq gdb-first-prompt t) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
386 (setq gud-running nil) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
387 (gdb-update) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
388 (run-hooks 'gdb-mode-hook)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
389 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
390 (defun gdb-init-1 () |
103752
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
391 (gud-def gud-break (if (not (string-match "Disassembly" mode-name)) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
392 (gud-call "break %f:%l" arg) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
393 (save-excursion |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
394 (beginning-of-line) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
395 (forward-char 2) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
396 (gud-call "break *%a" arg))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
397 "\C-b" "Set breakpoint at current line or address.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
398 ;; |
103752
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
399 (gud-def gud-remove (if (not (string-match "Disassembly" mode-name)) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
400 (gud-call "clear %f:%l" arg) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
401 (save-excursion |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
402 (beginning-of-line) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
403 (forward-char 2) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
404 (gud-call "clear *%a" arg))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
405 "\C-d" "Remove breakpoint at current line or address.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
406 ;; |
103752
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
407 (gud-def gud-until (if (not (string-match "Disassembly" mode-name)) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
408 (gud-call "-exec-until %f:%l" arg) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
409 (save-excursion |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
410 (beginning-of-line) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
411 (forward-char 2) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
412 (gud-call "-exec-until *%a" arg))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
413 "\C-u" "Continue to current line or address.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
414 ;; |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
415 (gud-def |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
416 gud-go (gud-call (if gdb-active-process "-exec-continue" "-exec-run") arg) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
417 nil "Start or continue execution.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
418 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
419 ;; For debugging Emacs only. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
420 (gud-def gud-pp |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
421 (gud-call |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
422 (concat |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
423 "pp1 " (if (eq (buffer-local-value |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
424 'major-mode (window-buffer)) 'speedbar-mode) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
425 (gdb-find-watch-expression) "%e")) arg) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
426 nil "Print the Emacs s-expression.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
427 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
428 (define-key gud-minor-mode-map [left-margin mouse-1] |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
429 'gdb-mouse-set-clear-breakpoint) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
430 (define-key gud-minor-mode-map [left-fringe mouse-1] |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
431 'gdb-mouse-set-clear-breakpoint) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
432 (define-key gud-minor-mode-map [left-margin C-mouse-1] |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
433 'gdb-mouse-toggle-breakpoint-margin) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
434 (define-key gud-minor-mode-map [left-fringe C-mouse-1] |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
435 'gdb-mouse-toggle-breakpoint-fringe) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
436 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
437 (define-key gud-minor-mode-map [left-margin drag-mouse-1] |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
438 'gdb-mouse-until) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
439 (define-key gud-minor-mode-map [left-fringe drag-mouse-1] |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
440 'gdb-mouse-until) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
441 (define-key gud-minor-mode-map [left-margin mouse-3] |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
442 'gdb-mouse-until) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
443 (define-key gud-minor-mode-map [left-fringe mouse-3] |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
444 'gdb-mouse-until) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
445 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
446 (define-key gud-minor-mode-map [left-margin C-drag-mouse-1] |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
447 'gdb-mouse-jump) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
448 (define-key gud-minor-mode-map [left-fringe C-drag-mouse-1] |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
449 'gdb-mouse-jump) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
450 (define-key gud-minor-mode-map [left-fringe C-mouse-3] |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
451 'gdb-mouse-jump) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
452 (define-key gud-minor-mode-map [left-margin C-mouse-3] |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
453 'gdb-mouse-jump) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
454 ;; |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
455 ;; (re-)initialise |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
456 (setq gdb-pc-address (if gdb-show-main "main" nil)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
457 (setq gdb-selected-frame nil |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
458 gdb-frame-number nil |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
459 gdb-var-list nil |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
460 gdb-pending-triggers nil |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
461 gdb-output-sink 'user |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
462 gdb-location-alist nil |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
463 gdb-source-file-list nil |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
464 gdb-last-command nil |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
465 gdb-token-number 0 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
466 gdb-handler-alist '() |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
467 gdb-handler-number nil |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
468 gdb-prompt-name nil |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
469 gdb-first-done-or-error t |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
470 gdb-buffer-fringe-width (car (window-fringes)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
471 gdb-debug-log nil |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
472 gdb-source-window nil |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
473 gdb-inferior-status nil |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
474 gdb-continuation nil) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
475 ;; |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
476 (setq gdb-buffer-type 'gdbmi) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
477 ;; |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
478 (gdb-force-mode-line-update |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
479 (propertize "initializing..." 'face font-lock-variable-name-face)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
480 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
481 (when gdb-use-separate-io-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
482 (gdb-get-buffer-create 'gdb-inferior-io) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
483 (gdb-clear-inferior-io) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
484 (set-process-filter (get-process "gdb-inferior") 'gdb-inferior-filter) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
485 (gdb-input |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
486 ;; Needs GDB 6.4 onwards |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
487 (list (concat "-inferior-tty-set " |
103755
a1a6e341fa6e
* progmodes/gdb-mi.el (gdb-input): Add trailing newline to command.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103754
diff
changeset
|
488 (process-tty-name (get-process "gdb-inferior"))) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
489 'ignore))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
490 (if (eq window-system 'w32) |
103755
a1a6e341fa6e
* progmodes/gdb-mi.el (gdb-input): Add trailing newline to command.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103754
diff
changeset
|
491 (gdb-input (list "-gdb-set new-console off" 'ignore))) |
a1a6e341fa6e
* progmodes/gdb-mi.el (gdb-input): Add trailing newline to command.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103754
diff
changeset
|
492 (gdb-input (list "-gdb-set height 0" 'ignore)) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
493 ;; find source file and compilation directory here |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
494 (gdb-input |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
495 ; Needs GDB 6.2 onwards. |
103755
a1a6e341fa6e
* progmodes/gdb-mi.el (gdb-input): Add trailing newline to command.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103754
diff
changeset
|
496 (list "-file-list-exec-source-files" 'gdb-get-source-file-list)) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
497 (if gdb-create-source-file-list |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
498 (gdb-input |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
499 ; Needs GDB 6.0 onwards. |
103755
a1a6e341fa6e
* progmodes/gdb-mi.el (gdb-input): Add trailing newline to command.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103754
diff
changeset
|
500 (list "-file-list-exec-source-file" 'gdb-get-source-file))) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
501 (gdb-input |
103755
a1a6e341fa6e
* progmodes/gdb-mi.el (gdb-input): Add trailing newline to command.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103754
diff
changeset
|
502 (list "-gdb-show prompt" 'gdb-get-prompt))) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
503 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
504 (defvar gdb-define-alist nil "Alist of #define directives for GUD tooltips.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
505 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
506 (defun gdb-create-define-alist () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
507 "Create an alist of #define directives for GUD tooltips." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
508 (let* ((file (buffer-file-name)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
509 (output |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
510 (with-output-to-string |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
511 (with-current-buffer standard-output |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
512 (and file |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
513 (file-exists-p file) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
514 ;; call-process doesn't work with remote file names. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
515 (not (file-remote-p default-directory)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
516 (call-process shell-file-name file |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
517 (list t nil) nil "-c" |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
518 (concat gdb-cpp-define-alist-program " " |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
519 gdb-cpp-define-alist-flags)))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
520 (define-list (split-string output "\n" t)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
521 (name)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
522 (setq gdb-define-alist nil) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
523 (dolist (define define-list) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
524 (setq name (nth 1 (split-string define "[( ]"))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
525 (push (cons name define) gdb-define-alist)))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
526 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
527 (declare-function tooltip-show "tooltip" (text &optional use-echo-area)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
528 (defvar tooltip-use-echo-area) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
529 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
530 (defun gdb-tooltip-print (expr) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
531 (tooltip-show |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
532 (with-current-buffer (gdb-get-buffer 'gdb-partial-output-buffer) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
533 (goto-char (point-min)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
534 (let ((string |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
535 (if (search-forward "=" nil t) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
536 (concat expr (buffer-substring (- (point) 2) (point-max))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
537 (buffer-string)))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
538 ;; remove newline for gud-tooltip-echo-area |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
539 (substring string 0 (- (length string) 1)))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
540 (or gud-tooltip-echo-area tooltip-use-echo-area |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
541 (not (display-graphic-p))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
542 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
543 ;; If expr is a macro for a function don't print because of possible dangerous |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
544 ;; side-effects. Also printing a function within a tooltip generates an |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
545 ;; unexpected starting annotation (phase error). |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
546 (defun gdb-tooltip-print-1 (expr) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
547 (with-current-buffer (gdb-get-buffer 'gdb-partial-output-buffer) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
548 (goto-char (point-min)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
549 (if (search-forward "expands to: " nil t) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
550 (unless (looking-at "\\S-+.*(.*).*") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
551 (gdb-input |
103755
a1a6e341fa6e
* progmodes/gdb-mi.el (gdb-input): Add trailing newline to command.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103754
diff
changeset
|
552 (list (concat "print " expr) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
553 `(lambda () (gdb-tooltip-print ,expr)))))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
554 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
555 (defun gdb-init-buffer () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
556 (set (make-local-variable 'gud-minor-mode) 'gdbmi) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
557 (set (make-local-variable 'tool-bar-map) gud-tool-bar-map) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
558 (when gud-tooltip-mode |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
559 (make-local-variable 'gdb-define-alist) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
560 (gdb-create-define-alist) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
561 (add-hook 'after-save-hook 'gdb-create-define-alist nil t))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
562 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
563 (defmacro gdb-if-arrow (arrow-position &rest body) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
564 `(if ,arrow-position |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
565 (let ((buffer (marker-buffer ,arrow-position)) (line)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
566 (if (equal buffer (window-buffer (posn-window end))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
567 (with-current-buffer buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
568 (when (or (equal start end) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
569 (equal (posn-point start) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
570 (marker-position ,arrow-position))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
571 ,@body)))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
572 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
573 (defun gdb-mouse-until (event) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
574 "Continue running until a source line past the current line. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
575 The destination source line can be selected either by clicking |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
576 with mouse-3 on the fringe/margin or dragging the arrow |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
577 with mouse-1 (default bindings)." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
578 (interactive "e") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
579 (let ((start (event-start event)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
580 (end (event-end event))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
581 (gdb-if-arrow gud-overlay-arrow-position |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
582 (setq line (line-number-at-pos (posn-point end))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
583 (gud-call (concat "until " (number-to-string line)))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
584 (gdb-if-arrow gdb-overlay-arrow-position |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
585 (save-excursion |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
586 (goto-line (line-number-at-pos (posn-point end))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
587 (forward-char 2) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
588 (gud-call (concat "until *%a")))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
589 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
590 (defun gdb-mouse-jump (event) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
591 "Set execution address/line. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
592 The destination source line can be selected either by clicking with C-mouse-3 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
593 on the fringe/margin or dragging the arrow with C-mouse-1 (default bindings). |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
594 Unlike `gdb-mouse-until' the destination address can be before the current |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
595 line, and no execution takes place." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
596 (interactive "e") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
597 (let ((start (event-start event)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
598 (end (event-end event))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
599 (gdb-if-arrow gud-overlay-arrow-position |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
600 (setq line (line-number-at-pos (posn-point end))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
601 (progn |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
602 (gud-call (concat "tbreak " (number-to-string line))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
603 (gud-call (concat "jump " (number-to-string line))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
604 (gdb-if-arrow gdb-overlay-arrow-position |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
605 (save-excursion |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
606 (goto-line (line-number-at-pos (posn-point end))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
607 (forward-char 2) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
608 (progn |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
609 (gud-call (concat "tbreak *%a")) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
610 (gud-call (concat "jump *%a"))))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
611 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
612 (defcustom gdb-show-changed-values t |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
613 "If non-nil change the face of out of scope variables and changed values. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
614 Out of scope variables are suppressed with `shadow' face. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
615 Changed values are highlighted with the face `font-lock-warning-face'." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
616 :type 'boolean |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
617 :group 'gdb |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
618 :version "22.1") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
619 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
620 (defcustom gdb-max-children 40 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
621 "Maximum number of children before expansion requires confirmation." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
622 :type 'integer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
623 :group 'gdb |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
624 :version "22.1") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
625 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
626 (defcustom gdb-delete-out-of-scope t |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
627 "If non-nil delete watch expressions automatically when they go out of scope." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
628 :type 'boolean |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
629 :group 'gdb |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
630 :version "22.2") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
631 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
632 (defcustom gdb-speedbar-auto-raise nil |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
633 "If non-nil raise speedbar every time display of watch expressions is\ |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
634 updated." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
635 :type 'boolean |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
636 :group 'gdb |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
637 :version "22.1") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
638 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
639 (defcustom gdb-use-colon-colon-notation nil |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
640 "If non-nil use FUN::VAR format to display variables in the speedbar." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
641 :type 'boolean |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
642 :group 'gdb |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
643 :version "22.1") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
644 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
645 (defun gdb-speedbar-auto-raise (arg) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
646 "Toggle automatic raising of the speedbar for watch expressions. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
647 With prefix argument ARG, automatically raise speedbar if ARG is |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
648 positive, otherwise don't automatically raise it." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
649 (interactive "P") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
650 (setq gdb-speedbar-auto-raise |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
651 (if (null arg) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
652 (not gdb-speedbar-auto-raise) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
653 (> (prefix-numeric-value arg) 0))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
654 (message (format "Auto raising %sabled" |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
655 (if gdb-speedbar-auto-raise "en" "dis")))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
656 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
657 (define-key gud-minor-mode-map "\C-c\C-w" 'gud-watch) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
658 (define-key global-map (concat gud-key-prefix "\C-w") 'gud-watch) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
659 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
660 (declare-function tooltip-identifier-from-point "tooltip" (point)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
661 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
662 (defun gud-watch (&optional arg event) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
663 "Watch expression at point. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
664 With arg, enter name of variable to be watched in the minibuffer." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
665 (interactive (list current-prefix-arg last-input-event)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
666 (let ((minor-mode (buffer-local-value 'gud-minor-mode gud-comint-buffer))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
667 (if (eq minor-mode 'gdbmi) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
668 (progn |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
669 (if event (posn-set-point (event-end event))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
670 (require 'tooltip) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
671 (save-selected-window |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
672 (let ((expr |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
673 (if arg |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
674 (completing-read "Name of variable: " |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
675 'gud-gdb-complete-command) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
676 (if (and transient-mark-mode mark-active) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
677 (buffer-substring (region-beginning) (region-end)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
678 (concat (if (eq major-mode 'gdb-registers-mode) "$") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
679 (tooltip-identifier-from-point (point))))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
680 (set-text-properties 0 (length expr) nil expr) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
681 (gdb-input |
103755
a1a6e341fa6e
* progmodes/gdb-mi.el (gdb-input): Add trailing newline to command.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103754
diff
changeset
|
682 (list (concat"-var-create - * " expr "") |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
683 `(lambda () (gdb-var-create-handler ,expr))))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
684 (message "gud-watch is a no-op in this mode.")))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
685 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
686 (defconst gdb-var-create-regexp |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
687 "name=\"\\(.*?\\)\",.*numchild=\"\\(.*?\\)\",\\(?:.*value=\\(\".*\"\\),\\)?.*type=\"\\(.*?\\)\"") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
688 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
689 (defun gdb-var-create-handler (expr) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
690 (goto-char (point-min)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
691 (if (re-search-forward gdb-var-create-regexp nil t) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
692 (let ((var (list |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
693 (match-string 1) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
694 (if (and (string-equal gdb-current-language "c") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
695 gdb-use-colon-colon-notation gdb-selected-frame) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
696 (setq expr (concat gdb-selected-frame "::" expr)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
697 expr) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
698 (match-string 2) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
699 (match-string 4) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
700 (if (match-string 3) (read (match-string 3))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
701 nil))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
702 (push var gdb-var-list) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
703 (speedbar 1) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
704 (unless (string-equal |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
705 speedbar-initial-expansion-list-name "GUD") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
706 (speedbar-change-initial-expansion-list "GUD")) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
707 (gdb-input |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
708 (list |
103755
a1a6e341fa6e
* progmodes/gdb-mi.el (gdb-input): Add trailing newline to command.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103754
diff
changeset
|
709 (concat "-var-evaluate-expression " (car var)) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
710 `(lambda () (gdb-var-evaluate-expression-handler |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
711 ,(car var) nil))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
712 (message-box "No symbol \"%s\" in current context." expr))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
713 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
714 (defun gdb-speedbar-update () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
715 (when (and (boundp 'speedbar-frame) (frame-live-p speedbar-frame) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
716 (not (member 'gdb-speedbar-timer gdb-pending-triggers))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
717 ;; Dummy command to update speedbar even when idle. |
103755
a1a6e341fa6e
* progmodes/gdb-mi.el (gdb-input): Add trailing newline to command.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103754
diff
changeset
|
718 (gdb-input (list "-environment-pwd" 'gdb-speedbar-timer-fn)) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
719 ;; Keep gdb-pending-triggers non-nil till end. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
720 (push 'gdb-speedbar-timer gdb-pending-triggers))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
721 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
722 (defun gdb-speedbar-timer-fn () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
723 (if gdb-speedbar-auto-raise |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
724 (raise-frame speedbar-frame)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
725 (setq gdb-pending-triggers |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
726 (delq 'gdb-speedbar-timer gdb-pending-triggers)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
727 (speedbar-timer-fn)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
728 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
729 (defun gdb-var-evaluate-expression-handler (varnum changed) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
730 (goto-char (point-min)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
731 (re-search-forward ".*value=\\(\".*\"\\)" nil t) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
732 (let ((var (assoc varnum gdb-var-list))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
733 (when var |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
734 (if changed (setcar (nthcdr 5 var) 'changed)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
735 (setcar (nthcdr 4 var) (read (match-string 1))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
736 (gdb-speedbar-update)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
737 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
738 ; Uses "-var-list-children --all-values". Needs GDB 6.1 onwards. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
739 (defun gdb-var-list-children (varnum) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
740 (gdb-input |
103755
a1a6e341fa6e
* progmodes/gdb-mi.el (gdb-input): Add trailing newline to command.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103754
diff
changeset
|
741 (list (concat "-var-update " varnum) 'ignore)) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
742 (gdb-input |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
743 (list (concat "-var-list-children --all-values " |
103755
a1a6e341fa6e
* progmodes/gdb-mi.el (gdb-input): Add trailing newline to command.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103754
diff
changeset
|
744 varnum) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
745 `(lambda () (gdb-var-list-children-handler ,varnum))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
746 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
747 (defconst gdb-var-list-children-regexp |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
748 "child={.*?name=\"\\(.+?\\)\".*?,exp=\"\\(.+?\\)\".*?,\ |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
749 numchild=\"\\(.+?\\)\".*?,value=\\(\".*?\"\\).*?,type=\"\\(.+?\\)\".*?}") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
750 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
751 (defun gdb-var-list-children-handler (varnum) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
752 (goto-char (point-min)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
753 (let ((var-list nil)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
754 (catch 'child-already-watched |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
755 (dolist (var gdb-var-list) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
756 (if (string-equal varnum (car var)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
757 (progn |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
758 (push var var-list) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
759 (while (re-search-forward gdb-var-list-children-regexp nil t) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
760 (let ((varchild (list (match-string 1) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
761 (match-string 2) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
762 (match-string 3) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
763 (match-string 5) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
764 (read (match-string 4)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
765 nil))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
766 (if (assoc (car varchild) gdb-var-list) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
767 (throw 'child-already-watched nil)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
768 (push varchild var-list)))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
769 (push var var-list))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
770 (setq gdb-var-list (nreverse var-list)))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
771 (gdb-speedbar-update)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
772 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
773 (defun gdb-var-set-format (format) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
774 "Set the output format for a variable displayed in the speedbar." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
775 (let* ((var (nth (- (count-lines (point-min) (point)) 2) gdb-var-list)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
776 (varnum (car var))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
777 (gdb-input |
103755
a1a6e341fa6e
* progmodes/gdb-mi.el (gdb-input): Add trailing newline to command.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103754
diff
changeset
|
778 (list (concat "-var-set-format " varnum " " format) 'ignore)) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
779 (gdb-var-update))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
780 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
781 (defun gdb-var-delete-1 (varnum) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
782 (gdb-input |
103755
a1a6e341fa6e
* progmodes/gdb-mi.el (gdb-input): Add trailing newline to command.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103754
diff
changeset
|
783 (list (concat "-var-delete " varnum) 'ignore)) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
784 (setq gdb-var-list (delq var gdb-var-list)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
785 (dolist (varchild gdb-var-list) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
786 (if (string-match (concat (car var) "\\.") (car varchild)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
787 (setq gdb-var-list (delq varchild gdb-var-list))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
788 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
789 (defun gdb-var-delete () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
790 "Delete watch expression at point from the speedbar." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
791 (interactive) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
792 (let ((text (speedbar-line-text))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
793 (string-match "\\(\\S-+\\)" text) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
794 (let* ((var (nth (- (count-lines (point-min) (point)) 2) gdb-var-list)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
795 (varnum (car var))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
796 (if (string-match "\\." (car var)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
797 (message-box "Can only delete a root expression") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
798 (gdb-var-delete-1 varnum))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
799 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
800 (defun gdb-var-delete-children (varnum) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
801 "Delete children of variable object at point from the speedbar." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
802 (gdb-input |
103755
a1a6e341fa6e
* progmodes/gdb-mi.el (gdb-input): Add trailing newline to command.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103754
diff
changeset
|
803 (list (concat "-var-delete -c " varnum) 'ignore))) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
804 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
805 (defun gdb-edit-value (text token indent) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
806 "Assign a value to a variable displayed in the speedbar." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
807 (let* ((var (nth (- (count-lines (point-min) (point)) 2) gdb-var-list)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
808 (varnum (car var)) (value)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
809 (setq value (read-string "New value: ")) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
810 (gdb-input |
103755
a1a6e341fa6e
* progmodes/gdb-mi.el (gdb-input): Add trailing newline to command.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103754
diff
changeset
|
811 (list (concat "-var-assign " varnum " " value) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
812 `(lambda () (gdb-edit-value-handler ,value)))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
813 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
814 (defconst gdb-error-regexp "\\^error,msg=\\(\".+\"\\)") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
815 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
816 (defun gdb-edit-value-handler (value) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
817 (goto-char (point-min)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
818 (if (re-search-forward gdb-error-regexp nil t) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
819 (message-box "Invalid number or expression (%s)" value))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
820 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
821 ; Uses "-var-update --all-values". Needs GDB 6.4 onwards. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
822 (defun gdb-var-update () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
823 (if (not (member 'gdb-var-update gdb-pending-triggers)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
824 (gdb-input |
103755
a1a6e341fa6e
* progmodes/gdb-mi.el (gdb-input): Add trailing newline to command.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103754
diff
changeset
|
825 (list "-var-update --all-values *" 'gdb-var-update-handler))) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
826 (push 'gdb-var-update gdb-pending-triggers)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
827 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
828 (defconst gdb-var-update-regexp |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
829 "{.*?name=\"\\(.*?\\)\".*?,\\(?:value=\\(\".*?\"\\),\\)?.*?\ |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
830 in_scope=\"\\(.*?\\)\".*?}") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
831 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
832 (defun gdb-var-update-handler () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
833 (dolist (var gdb-var-list) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
834 (setcar (nthcdr 5 var) nil)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
835 (goto-char (point-min)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
836 (while (re-search-forward gdb-var-update-regexp nil t) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
837 (let* ((varnum (match-string 1)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
838 (var (assoc varnum gdb-var-list))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
839 (when var |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
840 (let ((match (match-string 3))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
841 (cond ((string-equal match "false") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
842 (if gdb-delete-out-of-scope |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
843 (gdb-var-delete-1 varnum) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
844 (setcar (nthcdr 5 var) 'out-of-scope))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
845 ((string-equal match "true") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
846 (setcar (nthcdr 5 var) 'changed) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
847 (setcar (nthcdr 4 var) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
848 (read (match-string 2)))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
849 ((string-equal match "invalid") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
850 (gdb-var-delete-1 varnum))))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
851 (setq gdb-pending-triggers |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
852 (delq 'gdb-var-update gdb-pending-triggers)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
853 (gdb-speedbar-update)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
854 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
855 (defun gdb-speedbar-expand-node (text token indent) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
856 "Expand the node the user clicked on. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
857 TEXT is the text of the button we clicked on, a + or - item. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
858 TOKEN is data related to this node. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
859 INDENT is the current indentation depth." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
860 (cond ((string-match "+" text) ;expand this node |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
861 (let* ((var (assoc token gdb-var-list)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
862 (expr (nth 1 var)) (children (nth 2 var))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
863 (if (or (<= (string-to-number children) gdb-max-children) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
864 (y-or-n-p |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
865 (format "%s has %s children. Continue? " expr children))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
866 (gdb-var-list-children token)))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
867 ((string-match "-" text) ;contract this node |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
868 (dolist (var gdb-var-list) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
869 (if (string-match (concat token "\\.") (car var)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
870 (setq gdb-var-list (delq var gdb-var-list)))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
871 (gdb-var-delete-children token) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
872 (speedbar-change-expand-button-char ?+) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
873 (speedbar-delete-subblock indent)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
874 (t (error "Ooops... not sure what to do"))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
875 (speedbar-center-buffer-smartly)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
876 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
877 (defun gdb-get-target-string () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
878 (with-current-buffer gud-comint-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
879 gud-target-name)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
880 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
881 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
882 ;; |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
883 ;; gdb buffers. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
884 ;; |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
885 ;; Each buffer has a TYPE -- a symbol that identifies the function |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
886 ;; of that particular buffer. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
887 ;; |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
888 ;; The usual gdb interaction buffer is given the type `gdbmi' and |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
889 ;; is constructed specially. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
890 ;; |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
891 ;; Others are constructed by gdb-get-buffer-create and |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
892 ;; named according to the rules set forth in the gdb-buffer-rules-assoc |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
893 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
894 (defvar gdb-buffer-rules-assoc '()) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
895 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
896 (defun gdb-get-buffer (key) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
897 "Return the gdb buffer tagged with type KEY. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
898 The key should be one of the cars in `gdb-buffer-rules-assoc'." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
899 (save-excursion |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
900 (gdb-look-for-tagged-buffer key (buffer-list)))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
901 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
902 (defun gdb-get-buffer-create (key) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
903 "Create a new gdb buffer of the type specified by KEY. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
904 The key should be one of the cars in `gdb-buffer-rules-assoc'." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
905 (or (gdb-get-buffer key) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
906 (let* ((rules (assoc key gdb-buffer-rules-assoc)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
907 (name (funcall (gdb-rules-name-maker rules))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
908 (new (get-buffer-create name))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
909 (with-current-buffer new |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
910 (let ((trigger)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
911 (if (cdr (cdr rules)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
912 (setq trigger (funcall (car (cdr (cdr rules)))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
913 (setq gdb-buffer-type key) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
914 (set (make-local-variable 'gud-minor-mode) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
915 (buffer-local-value 'gud-minor-mode gud-comint-buffer)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
916 (set (make-local-variable 'tool-bar-map) gud-tool-bar-map) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
917 (if trigger (funcall trigger))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
918 new)))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
919 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
920 (defun gdb-rules-name-maker (rules) (car (cdr rules))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
921 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
922 (defun gdb-look-for-tagged-buffer (key bufs) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
923 (let ((retval nil)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
924 (while (and (not retval) bufs) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
925 (set-buffer (car bufs)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
926 (if (eq gdb-buffer-type key) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
927 (setq retval (car bufs))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
928 (setq bufs (cdr bufs))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
929 retval)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
930 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
931 ;; Used to define all gdb-frame-*-buffer functions except |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
932 ;; `gdb-frame-separate-io-buffer' |
103522
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
933 (defmacro def-gdb-frame-for-buffer (name buffer &optional doc) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
934 "Define a function NAME which shows gdb BUFFER in a separate frame. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
935 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
936 DOC is an optional documentation string." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
937 `(defun ,name () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
938 ,(when doc doc) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
939 (interactive) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
940 (let ((special-display-regexps (append special-display-regexps '(".*"))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
941 (special-display-frame-alist gdb-frame-parameters)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
942 (display-buffer (gdb-get-buffer-create ,buffer))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
943 |
103522
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
944 (defmacro def-gdb-display-buffer (name buffer &optional doc) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
945 "Define a function NAME which shows gdb BUFFER. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
946 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
947 DOC is an optional documentation string." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
948 `(defun ,name () |
103522
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
949 ,(when doc doc) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
950 (interactive) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
951 (gdb-display-buffer |
103522
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
952 (gdb-get-buffer-create ,buffer) t))) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
953 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
954 ;; |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
955 ;; This assoc maps buffer type symbols to rules. Each rule is a list of |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
956 ;; at least one and possible more functions. The functions have these |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
957 ;; roles in defining a buffer type: |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
958 ;; |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
959 ;; NAME - Return a name for this buffer type. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
960 ;; |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
961 ;; The remaining function(s) are optional: |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
962 ;; |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
963 ;; MODE - called in a new buffer with no arguments, should establish |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
964 ;; the proper mode for the buffer. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
965 ;; |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
966 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
967 (defun gdb-set-buffer-rules (buffer-type &rest rules) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
968 (let ((binding (assoc buffer-type gdb-buffer-rules-assoc))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
969 (if binding |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
970 (setcdr binding rules) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
971 (push (cons buffer-type rules) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
972 gdb-buffer-rules-assoc)))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
973 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
974 ;; GUD buffers are an exception to the rules |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
975 (gdb-set-buffer-rules 'gdbmi 'error) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
976 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
977 ;; Partial-output buffer : This accumulates output from a command executed on |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
978 ;; behalf of emacs (rather than the user). |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
979 ;; |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
980 (gdb-set-buffer-rules 'gdb-partial-output-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
981 'gdb-partial-output-name) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
982 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
983 (defun gdb-partial-output-name () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
984 (concat " *partial-output-" |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
985 (gdb-get-target-string) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
986 "*")) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
987 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
988 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
989 (gdb-set-buffer-rules 'gdb-inferior-io |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
990 'gdb-inferior-io-name |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
991 'gdb-inferior-io-mode) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
992 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
993 (defun gdb-inferior-io-name () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
994 (concat "*input/output of " |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
995 (gdb-get-target-string) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
996 "*")) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
997 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
998 (defun gdb-display-separate-io-buffer () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
999 "Display IO of debugged program in a separate window." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1000 (interactive) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1001 (if gdb-use-separate-io-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1002 (gdb-display-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1003 (gdb-get-buffer-create 'gdb-inferior-io) t))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1004 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1005 (defconst gdb-frame-parameters |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1006 '((height . 14) (width . 80) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1007 (unsplittable . t) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1008 (tool-bar-lines . nil) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1009 (menu-bar-lines . nil) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1010 (minibuffer . nil))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1011 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1012 (defun gdb-frame-separate-io-buffer () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1013 "Display IO of debugged program in a new frame." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1014 (interactive) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1015 (if gdb-use-separate-io-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1016 (let ((special-display-regexps (append special-display-regexps '(".*"))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1017 (special-display-frame-alist gdb-frame-parameters)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1018 (display-buffer (gdb-get-buffer-create 'gdb-inferior-io))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1019 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1020 (defvar gdb-inferior-io-mode-map |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1021 (let ((map (make-sparse-keymap))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1022 (define-key map "\C-c\C-c" 'gdb-separate-io-interrupt) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1023 (define-key map "\C-c\C-z" 'gdb-separate-io-stop) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1024 (define-key map "\C-c\C-\\" 'gdb-separate-io-quit) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1025 (define-key map "\C-c\C-d" 'gdb-separate-io-eof) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1026 (define-key map "\C-d" 'gdb-separate-io-eof) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1027 map)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1028 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1029 (define-derived-mode gdb-inferior-io-mode comint-mode "Inferior I/O" |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1030 "Major mode for gdb inferior-io." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1031 :syntax-table nil :abbrev-table nil |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1032 ;; We want to use comint because it has various nifty and familiar |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1033 ;; features. We don't need a process, but comint wants one, so create |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1034 ;; a dummy one. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1035 (make-comint-in-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1036 "gdb-inferior" (current-buffer) "sleep" nil "1000000000")) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1037 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1038 (defun gdb-inferior-filter (proc string) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1039 (unless (string-equal string "") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1040 (gdb-display-buffer (gdb-get-buffer-create 'gdb-inferior-io) t)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1041 (with-current-buffer (gdb-get-buffer-create 'gdb-inferior-io) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1042 (insert-before-markers string))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1043 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1044 (defun gdb-separate-io-interrupt () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1045 "Interrupt the program being debugged." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1046 (interactive) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1047 (interrupt-process |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1048 (get-buffer-process gud-comint-buffer) comint-ptyp)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1049 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1050 (defun gdb-separate-io-quit () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1051 "Send quit signal to the program being debugged." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1052 (interactive) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1053 (quit-process |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1054 (get-buffer-process gud-comint-buffer) comint-ptyp)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1055 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1056 (defun gdb-separate-io-stop () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1057 "Stop the program being debugged." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1058 (interactive) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1059 (stop-process |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1060 (get-buffer-process gud-comint-buffer) comint-ptyp)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1061 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1062 (defun gdb-separate-io-eof () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1063 "Send end-of-file to the program being debugged." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1064 (interactive) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1065 (process-send-eof |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1066 (get-buffer-process gud-comint-buffer))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1067 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1068 (defun gdb-clear-inferior-io () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1069 (with-current-buffer (gdb-get-buffer-create 'gdb-inferior-io) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1070 (erase-buffer))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1071 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1072 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1073 (defconst breakpoint-xpm-data |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1074 "/* XPM */ |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1075 static char *magick[] = { |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1076 /* columns rows colors chars-per-pixel */ |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1077 \"10 10 2 1\", |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1078 \" c red\", |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1079 \"+ c None\", |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1080 /* pixels */ |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1081 \"+++ +++\", |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1082 \"++ ++\", |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1083 \"+ +\", |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1084 \" \", |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1085 \" \", |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1086 \" \", |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1087 \" \", |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1088 \"+ +\", |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1089 \"++ ++\", |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1090 \"+++ +++\", |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1091 };" |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1092 "XPM data used for breakpoint icon.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1093 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1094 (defconst breakpoint-enabled-pbm-data |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1095 "P1 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1096 10 10\", |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1097 0 0 0 0 1 1 1 1 0 0 0 0 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1098 0 0 0 1 1 1 1 1 1 0 0 0 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1099 0 0 1 1 1 1 1 1 1 1 0 0 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1100 0 1 1 1 1 1 1 1 1 1 1 0 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1101 0 1 1 1 1 1 1 1 1 1 1 0 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1102 0 1 1 1 1 1 1 1 1 1 1 0 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1103 0 1 1 1 1 1 1 1 1 1 1 0 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1104 0 0 1 1 1 1 1 1 1 1 0 0 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1105 0 0 0 1 1 1 1 1 1 0 0 0 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1106 0 0 0 0 1 1 1 1 0 0 0 0" |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1107 "PBM data used for enabled breakpoint icon.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1108 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1109 (defconst breakpoint-disabled-pbm-data |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1110 "P1 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1111 10 10\", |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1112 0 0 1 0 1 0 1 0 0 0 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1113 0 1 0 1 0 1 0 1 0 0 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1114 1 0 1 0 1 0 1 0 1 0 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1115 0 1 0 1 0 1 0 1 0 1 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1116 1 0 1 0 1 0 1 0 1 0 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1117 0 1 0 1 0 1 0 1 0 1 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1118 1 0 1 0 1 0 1 0 1 0 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1119 0 1 0 1 0 1 0 1 0 1 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1120 0 0 1 0 1 0 1 0 1 0 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1121 0 0 0 1 0 1 0 1 0 0" |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1122 "PBM data used for disabled breakpoint icon.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1123 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1124 (defvar breakpoint-enabled-icon nil |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1125 "Icon for enabled breakpoint in display margin.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1126 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1127 (defvar breakpoint-disabled-icon nil |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1128 "Icon for disabled breakpoint in display margin.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1129 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1130 (declare-function define-fringe-bitmap "fringe.c" |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1131 (bitmap bits &optional height width align)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1132 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1133 (and (display-images-p) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1134 ;; Bitmap for breakpoint in fringe |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1135 (define-fringe-bitmap 'breakpoint |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1136 "\x3c\x7e\xff\xff\xff\xff\x7e\x3c") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1137 ;; Bitmap for gud-overlay-arrow in fringe |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1138 (define-fringe-bitmap 'hollow-right-triangle |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1139 "\xe0\x90\x88\x84\x84\x88\x90\xe0")) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1140 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1141 (defface breakpoint-enabled |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1142 '((t |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1143 :foreground "red1" |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1144 :weight bold)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1145 "Face for enabled breakpoint icon in fringe." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1146 :group 'gdb) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1147 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1148 (defface breakpoint-disabled |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1149 '((((class color) (min-colors 88)) :foreground "grey70") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1150 ;; Ensure that on low-color displays that we end up something visible. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1151 (((class color) (min-colors 8) (background light)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1152 :foreground "black") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1153 (((class color) (min-colors 8) (background dark)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1154 :foreground "white") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1155 (((type tty) (class mono)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1156 :inverse-video t) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1157 (t :background "gray")) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1158 "Face for disabled breakpoint icon in fringe." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1159 :group 'gdb) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1160 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1161 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1162 (defun gdb-send (proc string) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1163 "A comint send filter for gdb." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1164 (with-current-buffer gud-comint-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1165 (let ((inhibit-read-only t)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1166 (remove-text-properties (point-min) (point-max) '(face)))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1167 ;; mimic <RET> key to repeat previous command in GDB |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1168 (if (not (string-match "^\\s+$" string)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1169 (setq gdb-last-command string) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1170 (if gdb-last-command (setq string gdb-last-command))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1171 (if gdb-enable-debug |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1172 (push (cons 'mi-send (concat string "\n")) gdb-debug-log)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1173 (if (string-match "^-" string) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1174 ;; MI command |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1175 (progn |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1176 (setq gdb-first-done-or-error t) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1177 (process-send-string proc (concat string "\n"))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1178 ;; CLI command |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1179 (if (string-match "\\\\$" string) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1180 (setq gdb-continuation (concat gdb-continuation string "\n")) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1181 (setq gdb-first-done-or-error t) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1182 (process-send-string proc (concat "-interpreter-exec console \"" |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1183 gdb-continuation string "\"\n")) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1184 (setq gdb-continuation nil)))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1185 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1186 (defun gdb-input (item) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1187 (if gdb-enable-debug (push (cons 'send-item item) gdb-debug-log)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1188 (setq gdb-token-number (1+ gdb-token-number)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1189 (setcar item (concat (number-to-string gdb-token-number) (car item))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1190 (push (cons gdb-token-number (car (cdr item))) gdb-handler-alist) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1191 (process-send-string (get-buffer-process gud-comint-buffer) |
103755
a1a6e341fa6e
* progmodes/gdb-mi.el (gdb-input): Add trailing newline to command.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103754
diff
changeset
|
1192 (concat (car item) "\n"))) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1193 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1194 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1195 (defcustom gud-gdb-command-name "gdb -i=mi" |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1196 "Default command to execute an executable under the GDB debugger." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1197 :type 'string |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1198 :group 'gdb) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1199 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1200 (defun gdb-resync() |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1201 (setq gud-running nil) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1202 (setq gdb-output-sink 'user) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1203 (setq gdb-pending-triggers nil)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1204 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1205 (defun gdb-update () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1206 "Update buffers showing status of debug session." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1207 (when gdb-first-prompt |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1208 (gdb-force-mode-line-update |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1209 (propertize "initializing..." 'face font-lock-variable-name-face)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1210 (gdb-init-1) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1211 (setq gdb-first-prompt nil)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1212 (gdb-get-selected-frame) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1213 (gdb-invalidate-frames) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1214 ;; Regenerate breakpoints buffer in case it has been inadvertantly deleted. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1215 (gdb-get-buffer-create 'gdb-breakpoints-buffer) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1216 (gdb-invalidate-breakpoints) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1217 (gdb-invalidate-threads) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1218 (gdb-get-changed-registers) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1219 (gdb-invalidate-registers) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1220 (gdb-invalidate-locals) |
103748
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1221 (gdb-invalidate-memory) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1222 (when (and (boundp 'speedbar-frame) (frame-live-p speedbar-frame)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1223 (dolist (var gdb-var-list) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1224 (setcar (nthcdr 5 var) nil)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1225 (gdb-var-update))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1226 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1227 ;; GUD displays the selected GDB frame. This might might not be the current |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1228 ;; GDB frame (after up, down etc). If no GDB frame is visible but the last |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1229 ;; visited breakpoint is, use that window. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1230 (defun gdb-display-source-buffer (buffer) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1231 (let* ((last-window (if gud-last-last-frame |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1232 (get-buffer-window |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1233 (gud-find-file (car gud-last-last-frame))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1234 (source-window (or last-window |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1235 (if (and gdb-source-window |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1236 (window-live-p gdb-source-window)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1237 gdb-source-window)))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1238 (when source-window |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1239 (setq gdb-source-window source-window) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1240 (set-window-buffer source-window buffer)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1241 source-window)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1242 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1243 (defun gdb-car< (a b) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1244 (< (car a) (car b))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1245 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1246 (defvar gdbmi-record-list |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1247 '((gdb-gdb . "(gdb) \n") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1248 (gdb-done . "\\([0-9]*\\)\\^done,?\\(.*?\\)\n") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1249 (gdb-starting . "\\([0-9]*\\)\\^running\n") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1250 (gdb-error . "\\([0-9]*\\)\\^error,\\(.*?\\)\n") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1251 (gdb-console . "~\\(\".*?\"\\)\n") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1252 (gdb-internals . "&\\(\".*?\"\\)\n") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1253 (gdb-stopped . "\\*stopped,?\\(.*?\n\\)") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1254 (gdb-running . "\\*running,\\(.*?\n\\)") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1255 (gdb-thread-created . "=thread-created,\\(.*?\n\\)") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1256 (gdb-thread-exited . "=thread-exited,\\(.*?\n\\)"))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1257 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1258 (defun gud-gdbmi-marker-filter (string) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1259 "Filter GDB/MI output." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1260 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1261 ;; Record transactions if logging is enabled. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1262 (when gdb-enable-debug |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1263 (push (cons 'recv string) gdb-debug-log) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1264 (if (and gdb-debug-log-max |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1265 (> (length gdb-debug-log) gdb-debug-log-max)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1266 (setcdr (nthcdr (1- gdb-debug-log-max) gdb-debug-log) nil))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1267 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1268 ;; Recall the left over gud-marker-acc from last time |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1269 (setq gud-marker-acc (concat gud-marker-acc string)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1270 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1271 ;; Start accumulating output for the GUD buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1272 (setq gdb-filter-output "") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1273 (let ((output-record) (output-record-list)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1274 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1275 ;; Process all the complete markers in this chunk. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1276 (dolist (gdbmi-record gdbmi-record-list) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1277 (while (string-match (cdr gdbmi-record) gud-marker-acc) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1278 (push (list (match-beginning 0) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1279 (car gdbmi-record) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1280 (match-string 1 gud-marker-acc) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1281 (match-string 2 gud-marker-acc) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1282 (match-end 0)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1283 output-record-list) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1284 (setq gud-marker-acc |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1285 (concat (substring gud-marker-acc 0 (match-beginning 0)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1286 ;; Pad with spaces to preserve position. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1287 (make-string (length (match-string 0 gud-marker-acc)) 32) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1288 (substring gud-marker-acc (match-end 0)))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1289 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1290 (setq output-record-list (sort output-record-list 'gdb-car<)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1291 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1292 (dolist (output-record output-record-list) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1293 (let ((record-type (cadr output-record)) |
103522
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1294 (arg1 (nth 2 output-record)) |
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1295 (arg2 (nth 3 output-record))) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1296 (if (eq record-type 'gdb-error) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1297 (gdb-done-or-error arg2 arg1 'error) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1298 (if (eq record-type 'gdb-done) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1299 (gdb-done-or-error arg2 arg1 'done) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1300 ;; Suppress "No registers." since GDB 6.8 and earlier duplicates MI |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1301 ;; error message on internal stream. Don't print to GUD buffer. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1302 (unless (and (eq record-type 'gdb-internals) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1303 (string-equal (read arg1) "No registers.\n")) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1304 (funcall record-type arg1)))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1305 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1306 (setq gdb-output-sink 'user) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1307 ;; Remove padding. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1308 (string-match "^ *" gud-marker-acc) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1309 (setq gud-marker-acc (substring gud-marker-acc (match-end 0))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1310 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1311 gdb-filter-output)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1312 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1313 (defun gdb-gdb (output-field)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1314 (defun gdb-thread-created (output-field)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1315 (defun gdb-thread-exited (output-field)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1316 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1317 (defun gdb-running (output-field) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1318 (setq gdb-inferior-status "running") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1319 (gdb-force-mode-line-update |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1320 (propertize gdb-inferior-status 'face font-lock-type-face)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1321 (setq gdb-active-process t) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1322 (setq gud-running t)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1323 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1324 (defun gdb-starting (output-field) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1325 ;; CLI commands don't emit ^running at the moment so use gdb-running too. |
103759
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1326 (gdb-input |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1327 (list "-data-list-register-names" 'gdb-get-register-names)) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1328 (setq gdb-inferior-status "running") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1329 (gdb-force-mode-line-update |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1330 (propertize gdb-inferior-status 'face font-lock-type-face)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1331 (setq gdb-active-process t) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1332 (setq gud-running t)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1333 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1334 ;; -break-insert -t didn't give a reason before gdb 6.9 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1335 (defconst gdb-stopped-regexp |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1336 "\\(reason=\"\\(.*?\\)\"\\)?\\(\\(,exit-code=.*?\\)*\n\\|.*?,file=\".*?\".*?,fullname=\"\\(.*?\\)\".*?,line=\"\\(.*?\\)\".*?\n\\)") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1337 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1338 (defun gdb-stopped (output-field) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1339 (setq gud-running nil) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1340 (string-match gdb-stopped-regexp output-field) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1341 (let ((reason (match-string 2 output-field)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1342 (file (match-string 5 output-field))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1343 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1344 ;;; Don't set gud-last-frame here as it's currently done in gdb-frame-handler |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1345 ;;; because synchronous GDB doesn't give these fields with CLI. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1346 ;;; (when file |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1347 ;;; (setq |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1348 ;;; ;; Extract the frame position from the marker. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1349 ;;; gud-last-frame (cons file |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1350 ;;; (string-to-number |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1351 ;;; (match-string 6 gud-marker-acc))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1352 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1353 (setq gdb-inferior-status (if reason reason "unknown")) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1354 (gdb-force-mode-line-update |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1355 (propertize gdb-inferior-status 'face font-lock-warning-face)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1356 (if (string-equal reason "exited-normally") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1357 (setq gdb-active-process nil))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1358 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1359 (when gdb-first-done-or-error |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1360 (setq gdb-filter-output (concat gdb-filter-output gdb-prompt-name)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1361 (gdb-update) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1362 (setq gdb-first-done-or-error nil))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1363 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1364 ;; Remove the trimmings from log stream containing debugging messages |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1365 ;; being produced by GDB's internals, use warning face and send to GUD |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1366 ;; buffer. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1367 (defun gdb-internals (output-field) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1368 (setq gdb-filter-output |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1369 (gdb-concat-output |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1370 gdb-filter-output |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1371 (let ((error-message |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1372 (read output-field))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1373 (put-text-property |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1374 0 (length error-message) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1375 'face font-lock-warning-face |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1376 error-message) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1377 error-message)))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1378 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1379 ;; Remove the trimmings from the console stream and send to GUD buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1380 ;; (frontend MI commands should not print to this stream) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1381 (defun gdb-console (output-field) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1382 (setq gdb-filter-output |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1383 (gdb-concat-output |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1384 gdb-filter-output |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1385 (read output-field)))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1386 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1387 (defun gdb-done-or-error (output-field token-number type) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1388 (if (string-equal token-number "") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1389 ;; Output from command entered by user |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1390 (progn |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1391 (setq gdb-output-sink 'user) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1392 (setq token-number nil) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1393 ;; MI error - send to minibuffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1394 (when (eq type 'error) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1395 ;; Skip "msg=" from `output-field' |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1396 (message (read (substring output-field 4))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1397 ;; Don't send to the console twice. (If it is a console error |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1398 ;; it is also in the console stream.) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1399 (setq output-field nil))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1400 ;; Output from command from frontend. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1401 (setq gdb-output-sink 'emacs)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1402 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1403 (gdb-clear-partial-output) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1404 (when gdb-first-done-or-error |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1405 (unless (or token-number gud-running) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1406 (setq gdb-filter-output (concat gdb-filter-output gdb-prompt-name))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1407 (gdb-update) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1408 (setq gdb-first-done-or-error nil)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1409 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1410 (setq gdb-filter-output |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1411 (gdb-concat-output gdb-filter-output output-field)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1412 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1413 (if token-number |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1414 (progn |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1415 (with-current-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1416 (gdb-get-buffer-create 'gdb-partial-output-buffer) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1417 (funcall |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1418 (cdr (assoc (string-to-number token-number) gdb-handler-alist)))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1419 (setq gdb-handler-alist |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1420 (assq-delete-all token-number gdb-handler-alist))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1421 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1422 (defun gdb-concat-output (so-far new) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1423 (let ((sink gdb-output-sink)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1424 (cond |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1425 ((eq sink 'user) (concat so-far new)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1426 ((eq sink 'emacs) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1427 (gdb-append-to-partial-output new) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1428 so-far)))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1429 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1430 (defun gdb-append-to-partial-output (string) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1431 (with-current-buffer (gdb-get-buffer-create 'gdb-partial-output-buffer) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1432 (goto-char (point-max)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1433 (insert string))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1434 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1435 (defun gdb-clear-partial-output () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1436 (with-current-buffer (gdb-get-buffer-create 'gdb-partial-output-buffer) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1437 (erase-buffer))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1438 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1439 (defun json-partial-output (&optional fix-key) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1440 "Parse gdb-partial-output-buffer with `json-read'. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1441 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1442 If FIX-KEY is non-nil, strip all \"FIX-KEY=\" occurences from |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1443 partial output. This is used to get rid of useless keys in lists |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1444 in MI messages, e.g.: [key=.., key=..]. -stack-list-frames and |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1445 -break-info are examples of MI commands which issue such |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1446 responses. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1447 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1448 Note that GDB/MI output syntax is different from JSON both |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1449 cosmetically and (in some cases) structurally, so correct results |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1450 are not guaranteed." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1451 (with-current-buffer (gdb-get-buffer-create 'gdb-partial-output-buffer) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1452 (goto-char (point-min)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1453 (while (re-search-forward (concat "[\\[,]\\(" fix-key "=\\)") nil t) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1454 (replace-match "" nil nil nil 1)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1455 (goto-char (point-min)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1456 (insert "{") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1457 ;; Wrap field names in double quotes and replace equal sign with |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1458 ;; semicolon. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1459 ;; TODO: This breaks badly with foo= inside constants |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1460 (while (re-search-forward "\\([[:alpha:]-_]+\\)=" nil t) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1461 (replace-match "\"\\1\":" nil nil)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1462 (goto-char (point-max)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1463 (insert "}") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1464 (goto-char (point-min)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1465 (let ((json-array-type 'list)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1466 (json-read)))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1467 |
103752
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
1468 (defun gdb-pad-string (string padding) |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
1469 (format (concat "%" (number-to-string padding) "s") string)) |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
1470 |
103749
f3eef698a354
gdb-mi.el: Now using bindat-get-field instead of fadr functions.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103748
diff
changeset
|
1471 (defalias 'gdb-get-field 'bindat-get-field) |
f3eef698a354
gdb-mi.el: Now using bindat-get-field instead of fadr functions.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103748
diff
changeset
|
1472 |
f3eef698a354
gdb-mi.el: Now using bindat-get-field instead of fadr functions.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103748
diff
changeset
|
1473 (defun gdb-get-many-fields (struct &rest fields) |
f3eef698a354
gdb-mi.el: Now using bindat-get-field instead of fadr functions.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103748
diff
changeset
|
1474 "Return a list of FIELDS values from STRUCT." |
f3eef698a354
gdb-mi.el: Now using bindat-get-field instead of fadr functions.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103748
diff
changeset
|
1475 (let ((values)) |
f3eef698a354
gdb-mi.el: Now using bindat-get-field instead of fadr functions.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103748
diff
changeset
|
1476 (dolist (field fields values) |
f3eef698a354
gdb-mi.el: Now using bindat-get-field instead of fadr functions.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103748
diff
changeset
|
1477 (setq values (append values (list (gdb-get-field struct field))))))) |
f3eef698a354
gdb-mi.el: Now using bindat-get-field instead of fadr functions.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103748
diff
changeset
|
1478 |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1479 ;; NAME is the function name. DEMAND-PREDICATE tests if output is really needed. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1480 ;; GDB-COMMAND is a string of such. OUTPUT-HANDLER is the function bound to the |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1481 ;; current input. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1482 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1483 (defmacro def-gdb-auto-update-trigger (name demand-predicate gdb-command |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1484 output-handler) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1485 `(defun ,name (&optional ignored) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1486 (if (and ,demand-predicate |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1487 (not (member ',name |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1488 gdb-pending-triggers))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1489 (progn |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1490 (gdb-input |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1491 (list ,gdb-command ',output-handler)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1492 (push ',name gdb-pending-triggers))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1493 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1494 (defmacro def-gdb-auto-update-handler (name trigger buf-key custom-defun) |
103522
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1495 "Define a handler NAME for TRIGGER acting in BUF-KEY with CUSTOM-DEFUN. |
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1496 |
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1497 Delete TRIGGER from `gdb-pending-triggers', switch to gdb BUF-KEY |
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1498 buffer using `gdb-get-buffer', erase it and evalueat |
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1499 CUSTOM-DEFUN." |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1500 `(defun ,name () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1501 (setq gdb-pending-triggers |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1502 (delq ',trigger |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1503 gdb-pending-triggers)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1504 (let ((buf (gdb-get-buffer ',buf-key))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1505 (and buf |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1506 (with-current-buffer buf |
103752
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
1507 (let*((buffer-read-only nil)) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1508 (erase-buffer) |
103522
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1509 (,custom-defun))))))) |
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1510 |
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1511 (defmacro def-gdb-auto-updated-buffer (buf-key |
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1512 trigger-name gdb-command |
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1513 output-handler-name custom-defun) |
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1514 "Define a trigger and its handler for buffers of type BUF-KEY. |
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1515 |
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1516 TRIGGER-NAME trigger is defined to send GDB-COMMAND if BUF-KEY |
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1517 exists. |
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1518 |
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1519 OUTPUT-HANDLER-NAME handler uses customization of CUSTOM-DEFUN." |
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1520 `(progn |
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1521 (def-gdb-auto-update-trigger ,trigger-name |
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1522 ;; The demand predicate: |
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1523 (gdb-get-buffer ',buf-key) |
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1524 ,gdb-command |
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1525 ,output-handler-name) |
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1526 (def-gdb-auto-update-handler ,output-handler-name |
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1527 ,trigger-name ,buf-key ,custom-defun))) |
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1528 |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1529 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1530 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1531 ;; Breakpoint buffer : This displays the output of `-break-list'. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1532 ;; |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1533 (gdb-set-buffer-rules 'gdb-breakpoints-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1534 'gdb-breakpoints-buffer-name |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1535 'gdb-breakpoints-mode) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1536 |
103751
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1537 (def-gdb-auto-updated-buffer gdb-breakpoints-buffer |
103755
a1a6e341fa6e
* progmodes/gdb-mi.el (gdb-input): Add trailing newline to command.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103754
diff
changeset
|
1538 gdb-invalidate-breakpoints "-break-list" |
103751
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1539 gdb-breakpoints-list-handler gdb-breakpoints-list-handler-custom) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1540 |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1541 (defun gdb-breakpoints-list-handler-custom () |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1542 (setq gdb-pending-triggers (delq 'gdb-invalidate-breakpoints |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1543 gdb-pending-triggers)) |
103751
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1544 (let ((breakpoints-list (gdb-get-field |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1545 (json-partial-output "bkpt") |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1546 'BreakpointTable 'body))) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1547 (setq gdb-breakpoints-list breakpoints-list) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1548 (insert "Num\tType\t\tDisp\tEnb\tHits\tAddr What\n") |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1549 (dolist (breakpoint breakpoints-list) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1550 (insert |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1551 (concat |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1552 (gdb-get-field breakpoint 'number) "\t" |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1553 (gdb-get-field breakpoint 'type) "\t" |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1554 (gdb-get-field breakpoint 'disp) "\t" |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1555 (let ((flag (gdb-get-field breakpoint 'enabled))) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1556 (if (string-equal flag "y") |
103754
b186b013ff68
* progmodes/gdb-mi.el (gdb-breakpoints-list-handler-custom): y/n
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103753
diff
changeset
|
1557 (propertize "y" 'face font-lock-warning-face) |
b186b013ff68
* progmodes/gdb-mi.el (gdb-breakpoints-list-handler-custom): y/n
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103753
diff
changeset
|
1558 (propertize "n" 'face font-lock-type-face))) "\t" |
103751
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1559 (gdb-get-field breakpoint 'times) "\t" |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1560 (gdb-get-field breakpoint 'addr))) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1561 (let ((at (gdb-get-field breakpoint 'at))) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1562 (cond ((not at) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1563 (progn |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1564 (insert |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1565 (concat " in " |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1566 (propertize (gdb-get-field breakpoint 'func) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1567 'face font-lock-function-name-face))) |
103754
b186b013ff68
* progmodes/gdb-mi.el (gdb-breakpoints-list-handler-custom): y/n
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103753
diff
changeset
|
1568 (gdb-insert-frame-location breakpoint) |
b186b013ff68
* progmodes/gdb-mi.el (gdb-breakpoints-list-handler-custom): y/n
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103753
diff
changeset
|
1569 (add-text-properties (line-beginning-position) |
b186b013ff68
* progmodes/gdb-mi.el (gdb-breakpoints-list-handler-custom): y/n
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103753
diff
changeset
|
1570 (line-end-position) |
b186b013ff68
* progmodes/gdb-mi.el (gdb-breakpoints-list-handler-custom): y/n
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103753
diff
changeset
|
1571 '(mouse-face highlight |
b186b013ff68
* progmodes/gdb-mi.el (gdb-breakpoints-list-handler-custom): y/n
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103753
diff
changeset
|
1572 help-echo "mouse-2, RET: visit breakpoint")))) |
103752
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
1573 (at (insert (concat " " at))) |
103751
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1574 (t (insert (gdb-get-field breakpoint 'original-location))))) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1575 (add-text-properties (line-beginning-position) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1576 (line-end-position) |
103754
b186b013ff68
* progmodes/gdb-mi.el (gdb-breakpoints-list-handler-custom): y/n
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103753
diff
changeset
|
1577 `(gdb-breakpoint ,breakpoint)) |
103751
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1578 (newline)) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1579 (gdb-place-breakpoints))) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1580 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1581 ;; Put breakpoint icons in relevant margins (even those set in the GUD buffer). |
103751
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1582 (defun gdb-place-breakpoints () |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1583 (let ((flag) (bptno)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1584 ;; Remove all breakpoint-icons in source buffers but not assembler buffer. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1585 (dolist (buffer (buffer-list)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1586 (with-current-buffer buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1587 (if (and (eq gud-minor-mode 'gdbmi) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1588 (not (string-match "\\` ?\\*.+\\*\\'" (buffer-name)))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1589 (gdb-remove-breakpoint-icons (point-min) (point-max))))) |
103751
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1590 (dolist (breakpoint gdb-breakpoints-list) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1591 (let ((line (gdb-get-field breakpoint 'line))) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1592 (when line |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1593 (let ((file (gdb-get-field breakpoint 'file)) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1594 (flag (gdb-get-field breakpoint 'enabled)) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1595 (bptno (gdb-get-field breakpoint 'number))) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1596 (unless (file-exists-p file) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1597 (setq file (cdr (assoc bptno gdb-location-alist)))) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1598 (if (and file |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1599 (not (string-equal file "File not found"))) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1600 (with-current-buffer |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1601 (find-file-noselect file 'nowarn) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1602 (gdb-init-buffer) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1603 ;; Only want one breakpoint icon at each location. |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1604 (save-excursion |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1605 (goto-line (string-to-number line)) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1606 (gdb-put-breakpoint-icon (string-equal flag "y") bptno))) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1607 (gdb-input |
103755
a1a6e341fa6e
* progmodes/gdb-mi.el (gdb-input): Add trailing newline to command.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103754
diff
changeset
|
1608 (list (concat "list " file ":1") |
103751
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1609 'ignore)) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1610 (gdb-input |
103755
a1a6e341fa6e
* progmodes/gdb-mi.el (gdb-input): Add trailing newline to command.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103754
diff
changeset
|
1611 (list "-file-list-exec-source-file" |
103751
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1612 `(lambda () (gdb-get-location |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1613 ,bptno ,line ,flag))))))))))) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1614 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1615 (defvar gdb-source-file-regexp "fullname=\"\\(.*?\\)\"") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1616 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1617 (defun gdb-get-location (bptno line flag) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1618 "Find the directory containing the relevant source file. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1619 Put in buffer and place breakpoint icon." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1620 (goto-char (point-min)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1621 (catch 'file-not-found |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1622 (if (re-search-forward gdb-source-file-regexp nil t) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1623 (delete (cons bptno "File not found") gdb-location-alist) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1624 (push (cons bptno (match-string 1)) gdb-location-alist) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1625 (gdb-resync) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1626 (unless (assoc bptno gdb-location-alist) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1627 (push (cons bptno "File not found") gdb-location-alist) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1628 (message-box "Cannot find source file for breakpoint location. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1629 Add directory to search path for source files using the GDB command, dir.")) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1630 (throw 'file-not-found nil)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1631 (with-current-buffer (find-file-noselect (match-string 1)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1632 (gdb-init-buffer) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1633 ;; only want one breakpoint icon at each location |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1634 (save-excursion |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1635 (goto-line (string-to-number line)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1636 (gdb-put-breakpoint-icon (eq flag ?y) bptno))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1637 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1638 (add-hook 'find-file-hook 'gdb-find-file-hook) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1639 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1640 (defun gdb-find-file-hook () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1641 "Set up buffer for debugging if file is part of the source code |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1642 of the current session." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1643 (if (and (buffer-name gud-comint-buffer) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1644 ;; in case gud or gdb-ui is just loaded |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1645 gud-comint-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1646 (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1647 'gdbmi)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1648 (if (member buffer-file-name gdb-source-file-list) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1649 (with-current-buffer (find-buffer-visiting buffer-file-name) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1650 (gdb-init-buffer))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1651 |
103563 | 1652 (declare-function gud-remove "gdb-mi" t t) ; gud-def |
1653 (declare-function gud-break "gdb-mi" t t) ; gud-def | |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1654 (declare-function fringe-bitmaps-at-pos "fringe.c" (&optional pos window)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1655 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1656 (defun gdb-mouse-set-clear-breakpoint (event) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1657 "Set/clear breakpoint in left fringe/margin at mouse click. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1658 If not in a source or disassembly buffer just set point." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1659 (interactive "e") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1660 (mouse-minibuffer-check event) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1661 (let ((posn (event-end event))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1662 (with-selected-window (posn-window posn) |
103751
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
1663 (if (or (buffer-file-name) (eq major-mode 'gdb-disassembly-mode)) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1664 (if (numberp (posn-point posn)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1665 (save-excursion |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1666 (goto-char (posn-point posn)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1667 (if (or (posn-object posn) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1668 (eq (car (fringe-bitmaps-at-pos (posn-point posn))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1669 'breakpoint)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1670 (gud-remove nil) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1671 (gud-break nil))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1672 (posn-set-point posn)))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1673 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1674 (defun gdb-mouse-toggle-breakpoint-margin (event) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1675 "Enable/disable breakpoint in left margin with mouse click." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1676 (interactive "e") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1677 (mouse-minibuffer-check event) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1678 (let ((posn (event-end event))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1679 (if (numberp (posn-point posn)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1680 (with-selected-window (posn-window posn) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1681 (save-excursion |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1682 (goto-char (posn-point posn)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1683 (if (posn-object posn) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1684 (gud-basic-call |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1685 (let ((bptno (get-text-property |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1686 0 'gdb-bptno (car (posn-string posn))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1687 (concat |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1688 (if (get-text-property |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1689 0 'gdb-enabled (car (posn-string posn))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1690 "-break-disable " |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1691 "-break-enable ") |
103755
a1a6e341fa6e
* progmodes/gdb-mi.el (gdb-input): Add trailing newline to command.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103754
diff
changeset
|
1692 bptno))))))))) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1693 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1694 (defun gdb-mouse-toggle-breakpoint-fringe (event) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1695 "Enable/disable breakpoint in left fringe with mouse click." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1696 (interactive "e") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1697 (mouse-minibuffer-check event) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1698 (let* ((posn (event-end event)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1699 (pos (posn-point posn)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1700 obj) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1701 (when (numberp pos) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1702 (with-selected-window (posn-window posn) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1703 (save-excursion |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1704 (set-buffer (window-buffer (selected-window))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1705 (goto-char pos) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1706 (dolist (overlay (overlays-in pos pos)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1707 (when (overlay-get overlay 'put-break) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1708 (setq obj (overlay-get overlay 'before-string)))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1709 (when (stringp obj) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1710 (gud-basic-call |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1711 (concat |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1712 (if (get-text-property 0 'gdb-enabled obj) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1713 "-break-disable " |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1714 "-break-enable ") |
103755
a1a6e341fa6e
* progmodes/gdb-mi.el (gdb-input): Add trailing newline to command.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103754
diff
changeset
|
1715 (get-text-property 0 'gdb-bptno obj))))))))) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1716 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1717 (defun gdb-breakpoints-buffer-name () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1718 (with-current-buffer gud-comint-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1719 (concat "*breakpoints of " (gdb-get-target-string) "*"))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1720 |
103522
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1721 (def-gdb-display-buffer |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1722 gdb-display-breakpoints-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1723 'gdb-breakpoints-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1724 "Display status of user-settable breakpoints.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1725 |
103522
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1726 (def-gdb-frame-for-buffer |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1727 gdb-frame-breakpoints-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1728 'gdb-breakpoints-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1729 "Display status of user-settable breakpoints in a new frame.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1730 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1731 (defvar gdb-breakpoints-mode-map |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1732 (let ((map (make-sparse-keymap)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1733 (menu (make-sparse-keymap "Breakpoints"))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1734 (define-key menu [quit] '("Quit" . gdb-delete-frame-or-window)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1735 (define-key menu [goto] '("Goto" . gdb-goto-breakpoint)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1736 (define-key menu [delete] '("Delete" . gdb-delete-breakpoint)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1737 (define-key menu [toggle] '("Toggle" . gdb-toggle-breakpoint)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1738 (suppress-keymap map) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1739 (define-key map [menu-bar breakpoints] (cons "Breakpoints" menu)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1740 (define-key map " " 'gdb-toggle-breakpoint) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1741 (define-key map "D" 'gdb-delete-breakpoint) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1742 ;; Don't bind "q" to kill-this-buffer as we need it for breakpoint icons. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1743 (define-key map "q" 'gdb-delete-frame-or-window) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1744 (define-key map "\r" 'gdb-goto-breakpoint) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1745 (define-key map [mouse-2] 'gdb-goto-breakpoint) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1746 (define-key map [follow-link] 'mouse-face) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1747 map)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1748 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1749 (defun gdb-delete-frame-or-window () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1750 "Delete frame if there is only one window. Otherwise delete the window." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1751 (interactive) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1752 (if (one-window-p) (delete-frame) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1753 (delete-window))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1754 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1755 ;;from make-mode-line-mouse-map |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1756 (defun gdb-make-header-line-mouse-map (mouse function) "\ |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1757 Return a keymap with single entry for mouse key MOUSE on the header line. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1758 MOUSE is defined to run function FUNCTION with no args in the buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1759 corresponding to the mode line clicked." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1760 (let ((map (make-sparse-keymap))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1761 (define-key map (vector 'header-line mouse) function) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1762 (define-key map (vector 'header-line 'down-mouse-1) 'ignore) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1763 map)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1764 |
103759
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1765 (defmacro gdb-propertize-header (name buffer help-echo mouse-face face) |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1766 `(propertize ,name |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1767 'help-echo ,help-echo |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1768 'mouse-face ',mouse-face |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1769 'face ',face |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1770 'local-map |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1771 (gdb-make-header-line-mouse-map |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1772 'mouse-1 |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1773 (lambda (event) (interactive "e") |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1774 (save-selected-window |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1775 (select-window (posn-window (event-start event))) |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1776 (set-window-dedicated-p (selected-window) nil) |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1777 (switch-to-buffer |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1778 (gdb-get-buffer-create ',buffer)) |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1779 (setq header-line-format(gdb-set-header ',buffer)) |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1780 (set-window-dedicated-p (selected-window) t)))))) |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1781 |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1782 (defun gdb-set-header (buffer) |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1783 (cond ((eq buffer 'gdb-locals-buffer) |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1784 (list |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1785 (gdb-propertize-header "Locals" gdb-locals-buffer |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1786 nil nil mode-line) |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1787 " " |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1788 (gdb-propertize-header "Registers" gdb-registers-buffer |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1789 "mouse-1: select" mode-line-highlight mode-line-inactive))) |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1790 ((eq buffer 'gdb-registers-buffer) |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1791 (list |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1792 (gdb-propertize-header "Locals" gdb-locals-buffer |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1793 "mouse-1: select" mode-line-highlight mode-line-inactive) |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1794 " " |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1795 (gdb-propertize-header "Registers" gdb-registers-buffer |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1796 nil nil mode-line))) |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1797 ((eq buffer 'gdb-breakpoints-buffer) |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1798 (list |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1799 (gdb-propertize-header "Breakpoints" gdb-breakpoints-buffer |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1800 nil nil mode-line) |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1801 " " |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1802 (gdb-propertize-header "Threads" gdb-threads-buffer |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1803 "mouse-1: select" mode-line-highlight mode-line-inactive))) |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1804 ((eq buffer 'gdb-threads-buffer) |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1805 (list |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1806 (gdb-propertize-header "Breakpoints" gdb-breakpoints-buffer |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1807 "mouse-1: select" mode-line-highlight mode-line-inactive) |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1808 " " |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1809 (gdb-propertize-header "Threads" gdb-threads-buffer |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1810 nil nil mode-line))))) |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
1811 |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1812 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1813 ;; uses "-thread-info". Needs GDB 7.0 onwards. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1814 ;;; Threads view |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1815 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1816 (defun gdb-jump-to (file line) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1817 (find-file-other-window file) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1818 (goto-line line)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1819 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1820 (define-button-type 'gdb-file-button |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1821 'help-echo "Push to jump to source code" |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1822 ; 'face 'bold |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1823 'action |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1824 (lambda (b) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1825 (gdb-jump-to (button-get b 'file) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1826 (button-get b 'line)))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1827 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1828 (defun gdb-insert-file-location-button (file line) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1829 "Insert text button which allows jumping to FILE:LINE. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1830 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1831 FILE is a full path." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1832 (insert-text-button |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1833 (format "%s:%d" (file-name-nondirectory file) line) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1834 :type 'gdb-file-button |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1835 'file file |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1836 'line line)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1837 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1838 (defun gdb-threads-buffer-name () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1839 (concat "*threads of " (gdb-get-target-string) "*")) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1840 |
103522
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1841 (def-gdb-display-buffer |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1842 gdb-display-threads-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1843 'gdb-threads-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1844 "Display GDB threads.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1845 |
103522
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1846 (def-gdb-frame-for-buffer |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1847 gdb-frame-threads-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1848 'gdb-threads-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1849 "Display GDB threads in a new frame.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1850 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1851 (gdb-set-buffer-rules 'gdb-threads-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1852 'gdb-threads-buffer-name |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1853 'gdb-threads-mode) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1854 |
103522
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1855 (def-gdb-auto-updated-buffer gdb-threads-buffer |
103755
a1a6e341fa6e
* progmodes/gdb-mi.el (gdb-input): Add trailing newline to command.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103754
diff
changeset
|
1856 gdb-invalidate-threads "-thread-info" |
103522
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1857 gdb-thread-list-handler gdb-thread-list-handler-custom) |
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1858 |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1859 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1860 (defvar gdb-threads-font-lock-keywords |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1861 '(("in \\([^ ]+\\) (" (1 font-lock-function-name-face)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1862 (" \\(stopped\\) in " (1 font-lock-warning-face)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1863 ("\\(\\(\\sw\\|[_.]\\)+\\)=" (1 font-lock-variable-name-face))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1864 "Font lock keywords used in `gdb-threads-mode'.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1865 |
103522
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1866 (defvar gdb-threads-mode-map |
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1867 ;; TODO |
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1868 (make-sparse-keymap)) |
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1869 |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1870 (defun gdb-threads-mode () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1871 "Major mode for GDB threads. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1872 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1873 \\{gdb-threads-mode-map}" |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1874 (kill-all-local-variables) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1875 (setq major-mode 'gdb-threads-mode) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1876 (setq mode-name "Threads") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1877 (use-local-map gdb-threads-mode-map) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1878 (setq buffer-read-only t) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1879 (buffer-disable-undo) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1880 (setq header-line-format gdb-breakpoints-header) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1881 (set (make-local-variable 'font-lock-defaults) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1882 '(gdb-threads-font-lock-keywords)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1883 (run-mode-hooks 'gdb-threads-mode-hook) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1884 'gdb-invalidate-threads) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1885 |
103522
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1886 (defun gdb-thread-list-handler-custom () |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1887 (let* ((res (json-partial-output)) |
103749
f3eef698a354
gdb-mi.el: Now using bindat-get-field instead of fadr functions.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103748
diff
changeset
|
1888 (threads-list (gdb-get-field res 'threads))) |
103522
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1889 (dolist (thread threads-list) |
103749
f3eef698a354
gdb-mi.el: Now using bindat-get-field instead of fadr functions.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103748
diff
changeset
|
1890 (insert (apply 'format `("%s (%s) %s in %s " |
f3eef698a354
gdb-mi.el: Now using bindat-get-field instead of fadr functions.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103748
diff
changeset
|
1891 ,@(gdb-get-many-fields thread 'id 'target-id 'state) |
f3eef698a354
gdb-mi.el: Now using bindat-get-field instead of fadr functions.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103748
diff
changeset
|
1892 ,(gdb-get-field thread 'frame 'func)))) |
103522
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1893 ;; Arguments |
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1894 (insert "(") |
103749
f3eef698a354
gdb-mi.el: Now using bindat-get-field instead of fadr functions.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103748
diff
changeset
|
1895 (let ((args (gdb-get-field thread 'frame 'args))) |
103522
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1896 (dolist (arg args) |
103749
f3eef698a354
gdb-mi.el: Now using bindat-get-field instead of fadr functions.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103748
diff
changeset
|
1897 (insert (apply 'format `("%s=%s" ,@(gdb-get-many-fields arg 'name 'value))))) |
103522
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1898 (when args (kill-backward-chars 1))) |
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
1899 (insert ")") |
103749
f3eef698a354
gdb-mi.el: Now using bindat-get-field instead of fadr functions.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103748
diff
changeset
|
1900 (gdb-insert-frame-location (gdb-get-field thread 'frame)) |
f3eef698a354
gdb-mi.el: Now using bindat-get-field instead of fadr functions.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103748
diff
changeset
|
1901 (insert (format " at %s\n" (gdb-get-field thread 'frame 'addr)))))) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1902 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1903 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
1904 ;;; Memory view |
103748
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1905 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1906 (defcustom gdb-memory-rows 8 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1907 "Number of data rows in memory window." |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1908 :type 'integer |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1909 :group 'gud |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1910 :version "23.2") |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1911 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1912 (defcustom gdb-memory-columns 4 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1913 "Number of data columns in memory window." |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1914 :type 'integer |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1915 :group 'gud |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1916 :version "23.2") |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1917 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1918 (defcustom gdb-memory-format "x" |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1919 "Display format of data items in memory window." |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1920 :type '(choice (const :tag "Hexadecimal" "x") |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1921 (const :tag "Signed decimal" "d") |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1922 (const :tag "Unsigned decimal" "u") |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1923 (const :tag "Octal" "o") |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1924 (const :tag "Binary" "t")) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1925 :group 'gud |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1926 :version "22.1") |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1927 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1928 (defcustom gdb-memory-unit 4 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1929 "Unit size of data items in memory window." |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1930 :type '(choice (const :tag "Byte" 1) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1931 (const :tag "Halfword" 2) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1932 (const :tag "Word" 4) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1933 (const :tag "Giant word" 8)) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1934 :group 'gud |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1935 :version "23.2") |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1936 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1937 (gdb-set-buffer-rules 'gdb-memory-buffer |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1938 'gdb-memory-buffer-name |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1939 'gdb-memory-mode) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1940 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1941 (def-gdb-auto-updated-buffer gdb-memory-buffer |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1942 gdb-invalidate-memory |
103755
a1a6e341fa6e
* progmodes/gdb-mi.el (gdb-input): Add trailing newline to command.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103754
diff
changeset
|
1943 (format "-data-read-memory %s %s %d %d %d" |
103748
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1944 gdb-memory-address |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1945 gdb-memory-format |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1946 gdb-memory-unit |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1947 gdb-memory-rows |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1948 gdb-memory-columns) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1949 gdb-read-memory-handler |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1950 gdb-read-memory-custom) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1951 |
103752
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
1952 (defun gdb-memory-column-width (size format) |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
1953 "Return length of string with memory unit of SIZE in FORMAT. |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
1954 |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
1955 SIZE is in bytes, as in `gdb-memory-unit'. FORMAT is a string as |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
1956 in `gdb-memory-format'." |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
1957 (let ((format-base (cdr (assoc format |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
1958 '(("x" . 16) |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
1959 ("d" . 10) ("u" . 10) |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
1960 ("o" . 8) |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
1961 ("t" . 2)))))) |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
1962 (if format-base |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
1963 (let ((res (ceiling (log (expt 2.0 (* size 8)) format-base)))) |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
1964 (cond ((string-equal format "x") |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
1965 (+ 2 res)) ; hexadecimal numbers have 0x in front |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
1966 ((or (string-equal format "d") |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
1967 (string-equal format "o")) |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
1968 (1+ res)) |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
1969 (t res))) |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
1970 (error "Unknown format")))) |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
1971 |
103748
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1972 (defun gdb-read-memory-custom () |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1973 (let* ((res (json-partial-output)) |
103749
f3eef698a354
gdb-mi.el: Now using bindat-get-field instead of fadr functions.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103748
diff
changeset
|
1974 (err-msg (gdb-get-field res 'msg))) |
103748
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1975 (if (not err-msg) |
103749
f3eef698a354
gdb-mi.el: Now using bindat-get-field instead of fadr functions.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103748
diff
changeset
|
1976 (let ((memory (gdb-get-field res 'memory))) |
f3eef698a354
gdb-mi.el: Now using bindat-get-field instead of fadr functions.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103748
diff
changeset
|
1977 (setq gdb-memory-address (gdb-get-field res 'addr)) |
f3eef698a354
gdb-mi.el: Now using bindat-get-field instead of fadr functions.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103748
diff
changeset
|
1978 (setq gdb-memory-next-page (gdb-get-field res 'next-page)) |
f3eef698a354
gdb-mi.el: Now using bindat-get-field instead of fadr functions.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103748
diff
changeset
|
1979 (setq gdb-memory-prev-page (gdb-get-field res 'prev-page)) |
f3eef698a354
gdb-mi.el: Now using bindat-get-field instead of fadr functions.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103748
diff
changeset
|
1980 (setq gdb-memory-last-address gdb-memory-address) |
103748
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1981 (dolist (row memory) |
103752
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
1982 (insert (concat (gdb-get-field row 'addr) ":")) |
103749
f3eef698a354
gdb-mi.el: Now using bindat-get-field instead of fadr functions.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103748
diff
changeset
|
1983 (dolist (column (gdb-get-field row 'data)) |
103752
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
1984 (insert (gdb-pad-string column |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
1985 (+ 2 (gdb-memory-column-width |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
1986 gdb-memory-unit |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
1987 gdb-memory-format))))) |
103748
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1988 (newline))) |
103749
f3eef698a354
gdb-mi.el: Now using bindat-get-field instead of fadr functions.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103748
diff
changeset
|
1989 ;; Show last page instead of empty buffer when out of bounds |
103748
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1990 (progn |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1991 (let ((gdb-memory-address gdb-memory-last-address)) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1992 (gdb-invalidate-memory) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1993 (error err-msg)))))) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1994 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1995 (defvar gdb-memory-mode-map |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1996 (let ((map (make-sparse-keymap))) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1997 (suppress-keymap map t) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1998 (define-key map "q" 'kill-this-buffer) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
1999 (define-key map "n" 'gdb-memory-show-next-page) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2000 (define-key map "p" 'gdb-memory-show-previous-page) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2001 (define-key map "a" 'gdb-memory-set-address) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2002 (define-key map "t" 'gdb-memory-format-binary) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2003 (define-key map "o" 'gdb-memory-format-octal) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2004 (define-key map "u" 'gdb-memory-format-unsigned) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2005 (define-key map "d" 'gdb-memory-format-signed) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2006 (define-key map "x" 'gdb-memory-format-hexadecimal) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2007 (define-key map "b" 'gdb-memory-unit-byte) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2008 (define-key map "h" 'gdb-memory-unit-halfword) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2009 (define-key map "w" 'gdb-memory-unit-word) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2010 (define-key map "g" 'gdb-memory-unit-giant) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2011 (define-key map "R" 'gdb-memory-set-rows) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2012 (define-key map "C" 'gdb-memory-set-columns) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2013 map)) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2014 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2015 (defun gdb-memory-set-address-event (event) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2016 "Handle a click on address field in memory buffer header." |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2017 (interactive "e") |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2018 (save-selected-window |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2019 (select-window (posn-window (event-start event))) |
103751
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2020 (gdb-memory-set-address))) |
103748
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2021 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2022 ;; Non-event version for use within keymap |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2023 (defun gdb-memory-set-address () |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2024 "Set the start memory address." |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2025 (interactive) |
103748
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2026 (let ((arg (read-from-minibuffer "Memory address: "))) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2027 (setq gdb-memory-address arg)) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2028 (gdb-invalidate-memory)) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2029 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2030 (defmacro def-gdb-set-positive-number (name variable echo-string &optional doc) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2031 "Define a function NAME which reads new VAR value from minibuffer." |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2032 `(defun ,name (event) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2033 ,(when doc doc) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2034 (interactive "e") |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2035 (save-selected-window |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2036 (select-window (posn-window (event-start event))) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2037 (let* ((arg (read-from-minibuffer ,echo-string)) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2038 (count (string-to-number arg))) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2039 (if (<= count 0) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2040 (error "Positive number only") |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2041 (customize-set-variable ',variable count) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2042 (gdb-invalidate-memory)))))) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2043 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2044 (def-gdb-set-positive-number |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2045 gdb-memory-set-rows |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2046 gdb-memory-rows |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2047 "Rows: " |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2048 "Set the number of data rows in memory window.") |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2049 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2050 (def-gdb-set-positive-number |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2051 gdb-memory-set-columns |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2052 gdb-memory-columns |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2053 "Columns: " |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2054 "Set the number of data columns in memory window.") |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2055 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2056 (defmacro def-gdb-memory-format (name format doc) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2057 "Define a function NAME to switch memory buffer to use FORMAT. |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2058 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2059 DOC is an optional documentation string." |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2060 `(defun ,name () ,(when doc doc) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2061 (interactive) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2062 (customize-set-variable 'gdb-memory-format ,format) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2063 (gdb-invalidate-memory))) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2064 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2065 (def-gdb-memory-format |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2066 gdb-memory-format-binary "t" |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2067 "Set the display format to binary.") |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2068 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2069 (def-gdb-memory-format |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2070 gdb-memory-format-octal "o" |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2071 "Set the display format to octal.") |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2072 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2073 (def-gdb-memory-format |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2074 gdb-memory-format-unsigned "u" |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2075 "Set the display format to unsigned decimal.") |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2076 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2077 (def-gdb-memory-format |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2078 gdb-memory-format-signed "d" |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2079 "Set the display format to decimal.") |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2080 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2081 (def-gdb-memory-format |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2082 gdb-memory-format-hexadecimal "x" |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2083 "Set the display format to hexadecimal.") |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2084 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2085 (defvar gdb-memory-format-map |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2086 (let ((map (make-sparse-keymap))) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2087 (define-key map [header-line down-mouse-3] 'gdb-memory-format-menu-1) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2088 map) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2089 "Keymap to select format in the header line.") |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2090 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2091 (defvar gdb-memory-format-menu (make-sparse-keymap "Format") |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2092 "Menu of display formats in the header line.") |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2093 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2094 (define-key gdb-memory-format-menu [binary] |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2095 '(menu-item "Binary" gdb-memory-format-binary |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2096 :button (:radio . (equal gdb-memory-format "t")))) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2097 (define-key gdb-memory-format-menu [octal] |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2098 '(menu-item "Octal" gdb-memory-format-octal |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2099 :button (:radio . (equal gdb-memory-format "o")))) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2100 (define-key gdb-memory-format-menu [unsigned] |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2101 '(menu-item "Unsigned Decimal" gdb-memory-format-unsigned |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2102 :button (:radio . (equal gdb-memory-format "u")))) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2103 (define-key gdb-memory-format-menu [signed] |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2104 '(menu-item "Signed Decimal" gdb-memory-format-signed |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2105 :button (:radio . (equal gdb-memory-format "d")))) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2106 (define-key gdb-memory-format-menu [hexadecimal] |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2107 '(menu-item "Hexadecimal" gdb-memory-format-hexadecimal |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2108 :button (:radio . (equal gdb-memory-format "x")))) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2109 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2110 (defun gdb-memory-format-menu (event) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2111 (interactive "@e") |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2112 (x-popup-menu event gdb-memory-format-menu)) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2113 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2114 (defun gdb-memory-format-menu-1 (event) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2115 (interactive "e") |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2116 (save-selected-window |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2117 (select-window (posn-window (event-start event))) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2118 (let* ((selection (gdb-memory-format-menu event)) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2119 (binding (and selection (lookup-key gdb-memory-format-menu |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2120 (vector (car selection)))))) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2121 (if binding (call-interactively binding))))) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2122 |
103751
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2123 (defmacro def-gdb-memory-unit (name unit-size doc) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2124 "Define a function NAME to switch memory unit size to UNIT-SIZE. |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2125 |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2126 DOC is an optional documentation string." |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2127 `(defun ,name () ,(when doc doc) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2128 (interactive) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2129 (customize-set-variable 'gdb-memory-unit ,unit-size) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2130 (gdb-invalidate-memory))) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2131 |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2132 (def-gdb-memory-unit gdb-memory-unit-giant 8 |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2133 "Set the unit size to giant words (eight bytes).") |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2134 |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2135 (def-gdb-memory-unit gdb-memory-unit-word 4 |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2136 "Set the unit size to words (four bytes).") |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2137 |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2138 (def-gdb-memory-unit gdb-memory-unit-halfword 2 |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2139 "Set the unit size to halfwords (two bytes).") |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2140 |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2141 (def-gdb-memory-unit gdb-memory-unit-byte 1 |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2142 "Set the unit size to bytes.") |
103748
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2143 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2144 (defmacro def-gdb-memory-show-page (name address-var &optional doc) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2145 "Define a function NAME which show new address in memory buffer. |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2146 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2147 The defined function switches Memory buffer to show address |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2148 stored in ADDRESS-VAR variable. |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2149 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2150 DOC is an optional documentation string." |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2151 `(defun ,name |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2152 ,(when doc doc) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2153 (interactive) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2154 (let ((gdb-memory-address ,address-var)) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2155 (gdb-invalidate-memory)))) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2156 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2157 (def-gdb-memory-show-page gdb-memory-show-previous-page |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2158 gdb-memory-prev-page) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2159 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2160 (def-gdb-memory-show-page gdb-memory-show-next-page |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2161 gdb-memory-next-page) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2162 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2163 (defvar gdb-memory-unit-map |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2164 (let ((map (make-sparse-keymap))) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2165 (define-key map [header-line down-mouse-3] 'gdb-memory-unit-menu-1) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2166 map) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2167 "Keymap to select units in the header line.") |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2168 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2169 (defvar gdb-memory-unit-menu (make-sparse-keymap "Unit") |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2170 "Menu of units in the header line.") |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2171 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2172 (define-key gdb-memory-unit-menu [giantwords] |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2173 '(menu-item "Giant words" gdb-memory-unit-giant |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2174 :button (:radio . (equal gdb-memory-unit 8)))) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2175 (define-key gdb-memory-unit-menu [words] |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2176 '(menu-item "Words" gdb-memory-unit-word |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2177 :button (:radio . (equal gdb-memory-unit 4)))) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2178 (define-key gdb-memory-unit-menu [halfwords] |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2179 '(menu-item "Halfwords" gdb-memory-unit-halfword |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2180 :button (:radio . (equal gdb-memory-unit 2)))) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2181 (define-key gdb-memory-unit-menu [bytes] |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2182 '(menu-item "Bytes" gdb-memory-unit-byte |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2183 :button (:radio . (equal gdb-memory-unit 1)))) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2184 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2185 (defun gdb-memory-unit-menu (event) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2186 (interactive "@e") |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2187 (x-popup-menu event gdb-memory-unit-menu)) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2188 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2189 (defun gdb-memory-unit-menu-1 (event) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2190 (interactive "e") |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2191 (save-selected-window |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2192 (select-window (posn-window (event-start event))) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2193 (let* ((selection (gdb-memory-unit-menu event)) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2194 (binding (and selection (lookup-key gdb-memory-unit-menu |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2195 (vector (car selection)))))) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2196 (if binding (call-interactively binding))))) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2197 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2198 ;;from make-mode-line-mouse-map |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2199 (defun gdb-make-header-line-mouse-map (mouse function) "\ |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2200 Return a keymap with single entry for mouse key MOUSE on the header line. |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2201 MOUSE is defined to run function FUNCTION with no args in the buffer |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2202 corresponding to the mode line clicked." |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2203 (let ((map (make-sparse-keymap))) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2204 (define-key map (vector 'header-line mouse) function) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2205 (define-key map (vector 'header-line 'down-mouse-1) 'ignore) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2206 map)) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2207 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2208 (defvar gdb-memory-font-lock-keywords |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2209 '(;; <__function.name+n> |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2210 ("<\\(\\(\\sw\\|[_.]\\)+\\)\\(\\+[0-9]+\\)?>" (1 font-lock-function-name-face)) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2211 ) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2212 "Font lock keywords used in `gdb-memory-mode'.") |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2213 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2214 (defvar gdb-memory-header |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2215 '(:eval |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2216 (concat |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2217 "Start address[" |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2218 (propertize "-" |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2219 'face font-lock-warning-face |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2220 'help-echo "mouse-1: decrement address" |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2221 'mouse-face 'mode-line-highlight |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2222 'local-map (gdb-make-header-line-mouse-map |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2223 'mouse-1 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2224 #'gdb-memory-show-previous-page)) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2225 "|" |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2226 (propertize "+" |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2227 'face font-lock-warning-face |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2228 'help-echo "mouse-1: increment address" |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2229 'mouse-face 'mode-line-highlight |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2230 'local-map (gdb-make-header-line-mouse-map |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2231 'mouse-1 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2232 #'gdb-memory-show-next-page)) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2233 "]: " |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2234 (propertize gdb-memory-address |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2235 'face font-lock-warning-face |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2236 'help-echo "mouse-1: set start address" |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2237 'mouse-face 'mode-line-highlight |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2238 'local-map (gdb-make-header-line-mouse-map |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2239 'mouse-1 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2240 #'gdb-memory-set-address-event)) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2241 " Rows: " |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2242 (propertize (number-to-string gdb-memory-rows) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2243 'face font-lock-warning-face |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2244 'help-echo "mouse-1: set number of columns" |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2245 'mouse-face 'mode-line-highlight |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2246 'local-map (gdb-make-header-line-mouse-map |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2247 'mouse-1 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2248 #'gdb-memory-set-rows)) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2249 " Columns: " |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2250 (propertize (number-to-string gdb-memory-columns) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2251 'face font-lock-warning-face |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2252 'help-echo "mouse-1: set number of columns" |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2253 'mouse-face 'mode-line-highlight |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2254 'local-map (gdb-make-header-line-mouse-map |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2255 'mouse-1 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2256 #'gdb-memory-set-columns)) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2257 " Display Format: " |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2258 (propertize gdb-memory-format |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2259 'face font-lock-warning-face |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2260 'help-echo "mouse-3: select display format" |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2261 'mouse-face 'mode-line-highlight |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2262 'local-map gdb-memory-format-map) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2263 " Unit Size: " |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2264 (propertize (number-to-string gdb-memory-unit) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2265 'face font-lock-warning-face |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2266 'help-echo "mouse-3: select unit size" |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2267 'mouse-face 'mode-line-highlight |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2268 'local-map gdb-memory-unit-map))) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2269 "Header line used in `gdb-memory-mode'.") |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2270 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2271 (defun gdb-memory-mode () |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2272 "Major mode for examining memory. |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2273 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2274 \\{gdb-memory-mode-map}" |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2275 (kill-all-local-variables) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2276 (setq major-mode 'gdb-memory-mode) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2277 (setq mode-name "Memory") |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2278 (use-local-map gdb-memory-mode-map) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2279 (setq buffer-read-only t) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2280 (setq header-line-format gdb-memory-header) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2281 (set (make-local-variable 'font-lock-defaults) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2282 '(gdb-memory-font-lock-keywords)) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2283 (run-mode-hooks 'gdb-memory-mode-hook) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2284 'gdb-invalidate-memory) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2285 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2286 (defun gdb-memory-buffer-name () |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2287 (with-current-buffer gud-comint-buffer |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2288 (concat "*memory of " (gdb-get-target-string) "*"))) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2289 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2290 (def-gdb-display-buffer |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2291 gdb-display-memory-buffer |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2292 'gdb-memory-buffer |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2293 "Display memory contents.") |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2294 |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2295 (defun gdb-frame-memory-buffer () |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2296 "Display memory contents in a new frame." |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2297 (interactive) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2298 (let* ((special-display-regexps (append special-display-regexps '(".*"))) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2299 (special-display-frame-alist |
103751
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2300 `((left-fringe . 0) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2301 (right-fringe . 0) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2302 (width . 83) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2303 ,@gdb-frame-parameters))) |
103748
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2304 (display-buffer (gdb-get-buffer-create 'gdb-memory-buffer)))) |
5a1769adb8af
Port memory buffer from gdb-ui.el
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103563
diff
changeset
|
2305 |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2306 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2307 ;;; Disassembly view |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2308 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2309 (defun gdb-disassembly-buffer-name () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2310 (concat "*disassembly of " (gdb-get-target-string) "*")) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2311 |
103522
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
2312 (def-gdb-display-buffer |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2313 gdb-display-disassembly-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2314 'gdb-disassembly-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2315 "Display disassembly for current stack frame.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2316 |
103522
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
2317 (def-gdb-frame-for-buffer |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2318 gdb-frame-disassembly-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2319 'gdb-disassembly-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2320 "Display disassembly in a new frame.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2321 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2322 (gdb-set-buffer-rules 'gdb-disassembly-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2323 'gdb-disassembly-buffer-name |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2324 'gdb-disassembly-mode) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2325 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2326 (def-gdb-auto-update-trigger gdb-invalidate-disassembly |
103752
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
2327 (gdb-get-buffer 'gdb-disassembly-buffer) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2328 (let ((file (or gdb-selected-file gdb-main-file)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2329 (line (or gdb-selected-line 1))) |
103752
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
2330 (if (not file) (error "Disassembly invalidated with no file selected.") |
103755
a1a6e341fa6e
* progmodes/gdb-mi.el (gdb-input): Add trailing newline to command.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103754
diff
changeset
|
2331 (format "-data-disassemble -f %s -l %d -n -1 -- 0" file line))) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2332 gdb-disassembly-handler) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2333 |
103522
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
2334 (def-gdb-auto-update-handler |
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
2335 gdb-disassembly-handler |
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
2336 gdb-invalidate-disassembly |
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
2337 gdb-disassembly-buffer |
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
2338 gdb-disassembly-handler-custom) |
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
2339 |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2340 (defvar gdb-disassembly-font-lock-keywords |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2341 '(;; <__function.name+n> |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2342 ("<\\(\\(\\sw\\|[_.]\\)+\\)\\(\\+[0-9]+\\)?>" |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2343 (1 font-lock-function-name-face)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2344 ;; 0xNNNNNNNN <__function.name+n>: opcode |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2345 ("^0x[0-9a-f]+ \\(<\\(\\(\\sw\\|[_.]\\)+\\)\\+[0-9]+>\\)?:[ \t]+\\(\\sw+\\)" |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2346 (4 font-lock-keyword-face)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2347 ;; %register(at least i386) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2348 ("%\\sw+" . font-lock-variable-name-face) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2349 ("^\\(Dump of assembler code for function\\) \\(.+\\):" |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2350 (1 font-lock-comment-face) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2351 (2 font-lock-function-name-face)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2352 ("^\\(End of assembler dump\\.\\)" . font-lock-comment-face)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2353 "Font lock keywords used in `gdb-disassembly-mode'.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2354 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2355 (defvar gdb-disassembly-mode-map |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2356 ;; TODO |
103759
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
2357 (let ((map (make-sparse-keymap))) |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
2358 (suppress-keymap map) |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
2359 (define-key map "q" 'kill-this-buffer) |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
2360 map)) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2361 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2362 (defun gdb-disassembly-mode () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2363 "Major mode for GDB disassembly information. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2364 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2365 \\{gdb-disassembly-mode-map}" |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2366 (kill-all-local-variables) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2367 (setq major-mode 'gdb-disassembly-mode) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2368 (setq mode-name "Disassembly") |
103751
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2369 (add-to-list 'overlay-arrow-variable-list 'gdb-overlay-arrow-position) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2370 (setq fringes-outside-margins t) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2371 (setq gdb-overlay-arrow-position (make-marker)) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2372 (use-local-map gdb-disassembly-mode-map) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2373 (setq buffer-read-only t) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2374 (buffer-disable-undo) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2375 (set (make-local-variable 'font-lock-defaults) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2376 '(gdb-disassembly-font-lock-keywords)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2377 (run-mode-hooks 'gdb-disassembly-mode-hook) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2378 'gdb-invalidate-disassembly) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2379 |
103522
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
2380 (defun gdb-disassembly-handler-custom () |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2381 (let* ((res (json-partial-output)) |
103752
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
2382 (instructions (gdb-get-field res 'asm_insns)) |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
2383 (pos 1)) |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
2384 (let* ((last-instr (car (last instructions))) |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
2385 (column-padding (+ 2 (string-width |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
2386 (apply 'format |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
2387 `("<%s+%s>:" |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
2388 ,@(gdb-get-many-fields last-instr 'func-name 'offset))))))) |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
2389 (dolist (instr instructions) |
103751
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2390 ;; Put overlay arrow |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2391 (when (string-equal (gdb-get-field instr 'address) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2392 gdb-pc-address) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2393 (progn |
103752
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
2394 (setq pos (point)) |
103751
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2395 (setq fringe-indicator-alist |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2396 (if (string-equal gdb-frame-number "0") |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2397 nil |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2398 '((overlay-arrow . hollow-right-triangle)))) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2399 (set-marker gdb-overlay-arrow-position (point)))) |
103752
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
2400 (insert |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
2401 (concat |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
2402 (gdb-get-field instr 'address) |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
2403 " " |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
2404 (gdb-pad-string (apply 'format `("<%s+%s>:" ,@(gdb-get-many-fields instr 'func-name 'offset))) |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
2405 (- column-padding)) |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
2406 (gdb-get-field instr 'inst) |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
2407 "\n"))) |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
2408 (gdb-disassembly-place-breakpoints) |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
2409 (let ((window (get-buffer-window (current-buffer) 0))) |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
2410 (set-window-point window pos))))) |
103751
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2411 |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2412 (defun gdb-disassembly-place-breakpoints () |
103752
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
2413 (gdb-remove-breakpoint-icons (point-min) (point-max)) |
103751
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2414 (dolist (breakpoint gdb-breakpoints-list) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2415 (let ((bptno (gdb-get-field breakpoint 'number)) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2416 (flag (gdb-get-field breakpoint 'enabled)) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2417 (address (gdb-get-field breakpoint 'addr))) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2418 (save-excursion |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2419 (goto-char (point-min)) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2420 (if (re-search-forward (concat "^" address) nil t) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2421 (gdb-put-breakpoint-icon (string-equal flag "y") bptno)))))) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2422 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2423 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2424 ;;; Breakpoints view |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2425 (defvar gdb-breakpoints-header |
103759
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
2426 (list |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
2427 (gdb-propertize-header "Breakpoints" gdb-breakpoints-buffer |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
2428 nil nil mode-line) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2429 " " |
103759
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
2430 (gdb-propertize-header "Threads" gdb-threads-buffer |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
2431 "mouse-1: select" mode-line-highlight mode-line-inactive))) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2432 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2433 (defun gdb-breakpoints-mode () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2434 "Major mode for gdb breakpoints. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2435 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2436 \\{gdb-breakpoints-mode-map}" |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2437 (kill-all-local-variables) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2438 (setq major-mode 'gdb-breakpoints-mode) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2439 (setq mode-name "Breakpoints") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2440 (use-local-map gdb-breakpoints-mode-map) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2441 (setq buffer-read-only t) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2442 (buffer-disable-undo) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2443 (setq header-line-format gdb-breakpoints-header) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2444 (run-mode-hooks 'gdb-breakpoints-mode-hook) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2445 'gdb-invalidate-breakpoints) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2446 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2447 (defun gdb-toggle-breakpoint () |
103751
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2448 "Enable/disable breakpoint at current line of breakpoints buffer." |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2449 (interactive) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2450 (save-excursion |
103752
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
2451 (beginning-of-line) |
103751
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2452 (let ((breakpoint (get-text-property (point) 'gdb-breakpoint))) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2453 (if breakpoint |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2454 (gud-basic-call |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2455 (concat (if (string-equal "y" (gdb-get-field breakpoint 'enabled)) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2456 "-break-disable " |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2457 "-break-enable ") |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2458 (gdb-get-field breakpoint 'number))) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2459 (error "Not recognized as break/watchpoint line"))))) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2460 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2461 (defun gdb-delete-breakpoint () |
103751
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2462 "Delete the breakpoint at current line of breakpoints buffer." |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2463 (interactive) |
103752
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
2464 (save-excursion |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
2465 (beginning-of-line) |
103751
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2466 (let ((breakpoint (get-text-property (point) 'gdb-breakpoint))) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2467 (if breakpoint |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2468 (gud-basic-call (concat "-break-delete " (gdb-get-field breakpoint 'number))) |
103752
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
2469 (error "Not recognized as break/watchpoint line"))))) |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
2470 |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2471 (defun gdb-goto-breakpoint (&optional event) |
103751
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2472 "Go to the location of breakpoint at current line of |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2473 breakpoints buffer." |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2474 (interactive (list last-input-event)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2475 (if event (posn-set-point (event-end event))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2476 ;; Hack to stop gdb-goto-breakpoint displaying in GUD buffer. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2477 (let ((window (get-buffer-window gud-comint-buffer))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2478 (if window (save-selected-window (select-window window)))) |
103752
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
2479 (save-excursion |
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
2480 (beginning-of-line) |
103751
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2481 (let ((breakpoint (get-text-property (point) 'gdb-breakpoint))) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2482 (if breakpoint |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2483 (let ((bptno (gdb-get-field breakpoint 'number)) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2484 (file (gdb-get-field breakpoint 'file)) |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2485 (line (gdb-get-field breakpoint 'line))) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2486 (save-selected-window |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2487 (let* ((buffer (find-file-noselect |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2488 (if (file-exists-p file) file |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2489 (cdr (assoc bptno gdb-location-alist))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2490 (window (or (gdb-display-source-buffer buffer) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2491 (display-buffer buffer)))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2492 (setq gdb-source-window window) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2493 (with-current-buffer buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2494 (goto-line (string-to-number line)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2495 (set-window-point window (point)))))) |
103752
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
2496 (error "Not recognized as break/watchpoint line"))))) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2497 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2498 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2499 ;; Frames buffer. This displays a perpetually correct bactrack trace. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2500 ;; |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2501 (gdb-set-buffer-rules 'gdb-stack-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2502 'gdb-stack-buffer-name |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2503 'gdb-frames-mode) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2504 |
103753
bd7c204d425b
* progmodes/gdb-mi.el (gdb-stack-list-frames-handler): Rewritten
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103752
diff
changeset
|
2505 (def-gdb-auto-updated-buffer gdb-stack-buffer |
bd7c204d425b
* progmodes/gdb-mi.el (gdb-stack-list-frames-handler): Rewritten
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103752
diff
changeset
|
2506 gdb-invalidate-frames |
103755
a1a6e341fa6e
* progmodes/gdb-mi.el (gdb-input): Add trailing newline to command.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103754
diff
changeset
|
2507 "-stack-list-frames" |
103753
bd7c204d425b
* progmodes/gdb-mi.el (gdb-stack-list-frames-handler): Rewritten
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103752
diff
changeset
|
2508 gdb-stack-list-frames-handler |
bd7c204d425b
* progmodes/gdb-mi.el (gdb-stack-list-frames-handler): Rewritten
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103752
diff
changeset
|
2509 gdb-stack-list-frames-custom) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2510 |
103522
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
2511 (defun gdb-insert-frame-location (frame) |
103751
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2512 "Insert \"of file:line\" button or library name for structure FRAME. |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2513 |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2514 FRAME must have either \"file\" and \"line\" members or \"from\" |
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2515 member." |
103749
f3eef698a354
gdb-mi.el: Now using bindat-get-field instead of fadr functions.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103748
diff
changeset
|
2516 (let ((file (gdb-get-field frame 'fullname)) |
f3eef698a354
gdb-mi.el: Now using bindat-get-field instead of fadr functions.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103748
diff
changeset
|
2517 (line (gdb-get-field frame 'line)) |
f3eef698a354
gdb-mi.el: Now using bindat-get-field instead of fadr functions.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103748
diff
changeset
|
2518 (from (gdb-get-field frame 'from))) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2519 (cond (file |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2520 ;; Filename with line number |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2521 (insert " of ") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2522 (gdb-insert-file-location-button |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2523 file (string-to-number line))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2524 ;; Library |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2525 (from (insert (format " of %s" from)))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2526 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2527 (defun gdb-stack-list-frames-custom () |
103753
bd7c204d425b
* progmodes/gdb-mi.el (gdb-stack-list-frames-handler): Rewritten
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103752
diff
changeset
|
2528 (let* ((res (json-partial-output "frame")) |
bd7c204d425b
* progmodes/gdb-mi.el (gdb-stack-list-frames-handler): Rewritten
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103752
diff
changeset
|
2529 (stack (gdb-get-field res 'stack))) |
bd7c204d425b
* progmodes/gdb-mi.el (gdb-stack-list-frames-handler): Rewritten
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103752
diff
changeset
|
2530 (dolist (frame (nreverse stack)) |
bd7c204d425b
* progmodes/gdb-mi.el (gdb-stack-list-frames-handler): Rewritten
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103752
diff
changeset
|
2531 (insert (apply 'format `("%s in %s" ,@(gdb-get-many-fields frame 'level 'func)))) |
bd7c204d425b
* progmodes/gdb-mi.el (gdb-stack-list-frames-handler): Rewritten
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103752
diff
changeset
|
2532 (gdb-insert-frame-location frame) |
bd7c204d425b
* progmodes/gdb-mi.el (gdb-stack-list-frames-handler): Rewritten
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103752
diff
changeset
|
2533 (newline)) |
bd7c204d425b
* progmodes/gdb-mi.el (gdb-stack-list-frames-handler): Rewritten
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103752
diff
changeset
|
2534 (save-excursion |
bd7c204d425b
* progmodes/gdb-mi.el (gdb-stack-list-frames-handler): Rewritten
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103752
diff
changeset
|
2535 (goto-char (point-min)) |
bd7c204d425b
* progmodes/gdb-mi.el (gdb-stack-list-frames-handler): Rewritten
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103752
diff
changeset
|
2536 (forward-line 1) |
bd7c204d425b
* progmodes/gdb-mi.el (gdb-stack-list-frames-handler): Rewritten
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103752
diff
changeset
|
2537 (while (< (point) (point-max)) |
bd7c204d425b
* progmodes/gdb-mi.el (gdb-stack-list-frames-handler): Rewritten
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103752
diff
changeset
|
2538 (add-text-properties (point-at-bol) (1+ (point-at-bol)) |
bd7c204d425b
* progmodes/gdb-mi.el (gdb-stack-list-frames-handler): Rewritten
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103752
diff
changeset
|
2539 '(mouse-face highlight |
bd7c204d425b
* progmodes/gdb-mi.el (gdb-stack-list-frames-handler): Rewritten
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103752
diff
changeset
|
2540 help-echo "mouse-2, RET: Select frame")) |
bd7c204d425b
* progmodes/gdb-mi.el (gdb-stack-list-frames-handler): Rewritten
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103752
diff
changeset
|
2541 (beginning-of-line) |
bd7c204d425b
* progmodes/gdb-mi.el (gdb-stack-list-frames-handler): Rewritten
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103752
diff
changeset
|
2542 (when (and (looking-at "^[0-9]+\\s-+\\S-+\\s-+\\(\\S-+\\)") |
bd7c204d425b
* progmodes/gdb-mi.el (gdb-stack-list-frames-handler): Rewritten
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103752
diff
changeset
|
2543 (equal (match-string 1) gdb-selected-frame)) |
bd7c204d425b
* progmodes/gdb-mi.el (gdb-stack-list-frames-handler): Rewritten
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103752
diff
changeset
|
2544 (if (> (car (window-fringes)) 0) |
bd7c204d425b
* progmodes/gdb-mi.el (gdb-stack-list-frames-handler): Rewritten
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103752
diff
changeset
|
2545 (progn |
bd7c204d425b
* progmodes/gdb-mi.el (gdb-stack-list-frames-handler): Rewritten
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103752
diff
changeset
|
2546 (or gdb-stack-position |
bd7c204d425b
* progmodes/gdb-mi.el (gdb-stack-list-frames-handler): Rewritten
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103752
diff
changeset
|
2547 (setq gdb-stack-position (make-marker))) |
bd7c204d425b
* progmodes/gdb-mi.el (gdb-stack-list-frames-handler): Rewritten
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103752
diff
changeset
|
2548 (set-marker gdb-stack-position (point))) |
bd7c204d425b
* progmodes/gdb-mi.el (gdb-stack-list-frames-handler): Rewritten
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103752
diff
changeset
|
2549 (let ((bl (point-at-bol))) |
bd7c204d425b
* progmodes/gdb-mi.el (gdb-stack-list-frames-handler): Rewritten
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103752
diff
changeset
|
2550 (put-text-property bl (+ bl 4) |
bd7c204d425b
* progmodes/gdb-mi.el (gdb-stack-list-frames-handler): Rewritten
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103752
diff
changeset
|
2551 'face '(:inverse-video t))))) |
bd7c204d425b
* progmodes/gdb-mi.el (gdb-stack-list-frames-handler): Rewritten
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103752
diff
changeset
|
2552 (forward-line 1))))) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2553 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2554 (defun gdb-stack-buffer-name () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2555 (with-current-buffer gud-comint-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2556 (concat "*stack frames of " (gdb-get-target-string) "*"))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2557 |
103522
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
2558 (def-gdb-display-buffer |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2559 gdb-display-stack-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2560 'gdb-stack-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2561 "Display backtrace of current stack.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2562 |
103522
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
2563 (def-gdb-frame-for-buffer |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2564 gdb-frame-stack-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2565 'gdb-stack-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2566 "Display backtrace of current stack in a new frame.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2567 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2568 (defvar gdb-frames-mode-map |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2569 (let ((map (make-sparse-keymap))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2570 (suppress-keymap map) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2571 (define-key map "q" 'kill-this-buffer) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2572 (define-key map "\r" 'gdb-frames-select) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2573 (define-key map [mouse-2] 'gdb-frames-select) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2574 (define-key map [follow-link] 'mouse-face) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2575 map)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2576 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2577 (defvar gdb-frames-font-lock-keywords |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2578 '(("in \\([^ ]+\\) of " (1 font-lock-function-name-face))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2579 "Font lock keywords used in `gdb-frames-mode'.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2580 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2581 (defun gdb-frames-mode () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2582 "Major mode for gdb call stack. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2583 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2584 \\{gdb-frames-mode-map}" |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2585 (kill-all-local-variables) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2586 (setq major-mode 'gdb-frames-mode) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2587 (setq mode-name "Frames") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2588 (setq gdb-stack-position nil) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2589 (add-to-list 'overlay-arrow-variable-list 'gdb-stack-position) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2590 (setq truncate-lines t) ;; Make it easier to see overlay arrow. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2591 (setq buffer-read-only t) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2592 (buffer-disable-undo) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2593 (use-local-map gdb-frames-mode-map) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2594 (set (make-local-variable 'font-lock-defaults) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2595 '(gdb-frames-font-lock-keywords)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2596 (run-mode-hooks 'gdb-frames-mode-hook) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2597 'gdb-invalidate-frames) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2598 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2599 (defun gdb-get-frame-number () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2600 (save-excursion |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2601 (end-of-line) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2602 (let* ((pos (re-search-backward "^\\([0-9]+\\)" nil t)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2603 (n (or (and pos (match-string-no-properties 1)) "0"))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2604 n))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2605 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2606 (defun gdb-frames-select (&optional event) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2607 "Select the frame and display the relevant source." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2608 (interactive (list last-input-event)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2609 (if event (posn-set-point (event-end event))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2610 (gud-basic-call (concat "-stack-select-frame " (gdb-get-frame-number)))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2611 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2612 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2613 ;; Locals buffer. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2614 ;; uses "-stack-list-locals --simple-values". Needs GDB 6.1 onwards. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2615 (gdb-set-buffer-rules 'gdb-locals-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2616 'gdb-locals-buffer-name |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2617 'gdb-locals-mode) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2618 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2619 (def-gdb-auto-update-trigger gdb-invalidate-locals |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2620 (gdb-get-buffer 'gdb-locals-buffer) |
103755
a1a6e341fa6e
* progmodes/gdb-mi.el (gdb-input): Add trailing newline to command.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103754
diff
changeset
|
2621 "-stack-list-locals --simple-values" |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2622 gdb-stack-list-locals-handler) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2623 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2624 (defconst gdb-stack-list-locals-regexp |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2625 (concat "name=\"\\(.*?\\)\",type=\"\\(.*?\\)\"")) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2626 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2627 (defvar gdb-locals-watch-map |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2628 (let ((map (make-sparse-keymap))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2629 (suppress-keymap map) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2630 (define-key map "\r" 'gud-watch) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2631 (define-key map [mouse-2] 'gud-watch) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2632 map) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2633 "Keymap to create watch expression of a complex data type local variable.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2634 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2635 (defvar gdb-edit-locals-map-1 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2636 (let ((map (make-sparse-keymap))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2637 (suppress-keymap map) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2638 (define-key map "\r" 'gdb-edit-locals-value) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2639 (define-key map [mouse-2] 'gdb-edit-locals-value) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2640 map) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2641 "Keymap to edit value of a simple data type local variable.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2642 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2643 (defun gdb-edit-locals-value (&optional event) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2644 "Assign a value to a variable displayed in the locals buffer." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2645 (interactive (list last-input-event)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2646 (save-excursion |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2647 (if event (posn-set-point (event-end event))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2648 (beginning-of-line) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2649 (let* ((var (current-word)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2650 (value (read-string (format "New value (%s): " var)))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2651 (gud-basic-call |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2652 (concat "-gdb-set variable " var " = " value))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2653 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2654 ;; Dont display values of arrays or structures. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2655 ;; These can be expanded using gud-watch. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2656 (defun gdb-stack-list-locals-handler nil |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2657 (setq gdb-pending-triggers (delq 'gdb-invalidate-locals |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2658 gdb-pending-triggers)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2659 (let (local locals-list) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2660 (goto-char (point-min)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2661 (while (re-search-forward gdb-stack-list-locals-regexp nil t) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2662 (let ((local (list (match-string 1) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2663 (match-string 2) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2664 nil))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2665 (if (looking-at ",value=\\(\".*\"\\)}") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2666 (setcar (nthcdr 2 local) (read (match-string 1)))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2667 (push local locals-list))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2668 (let ((buf (gdb-get-buffer 'gdb-locals-buffer))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2669 (and buf (with-current-buffer buf |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2670 (let* ((window (get-buffer-window buf 0)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2671 (start (window-start window)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2672 (p (window-point window)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2673 (buffer-read-only nil) (name) (value)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2674 (erase-buffer) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2675 (dolist (local locals-list) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2676 (setq name (car local)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2677 (setq value (nth 2 local)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2678 (if (or (not value) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2679 (string-match "\\0x" value)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2680 (add-text-properties 0 (length name) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2681 `(mouse-face highlight |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2682 help-echo "mouse-2: create watch expression" |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2683 local-map ,gdb-locals-watch-map) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2684 name) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2685 (add-text-properties 0 (length value) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2686 `(mouse-face highlight |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2687 help-echo "mouse-2: edit value" |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2688 local-map ,gdb-edit-locals-map-1) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2689 value)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2690 (insert |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2691 (concat name "\t" (nth 1 local) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2692 "\t" (nth 2 local) "\n"))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2693 (set-window-start window start) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2694 (set-window-point window p))))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2695 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2696 (defvar gdb-locals-header |
103759
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
2697 (list |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
2698 (gdb-propertize-header "Locals" gdb-locals-buffer |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
2699 nil nil mode-line) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2700 " " |
103759
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
2701 (gdb-propertize-header "Registers" gdb-registers-buffer |
b4080ae429fb
(gdb-init-1): Move sending
Nick Roberts <nickrob@snap.net.nz>
parents:
103755
diff
changeset
|
2702 "mouse-1: select" mode-line-highlight mode-line-inactive))) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2703 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2704 (defvar gdb-locals-mode-map |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2705 (let ((map (make-sparse-keymap))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2706 (suppress-keymap map) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2707 (define-key map "q" 'kill-this-buffer) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2708 map)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2709 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2710 (defun gdb-locals-mode () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2711 "Major mode for gdb locals. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2712 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2713 \\{gdb-locals-mode-map}" |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2714 (kill-all-local-variables) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2715 (setq major-mode 'gdb-locals-mode) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2716 (setq mode-name (concat "Locals:" gdb-selected-frame)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2717 (setq buffer-read-only t) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2718 (buffer-disable-undo) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2719 (setq header-line-format gdb-locals-header) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2720 (use-local-map gdb-locals-mode-map) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2721 (set (make-local-variable 'font-lock-defaults) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2722 '(gdb-locals-font-lock-keywords)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2723 (run-mode-hooks 'gdb-locals-mode-hook) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2724 'gdb-invalidate-locals) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2725 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2726 (defun gdb-locals-buffer-name () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2727 (with-current-buffer gud-comint-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2728 (concat "*locals of " (gdb-get-target-string) "*"))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2729 |
103522
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
2730 (def-gdb-display-buffer |
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
2731 gdb-display-locals-buffer |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2732 'gdb-locals-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2733 "Display local variables of current stack and their values.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2734 |
103522
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
2735 (def-gdb-frame-for-buffer |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2736 gdb-frame-locals-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2737 'gdb-locals-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2738 "Display local variables of current stack and their values in a new frame.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2739 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2740 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2741 ;; Registers buffer. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2742 ;; |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2743 (gdb-set-buffer-rules 'gdb-registers-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2744 'gdb-registers-buffer-name |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2745 'gdb-registers-mode) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2746 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2747 (def-gdb-auto-update-trigger gdb-invalidate-registers |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2748 (gdb-get-buffer 'gdb-registers-buffer) |
103755
a1a6e341fa6e
* progmodes/gdb-mi.el (gdb-input): Add trailing newline to command.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103754
diff
changeset
|
2749 "-data-list-register-values x" |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2750 gdb-data-list-register-values-handler) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2751 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2752 (defconst gdb-data-list-register-values-regexp |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2753 "number=\"\\(.*?\\)\",value=\"\\(.*?\\)\"") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2754 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2755 (defun gdb-data-list-register-values-handler () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2756 (setq gdb-pending-triggers (delq 'gdb-invalidate-registers |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2757 gdb-pending-triggers)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2758 (goto-char (point-min)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2759 (if (re-search-forward gdb-error-regexp nil t) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2760 (progn |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2761 (let ((match nil)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2762 (setq match (match-string 1)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2763 (with-current-buffer (gdb-get-buffer 'gdb-registers-buffer) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2764 (let ((buffer-read-only nil)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2765 (erase-buffer) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2766 (insert match) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2767 (goto-char (point-min)))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2768 (let ((register-list (reverse gdb-register-names)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2769 (register nil) (register-string nil) (register-values nil)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2770 (goto-char (point-min)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2771 (while (re-search-forward gdb-data-list-register-values-regexp nil t) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2772 (setq register (pop register-list)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2773 (setq register-string (concat register "\t" (match-string 2) "\n")) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2774 (if (member (match-string 1) gdb-changed-registers) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2775 (put-text-property 0 (length register-string) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2776 'face 'font-lock-warning-face |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2777 register-string)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2778 (setq register-values |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2779 (concat register-values register-string))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2780 (let ((buf (gdb-get-buffer 'gdb-registers-buffer))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2781 (with-current-buffer buf |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2782 (let ((p (window-point (get-buffer-window buf 0))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2783 (buffer-read-only nil)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2784 (erase-buffer) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2785 (insert register-values) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2786 (set-window-point (get-buffer-window buf 0) p)))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2787 (gdb-data-list-register-values-custom)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2788 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2789 (defun gdb-data-list-register-values-custom () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2790 (with-current-buffer (gdb-get-buffer 'gdb-registers-buffer) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2791 (save-excursion |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2792 (let ((buffer-read-only nil) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2793 bl) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2794 (goto-char (point-min)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2795 (while (< (point) (point-max)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2796 (setq bl (line-beginning-position)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2797 (when (looking-at "^[^\t]+") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2798 (put-text-property bl (match-end 0) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2799 'face font-lock-variable-name-face)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2800 (forward-line 1)))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2801 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2802 (defvar gdb-registers-mode-map |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2803 (let ((map (make-sparse-keymap))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2804 (suppress-keymap map) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2805 (define-key map "q" 'kill-this-buffer) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2806 map)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2807 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2808 (defun gdb-registers-mode () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2809 "Major mode for gdb registers. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2810 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2811 \\{gdb-registers-mode-map}" |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2812 (kill-all-local-variables) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2813 (setq major-mode 'gdb-registers-mode) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2814 (setq mode-name "Registers") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2815 (setq header-line-format gdb-locals-header) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2816 (setq buffer-read-only t) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2817 (buffer-disable-undo) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2818 (use-local-map gdb-registers-mode-map) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2819 (run-mode-hooks 'gdb-registers-mode-hook) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2820 'gdb-invalidate-registers) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2821 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2822 (defun gdb-registers-buffer-name () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2823 (with-current-buffer gud-comint-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2824 (concat "*registers of " (gdb-get-target-string) "*"))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2825 |
103522
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
2826 (def-gdb-display-buffer |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2827 gdb-display-registers-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2828 'gdb-registers-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2829 "Display integer register contents.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2830 |
103522
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
2831 (def-gdb-frame-for-buffer |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2832 gdb-frame-registers-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2833 'gdb-registers-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2834 "Display integer register contents in a new frame.") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2835 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2836 ;; Needs GDB 6.4 onwards (used to fail with no stack). |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2837 (defun gdb-get-changed-registers () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2838 (if (and (gdb-get-buffer 'gdb-registers-buffer) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2839 (not (member 'gdb-get-changed-registers gdb-pending-triggers))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2840 (progn |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2841 (gdb-input |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2842 (list |
103755
a1a6e341fa6e
* progmodes/gdb-mi.el (gdb-input): Add trailing newline to command.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103754
diff
changeset
|
2843 "-data-list-changed-registers" |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2844 'gdb-get-changed-registers-handler)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2845 (push 'gdb-get-changed-registers gdb-pending-triggers)))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2846 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2847 (defconst gdb-data-list-register-names-regexp "\"\\(.*?\\)\"") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2848 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2849 (defun gdb-get-changed-registers-handler () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2850 (setq gdb-pending-triggers |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2851 (delq 'gdb-get-changed-registers gdb-pending-triggers)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2852 (setq gdb-changed-registers nil) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2853 (goto-char (point-min)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2854 (while (re-search-forward gdb-data-list-register-names-regexp nil t) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2855 (push (match-string 1) gdb-changed-registers))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2856 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2857 (defun gdb-get-register-names () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2858 "Create a list of register names." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2859 (goto-char (point-min)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2860 (setq gdb-register-names nil) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2861 (while (re-search-forward gdb-data-list-register-names-regexp nil t) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2862 (push (match-string 1) gdb-register-names))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2863 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2864 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2865 (defun gdb-get-source-file-list () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2866 "Create list of source files for current GDB session. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2867 If buffers already exist for any of these files, gud-minor-mode |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2868 is set in them." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2869 (goto-char (point-min)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2870 (while (re-search-forward gdb-source-file-regexp nil t) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2871 (push (match-string 1) gdb-source-file-list)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2872 (dolist (buffer (buffer-list)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2873 (with-current-buffer buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2874 (when (member buffer-file-name gdb-source-file-list) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2875 (gdb-init-buffer)))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2876 (gdb-force-mode-line-update |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2877 (propertize "ready" 'face font-lock-variable-name-face))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2878 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2879 (defun gdb-get-selected-frame () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2880 (if (not (member 'gdb-get-selected-frame gdb-pending-triggers)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2881 (progn |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2882 (gdb-input |
103755
a1a6e341fa6e
* progmodes/gdb-mi.el (gdb-input): Add trailing newline to command.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103754
diff
changeset
|
2883 (list "-stack-info-frame" 'gdb-frame-handler)) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2884 (push 'gdb-get-selected-frame |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2885 gdb-pending-triggers)))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2886 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2887 (defun gdb-frame-handler () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2888 (setq gdb-pending-triggers |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2889 (delq 'gdb-get-selected-frame gdb-pending-triggers)) |
103749
f3eef698a354
gdb-mi.el: Now using bindat-get-field instead of fadr functions.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103748
diff
changeset
|
2890 (let ((frame (gdb-get-field (json-partial-output) 'frame))) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2891 (when frame |
103749
f3eef698a354
gdb-mi.el: Now using bindat-get-field instead of fadr functions.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103748
diff
changeset
|
2892 (setq gdb-frame-number (gdb-get-field frame 'level)) |
103751
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2893 (setq gdb-pc-address (gdb-get-field frame 'addr)) |
103749
f3eef698a354
gdb-mi.el: Now using bindat-get-field instead of fadr functions.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103748
diff
changeset
|
2894 (setq gdb-selected-frame (gdb-get-field frame 'func)) |
f3eef698a354
gdb-mi.el: Now using bindat-get-field instead of fadr functions.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103748
diff
changeset
|
2895 (setq gdb-selected-file (gdb-get-field frame 'fullname)) |
f3eef698a354
gdb-mi.el: Now using bindat-get-field instead of fadr functions.
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103748
diff
changeset
|
2896 (let ((line (gdb-get-field frame 'line))) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2897 (setq gdb-selected-line (or (and line (string-to-number line)) |
103522
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
2898 nil)) ; don't fail if line is nil |
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
2899 (when line ; obey the current file only if we have line info |
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
2900 (setq gud-last-frame (cons gdb-selected-file gdb-selected-line)) |
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
2901 (gud-display-frame))) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2902 (if (gdb-get-buffer 'gdb-locals-buffer) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2903 (with-current-buffer (gdb-get-buffer 'gdb-locals-buffer) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2904 (setq mode-name (concat "Locals:" gdb-selected-frame)))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2905 (if (gdb-get-buffer 'gdb-disassembly-buffer) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2906 (with-current-buffer (gdb-get-buffer 'gdb-disassembly-buffer) |
103752
dcd3d86fcf81
* progmodes/gdb-mi.el (gdb-init-1): Disassembly buffer mode name
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103751
diff
changeset
|
2907 (setq mode-name (concat "Disassembly:" gdb-selected-frame)))) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2908 (if gud-overlay-arrow-position |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2909 (let ((buffer (marker-buffer gud-overlay-arrow-position)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2910 (position (marker-position gud-overlay-arrow-position))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2911 (when buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2912 (with-current-buffer buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2913 (setq fringe-indicator-alist |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2914 (if (string-equal gdb-frame-number "0") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2915 nil |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2916 '((overlay-arrow . hollow-right-triangle)))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2917 (setq gud-overlay-arrow-position (make-marker)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2918 (set-marker gud-overlay-arrow-position position))))) |
103522
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
2919 (when gdb-selected-line |
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
2920 (gdb-invalidate-disassembly))))) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2921 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2922 (defvar gdb-prompt-name-regexp "value=\"\\(.*?\\)\"") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2923 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2924 (defun gdb-get-prompt () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2925 "Find prompt for GDB session." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2926 (goto-char (point-min)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2927 (setq gdb-prompt-name nil) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2928 (re-search-forward gdb-prompt-name-regexp nil t) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2929 (setq gdb-prompt-name (match-string 1)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2930 ;; Insert first prompt. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2931 (setq gdb-filter-output (concat gdb-filter-output gdb-prompt-name))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2932 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2933 ;;;; Window management |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2934 (defun gdb-display-buffer (buf dedicated &optional frame) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2935 (let ((answer (get-buffer-window buf (or frame 0)))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2936 (if answer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2937 (display-buffer buf nil (or frame 0)) ;Deiconify the frame if necessary. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2938 (let ((window (get-lru-window))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2939 (if (eq (buffer-local-value 'gud-minor-mode (window-buffer window)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2940 'gdbmi) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2941 (let* ((largest (get-largest-window)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2942 (cur-size (window-height largest))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2943 (setq answer (split-window largest)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2944 (set-window-buffer answer buf) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2945 (set-window-dedicated-p answer dedicated) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2946 answer) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2947 (set-window-buffer window buf) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2948 window))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2949 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2950 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2951 ;;; Shared keymap initialization: |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2952 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2953 (let ((menu (make-sparse-keymap "GDB-Windows"))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2954 (define-key gud-menu-map [displays] |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2955 `(menu-item "GDB-Windows" ,menu |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2956 :visible (eq gud-minor-mode 'gdbmi))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2957 (define-key menu [gdb] '("Gdb" . gdb-display-gdb-buffer)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2958 (define-key menu [threads] '("Threads" . gdb-display-threads-buffer)) |
103751
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2959 (define-key menu [memory] '("Memory" . gdb-display-memory-buffer)) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2960 (define-key menu [disassembly] |
103522
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
2961 '("Disassembly" . gdb-display-disassembly-buffer)) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2962 (define-key menu [registers] '("Registers" . gdb-display-registers-buffer)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2963 (define-key menu [inferior] |
103779
d8f620ade0dc
(gdb): Remove description of
Nick Roberts <nickrob@snap.net.nz>
parents:
103759
diff
changeset
|
2964 '("Separate IO" . gdb-display-separate-io-buffer)) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2965 (define-key menu [locals] '("Locals" . gdb-display-locals-buffer)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2966 (define-key menu [frames] '("Stack" . gdb-display-stack-buffer)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2967 (define-key menu [breakpoints] |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2968 '("Breakpoints" . gdb-display-breakpoints-buffer))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2969 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2970 (let ((menu (make-sparse-keymap "GDB-Frames"))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2971 (define-key gud-menu-map [frames] |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2972 `(menu-item "GDB-Frames" ,menu |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2973 :visible (eq gud-minor-mode 'gdbmi))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2974 (define-key menu [gdb] '("Gdb" . gdb-frame-gdb-buffer)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2975 (define-key menu [threads] '("Threads" . gdb-frame-threads-buffer)) |
103751
47e338b0e07b
* progmodes/gdb-mi.el (gdb-init-1): Set correct mode name for
Dmitry Dzhus <dima@sphinx.net.ru>
parents:
103749
diff
changeset
|
2976 (define-key menu [memory] '("Memory" . gdb-frame-memory-buffer)) |
103522
b9003818f4a3
Pull further modified changes from Dmitry's repository (http://sphinx.net.ru/hg/gdb-mi/).
Nick Roberts <nickrob@snap.net.nz>
parents:
103504
diff
changeset
|
2977 (define-key menu [disassembly] '("Disassembly" . gdb-frame-disassembly-buffer)) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2978 (define-key menu [registers] '("Registers" . gdb-frame-registers-buffer)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2979 (define-key menu [inferior] |
103779
d8f620ade0dc
(gdb): Remove description of
Nick Roberts <nickrob@snap.net.nz>
parents:
103759
diff
changeset
|
2980 '("Separate IO" . gdb-frame-separate-io-buffer)) |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2981 (define-key menu [locals] '("Locals" . gdb-frame-locals-buffer)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2982 (define-key menu [frames] '("Stack" . gdb-frame-stack-buffer)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2983 (define-key menu [breakpoints] |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2984 '("Breakpoints" . gdb-frame-breakpoints-buffer))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2985 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2986 (let ((menu (make-sparse-keymap "GDB-MI"))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2987 (define-key gud-menu-map [mi] |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2988 `(menu-item "GDB-MI" ,menu :visible (eq gud-minor-mode 'gdbmi))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2989 (define-key menu [gdb-customize] |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2990 '(menu-item "Customize" (lambda () (interactive) (customize-group 'gdb)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2991 :help "Customize Gdb Graphical Mode options.")) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2992 (define-key menu [gdb-many-windows] |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2993 '(menu-item "Display Other Windows" gdb-many-windows |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2994 :help "Toggle display of locals, stack and breakpoint information" |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2995 :button (:toggle . gdb-many-windows))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2996 (define-key menu [gdb-restore-windows] |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2997 '(menu-item "Restore Window Layout" gdb-restore-windows |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2998 :help "Restore standard layout for debug session."))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
2999 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3000 (defun gdb-frame-gdb-buffer () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3001 "Display GUD buffer in a new frame." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3002 (interactive) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3003 (let ((special-display-regexps (append special-display-regexps '(".*"))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3004 (special-display-frame-alist |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3005 (remove '(menu-bar-lines) (remove '(tool-bar-lines) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3006 gdb-frame-parameters))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3007 (same-window-regexps nil)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3008 (display-buffer gud-comint-buffer))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3009 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3010 (defun gdb-display-gdb-buffer () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3011 "Display GUD buffer." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3012 (interactive) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3013 (let ((same-window-regexps nil)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3014 (select-window (display-buffer gud-comint-buffer nil 0)))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3015 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3016 (defun gdb-set-window-buffer (name) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3017 (set-window-buffer (selected-window) (get-buffer name)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3018 (set-window-dedicated-p (selected-window) t)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3019 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3020 (defun gdb-setup-windows () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3021 "Layout the window pattern for `gdb-many-windows'." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3022 (gdb-display-locals-buffer) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3023 (gdb-display-stack-buffer) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3024 (delete-other-windows) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3025 (gdb-display-breakpoints-buffer) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3026 (delete-other-windows) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3027 ; Don't dedicate. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3028 (pop-to-buffer gud-comint-buffer) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3029 (split-window nil ( / ( * (window-height) 3) 4)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3030 (split-window nil ( / (window-height) 3)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3031 (split-window-horizontally) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3032 (other-window 1) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3033 (gdb-set-window-buffer (gdb-locals-buffer-name)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3034 (other-window 1) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3035 (switch-to-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3036 (if gud-last-last-frame |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3037 (gud-find-file (car gud-last-last-frame)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3038 (if gdb-main-file |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3039 (gud-find-file gdb-main-file) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3040 ;; Put buffer list in window if we |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3041 ;; can't find a source file. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3042 (list-buffers-noselect)))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3043 (setq gdb-source-window (selected-window)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3044 (when gdb-use-separate-io-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3045 (split-window-horizontally) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3046 (other-window 1) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3047 (gdb-set-window-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3048 (gdb-get-buffer-create 'gdb-inferior-io))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3049 (other-window 1) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3050 (gdb-set-window-buffer (gdb-stack-buffer-name)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3051 (split-window-horizontally) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3052 (other-window 1) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3053 (gdb-set-window-buffer (gdb-breakpoints-buffer-name)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3054 (other-window 1)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3055 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3056 (defcustom gdb-many-windows nil |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3057 "If nil just pop up the GUD buffer unless `gdb-show-main' is t. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3058 In this case it starts with two windows: one displaying the GUD |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3059 buffer and the other with the source file with the main routine |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3060 of the debugged program. Non-nil means display the layout shown for |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3061 `gdb'." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3062 :type 'boolean |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3063 :group 'gdb |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3064 :version "22.1") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3065 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3066 (defun gdb-many-windows (arg) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3067 "Toggle the number of windows in the basic arrangement. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3068 With arg, display additional buffers iff arg is positive." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3069 (interactive "P") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3070 (setq gdb-many-windows |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3071 (if (null arg) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3072 (not gdb-many-windows) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3073 (> (prefix-numeric-value arg) 0))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3074 (message (format "Display of other windows %sabled" |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3075 (if gdb-many-windows "en" "dis"))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3076 (if (and gud-comint-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3077 (buffer-name gud-comint-buffer)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3078 (condition-case nil |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3079 (gdb-restore-windows) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3080 (error nil)))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3081 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3082 (defun gdb-restore-windows () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3083 "Restore the basic arrangement of windows used by gdb. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3084 This arrangement depends on the value of `gdb-many-windows'." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3085 (interactive) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3086 (pop-to-buffer gud-comint-buffer) ;Select the right window and frame. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3087 (delete-other-windows) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3088 (if gdb-many-windows |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3089 (gdb-setup-windows) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3090 (when (or gud-last-last-frame gdb-show-main) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3091 (split-window) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3092 (other-window 1) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3093 (switch-to-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3094 (if gud-last-last-frame |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3095 (gud-find-file (car gud-last-last-frame)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3096 (gud-find-file gdb-main-file))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3097 (setq gdb-source-window (selected-window)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3098 (other-window 1)))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3099 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3100 (defun gdb-reset () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3101 "Exit a debugging session cleanly. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3102 Kills the gdb buffers, and resets variables and the source buffers." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3103 (dolist (buffer (buffer-list)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3104 (unless (eq buffer gud-comint-buffer) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3105 (with-current-buffer buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3106 (if (eq gud-minor-mode 'gdbmi) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3107 (if (string-match "\\` ?\\*.+\\*\\'" (buffer-name)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3108 (kill-buffer nil) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3109 (gdb-remove-breakpoint-icons (point-min) (point-max) t) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3110 (setq gud-minor-mode nil) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3111 (kill-local-variable 'tool-bar-map) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3112 (kill-local-variable 'gdb-define-alist)))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3113 (setq gdb-overlay-arrow-position nil) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3114 (setq overlay-arrow-variable-list |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3115 (delq 'gdb-overlay-arrow-position overlay-arrow-variable-list)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3116 (setq fringe-indicator-alist '((overlay-arrow . right-triangle))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3117 (setq gdb-stack-position nil) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3118 (setq overlay-arrow-variable-list |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3119 (delq 'gdb-stack-position overlay-arrow-variable-list)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3120 (if (boundp 'speedbar-frame) (speedbar-timer-fn)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3121 (setq gud-running nil) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3122 (setq gdb-active-process nil) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3123 (remove-hook 'after-save-hook 'gdb-create-define-alist t)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3124 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3125 (defun gdb-get-source-file () |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3126 "Find the source file where the program starts and display it with related |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3127 buffers, if required." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3128 (goto-char (point-min)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3129 (if (re-search-forward gdb-source-file-regexp nil t) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3130 (setq gdb-main-file (match-string 1))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3131 (if gdb-many-windows |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3132 (gdb-setup-windows) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3133 (gdb-get-buffer-create 'gdb-breakpoints-buffer) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3134 (if gdb-show-main |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3135 (let ((pop-up-windows t)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3136 (display-buffer (gud-find-file gdb-main-file)))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3137 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3138 ;;from put-image |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3139 (defun gdb-put-string (putstring pos &optional dprop &rest sprops) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3140 "Put string PUTSTRING in front of POS in the current buffer. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3141 PUTSTRING is displayed by putting an overlay into the current buffer with a |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3142 `before-string' string that has a `display' property whose value is |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3143 PUTSTRING." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3144 (let ((string (make-string 1 ?x)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3145 (buffer (current-buffer))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3146 (setq putstring (copy-sequence putstring)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3147 (let ((overlay (make-overlay pos pos buffer)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3148 (prop (or dprop |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3149 (list (list 'margin 'left-margin) putstring)))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3150 (put-text-property 0 1 'display prop string) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3151 (if sprops |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3152 (add-text-properties 0 1 sprops string)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3153 (overlay-put overlay 'put-break t) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3154 (overlay-put overlay 'before-string string)))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3155 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3156 ;;from remove-images |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3157 (defun gdb-remove-strings (start end &optional buffer) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3158 "Remove strings between START and END in BUFFER. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3159 Remove only strings that were put in BUFFER with calls to `gdb-put-string'. |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3160 BUFFER nil or omitted means use the current buffer." |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3161 (unless buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3162 (setq buffer (current-buffer))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3163 (dolist (overlay (overlays-in start end)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3164 (when (overlay-get overlay 'put-break) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3165 (delete-overlay overlay)))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3166 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3167 (defun gdb-put-breakpoint-icon (enabled bptno) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3168 (let ((start (- (line-beginning-position) 1)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3169 (end (+ (line-end-position) 1)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3170 (putstring (if enabled "B" "b")) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3171 (source-window (get-buffer-window (current-buffer) 0))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3172 (add-text-properties |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3173 0 1 '(help-echo "mouse-1: clear bkpt, mouse-3: enable/disable bkpt") |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3174 putstring) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3175 (if enabled |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3176 (add-text-properties |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3177 0 1 `(gdb-bptno ,bptno gdb-enabled t) putstring) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3178 (add-text-properties |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3179 0 1 `(gdb-bptno ,bptno gdb-enabled nil) putstring)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3180 (gdb-remove-breakpoint-icons start end) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3181 (if (display-images-p) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3182 (if (>= (or left-fringe-width |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3183 (if source-window (car (window-fringes source-window))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3184 gdb-buffer-fringe-width) 8) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3185 (gdb-put-string |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3186 nil (1+ start) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3187 `(left-fringe breakpoint |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3188 ,(if enabled |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3189 'breakpoint-enabled |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3190 'breakpoint-disabled)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3191 'gdb-bptno bptno |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3192 'gdb-enabled enabled) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3193 (when (< left-margin-width 2) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3194 (save-current-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3195 (setq left-margin-width 2) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3196 (if source-window |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3197 (set-window-margins |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3198 source-window |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3199 left-margin-width right-margin-width)))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3200 (put-image |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3201 (if enabled |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3202 (or breakpoint-enabled-icon |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3203 (setq breakpoint-enabled-icon |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3204 (find-image `((:type xpm :data |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3205 ,breakpoint-xpm-data |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3206 :ascent 100 :pointer hand) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3207 (:type pbm :data |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3208 ,breakpoint-enabled-pbm-data |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3209 :ascent 100 :pointer hand))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3210 (or breakpoint-disabled-icon |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3211 (setq breakpoint-disabled-icon |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3212 (find-image `((:type xpm :data |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3213 ,breakpoint-xpm-data |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3214 :conversion disabled |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3215 :ascent 100 :pointer hand) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3216 (:type pbm :data |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3217 ,breakpoint-disabled-pbm-data |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3218 :ascent 100 :pointer hand)))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3219 (+ start 1) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3220 putstring |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3221 'left-margin)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3222 (when (< left-margin-width 2) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3223 (save-current-buffer |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3224 (setq left-margin-width 2) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3225 (let ((window (get-buffer-window (current-buffer) 0))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3226 (if window |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3227 (set-window-margins |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3228 window left-margin-width right-margin-width))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3229 (gdb-put-string |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3230 (propertize putstring |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3231 'face (if enabled 'breakpoint-enabled 'breakpoint-disabled)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3232 (1+ start))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3233 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3234 (defun gdb-remove-breakpoint-icons (start end &optional remove-margin) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3235 (gdb-remove-strings start end) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3236 (if (display-images-p) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3237 (remove-images start end)) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3238 (when remove-margin |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3239 (setq left-margin-width 0) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3240 (let ((window (get-buffer-window (current-buffer) 0))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3241 (if window |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3242 (set-window-margins |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3243 window left-margin-width right-margin-width))))) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3244 |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3245 (provide 'gdb-mi) |
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3246 |
103554 | 3247 ;; arch-tag: 1b41ea2b-f364-4cec-8f35-e02e4fe01912 |
103504
b2b747edcf7e
* progmodes/gdb-ui.el: Replace with ...
Nick Roberts <nickrob@snap.net.nz>
parents:
diff
changeset
|
3248 ;;; gdb-mi.el ends here |