Mercurial > hg > xemacs-beta
annotate src/.gdbinit.in.in @ 5043:d0c14ea98592
various frame-geometry fixes
-------------------- ChangeLog entries follow: --------------------
src/ChangeLog addition:
2010-02-15 Ben Wing <ben@xemacs.org>
* EmacsFrame.c:
* EmacsFrame.c (EmacsFrameResize):
* console-msw-impl.h:
* console-msw-impl.h (struct mswindows_frame):
* console-msw-impl.h (FRAME_MSWINDOWS_TARGET_RECT):
* device-tty.c:
* device-tty.c (tty_asynch_device_change):
* event-msw.c:
* event-msw.c (mswindows_wnd_proc):
* faces.c (Fface_list):
* faces.h:
* frame-gtk.c:
* frame-gtk.c (gtk_set_initial_frame_size):
* frame-gtk.c (gtk_set_frame_size):
* frame-msw.c:
* frame-msw.c (mswindows_init_frame_1):
* frame-msw.c (mswindows_set_frame_size):
* frame-msw.c (mswindows_size_frame_internal):
* frame-msw.c (msprinter_init_frame_3):
* frame.c:
* frame.c (enum):
* frame.c (Fmake_frame):
* frame.c (adjust_frame_size):
* frame.c (store_minibuf_frame_prop):
* frame.c (Fframe_property):
* frame.c (Fframe_properties):
* frame.c (Fframe_displayable_pixel_height):
* frame.c (Fframe_displayable_pixel_width):
* frame.c (internal_set_frame_size):
* frame.c (Fset_frame_height):
* frame.c (Fset_frame_pixel_height):
* frame.c (Fset_frame_displayable_pixel_height):
* frame.c (Fset_frame_width):
* frame.c (Fset_frame_pixel_width):
* frame.c (Fset_frame_displayable_pixel_width):
* frame.c (Fset_frame_size):
* frame.c (Fset_frame_pixel_size):
* frame.c (Fset_frame_displayable_pixel_size):
* frame.c (frame_conversion_internal_1):
* frame.c (get_frame_displayable_pixel_size):
* frame.c (change_frame_size_1):
* frame.c (change_frame_size):
* frame.c (generate_title_string):
* frame.h:
* gtk-xemacs.c:
* gtk-xemacs.c (gtk_xemacs_size_request):
* gtk-xemacs.c (gtk_xemacs_size_allocate):
* gtk-xemacs.c (gtk_xemacs_paint):
* gutter.c:
* gutter.c (update_gutter_geometry):
* redisplay.c (end_hold_frame_size_changes):
* redisplay.c (redisplay_frame):
* toolbar.c:
* toolbar.c (update_frame_toolbars_geometry):
* window.c:
* window.c (frame_pixsize_valid_p):
* window.c (check_frame_size):
Various fixes to frame geometry to make it a bit easier to understand
and fix some bugs.
1. IMPORTANT: Some renamings. Will need to be applied carefully to
the carbon repository, in the following order:
-- pixel_to_char_size -> pixel_to_frame_unit_size
-- char_to_pixel_size -> frame_unit_to_pixel_size
-- pixel_to_real_char_size -> pixel_to_char_size
-- char_to_real_pixel_size -> char_to_pixel_size
-- Reverse second and third arguments of change_frame_size() and
change_frame_size_1() to try to make functions consistent in
putting width before height.
-- Eliminate old round_size_to_char, because it didn't really
do anything differently from round_size_to_real_char()
-- round_size_to_real_char -> round_size_to_char; any places that
called the old round_size_to_char should just call the new one.
2. IMPORTANT FOR CARBON: The set_frame_size() method is now passed
sizes in "frame units", like all other frame-sizing functions,
rather than some hacked-up combination of char-cell units and
total pixel size. This only affects window systems that use
"pixelated geometry", and I'm not sure if Carbon is one of them.
MS Windows is pixelated, X and GTK are not. For pixelated-geometry
systems, the size in set_frame_size() is in displayable pixels
rather than total pixels and needs to be converted appropriately;
take a look at the changes made to mswindows_set_frame_size()
method if necessary.
3. Add a big long comment in frame.c describing how frame geometry
works.
4. Remove MS Windows-specific character height and width fields,
duplicative and unused.
5. frame-displayable-pixel-* and set-frame-displayable-pixel-*
didn't use to work on MS Windows, but they do now.
6. In general, clean up the handling of "pixelated geometry" so
that fewer functions have to worry about this. This is really
an abomination that should be removed entirely but that will
have to happen later. Fix some buggy code in
frame_conversion_internal() that happened to "work" because it
was countered by oppositely buggy code in change_frame_size().
7. Clean up some frame-size code in toolbar.c and use functions
already provided in frame.c instead of rolling its own.
8. Fix check_frame_size() in window.c, which formerly didn't take
pixelated geometry into account.
author | Ben Wing <ben@xemacs.org> |
---|---|
date | Mon, 15 Feb 2010 22:14:11 -0600 |
parents | 304aebb79cd3 |
children | 14f0dd1fabdb |
rev | line source |
---|---|
3418 | 1 ## gdb init file for XEmacs -*- ksh -*- |
2 ## This is the source for src/.gdbinit. Edit it, and rerun configure. | |
3 ## (Running config.status is not enough.) | |
4 ## The generated file depends on src/config.h (currently only in one place). | |
5 | |
6 ## To insert comments that will remain in the generated file, we use the | |
7 ## imake XCOMM convention. Lines beginning with "XCOMM " exactly (no | |
8 ## leading whitespace, one trailing ASCII space, case sensitive) will be | |
9 ## transformed to gdb command file comments in the generated file. | |
10 | |
11 XCOMM gdb init file for XEmacs | |
12 XCOMM AUTOMATICALLY GENERATED FROM etc/gdbinit.in BY configure -- DO NOT EDIT. | |
13 XCOMM See etc/gdbinit.in for licensing information and usage hints. | |
14 XCOMM Copyright (C) 1998 Free Software Foundation, Inc. | |
4939
349f01075eb7
build fixes for gdbinit and config-dependent elc files
Ben Wing <ben@xemacs.org>
parents:
4935
diff
changeset
|
15 XCOMM Copyright (C) 2010 Ben Wing. |
3418 | 16 |
17 ## This file is part of XEmacs. | |
18 | |
19 ## XEmacs is free software; you can redistribute it and/or modify it | |
20 ## under the terms of the GNU General Public License as published by the | |
21 ## Free Software Foundation; either version 2, or (at your option) any | |
22 ## later version. | |
23 | |
24 ## XEmacs is distributed in the hope that it will be useful, but WITHOUT | |
25 ## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
26 ## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
27 ## for more details. | |
28 | |
29 ## You should have received a copy of the GNU General Public License | |
30 ## along with XEmacs; see the file COPYING. If not, write to | |
31 ## the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | |
32 ## Boston, MA 02110-1301 USA | |
33 | |
34 ## Author: Martin Buchholz | |
35 | |
36 ## Other contributors you could ask for help: Ivan Golubev, Jerry James, | |
37 ## Stephen Turnbull. | |
38 | |
39 ## Some useful commands for debugging emacs with gdb 4.16 or better. | |
40 ## | |
41 ## Since this file is called `.gdbinit', it will be read by gdb | |
42 ## automatically when gdb is run in the build directory, which is where | |
43 ## developers usually debug their xemacs. You can also source this | |
44 ## file from your ~/.gdbinit, if you like. | |
45 ## | |
46 ## Configure xemacs with --debug, and compile with -g. | |
47 ## | |
48 ## See also the question of the XEmacs FAQ, titled | |
49 ## "How to Debug an XEmacs problem with a debugger". | |
50 ## | |
51 ## This can be used to debug XEmacs no matter how the following are | |
52 ## specified: | |
53 | |
54 ## USE_UNION_TYPE | |
55 | |
56 ## (the above all have configure equivalents) | |
57 | |
58 ## Some functions defined here require a running process, but most | |
59 ## don't. Considerable effort has been expended to this end. | |
60 | |
61 ## See the dbg_ C support code in src/alloc.c that allows the functions | |
62 ## defined in this file to work correctly. | |
63 | |
64 #define NOT_C_CODE | |
65 #include "config.h" | |
66 | |
67 set print union off | |
68 set print pretty off | |
69 | |
70 #ifdef VDB_POSIX | |
71 handle SIGSEGV SIGBUS nostop noprint | |
72 #endif | |
73 | |
74 set $Lisp_Type_Int = -2 | |
4643
e9ccbc62f7e7
Don't rely on GDB understanding the Lisp_Type_{Record,Char} enums, gdbinit.in
Aidan Kehoe <kehoea@parhasard.net>
parents:
3934
diff
changeset
|
75 set $Lisp_Type_Record = 0 |
e9ccbc62f7e7
Don't rely on GDB understanding the Lisp_Type_{Record,Char} enums, gdbinit.in
Aidan Kehoe <kehoea@parhasard.net>
parents:
3934
diff
changeset
|
76 set $Lisp_Type_Char = 2 |
3418 | 77 |
78 define decode_object | |
79 set $obj = (unsigned long) $arg0 | |
80 if $obj & 1 | |
81 ## It's an int | |
82 set $val = $obj >> 1 | |
83 set $type = $Lisp_Type_Int | |
84 else | |
85 set $type = $obj & dbg_typemask | |
4643
e9ccbc62f7e7
Don't rely on GDB understanding the Lisp_Type_{Record,Char} enums, gdbinit.in
Aidan Kehoe <kehoea@parhasard.net>
parents:
3934
diff
changeset
|
86 if $type == $Lisp_Type_Char |
3418 | 87 set $val = ($obj & dbg_valmask) >> dbg_gctypebits |
88 else | |
89 ## It's a record pointer | |
90 set $val = $obj | |
91 end | |
92 end | |
93 | |
4643
e9ccbc62f7e7
Don't rely on GDB understanding the Lisp_Type_{Record,Char} enums, gdbinit.in
Aidan Kehoe <kehoea@parhasard.net>
parents:
3934
diff
changeset
|
94 if $type == $Lisp_Type_Record |
3418 | 95 set $lheader = ((struct lrecord_header *) $val) |
96 set $lrecord_type = ($lheader->type) | |
97 set $imp = ((struct lrecord_implementation *) lrecord_implementations_table[(int) $lrecord_type]) | |
98 else | |
99 set $lrecord_type = -1 | |
100 set $lheader = -1 | |
101 set $imp = -1 | |
102 end | |
103 end | |
104 | |
105 document decode_object | |
106 Usage: decode_object lisp_object | |
107 Extract implementation information from a Lisp Object. | |
108 Defines variables $val, $type and $imp. | |
109 end | |
110 | |
111 define xint | |
112 decode_object $arg0 | |
113 print ((long) $val) | |
114 end | |
115 | |
116 define xtype | |
117 decode_object $arg0 | |
118 if $type == $Lisp_Type_Int | |
119 echo int\n | |
120 else | |
4643
e9ccbc62f7e7
Don't rely on GDB understanding the Lisp_Type_{Record,Char} enums, gdbinit.in
Aidan Kehoe <kehoea@parhasard.net>
parents:
3934
diff
changeset
|
121 if $type == $Lisp_Type_Char |
3418 | 122 echo char\n |
123 else | |
124 printf "record type: %s\n", $imp->name | |
125 end | |
126 end | |
127 end | |
128 | |
129 document xtype | |
130 Usage: xtype lisp_object | |
131 Print the Lisp type of a lisp object. | |
132 end | |
133 | |
134 define lisp-shadows | |
135 run -batch -vanilla -f list-load-path-shadows | |
136 end | |
137 | |
138 document lisp-shadows | |
139 Usage: lisp-shadows | |
140 Run xemacs to check for lisp shadows | |
141 end | |
142 | |
143 define environment-to-run-temacs | |
144 unset env EMACSLOADPATH | |
4939
349f01075eb7
build fixes for gdbinit and config-dependent elc files
Ben Wing <ben@xemacs.org>
parents:
4935
diff
changeset
|
145 set env EMACSBOOTSTRAPLOADPATH=@srcdir@/../lisp/:@srcdir@/.. |
3418 | 146 set env EMACSBOOTSTRAPMODULEPATH=../modules/:.. |
147 end | |
148 | |
149 define run-temacs | |
150 environment-to-run-temacs | |
4939
349f01075eb7
build fixes for gdbinit and config-dependent elc files
Ben Wing <ben@xemacs.org>
parents:
4935
diff
changeset
|
151 run -nd -no-packages -batch -l @srcdir@/../lisp/loadup.el run-temacs -q |
3418 | 152 end |
153 | |
154 document run-temacs | |
155 Usage: run-temacs | |
156 Run temacs interactively, like xemacs. | |
157 Use this with debugging tools (like purify) that cannot deal with dumping, | |
158 or when temacs builds successfully, but xemacs does not. | |
159 end | |
160 | |
4951 | 161 define check-xemacs-arg |
162 run -vanilla -batch -l @srcdir@/../tests/automated/test-harness.el -f batch-test-emacs @srcdir@/../tests/$arg0 | |
163 end | |
164 | |
3418 | 165 define check-xemacs |
4951 | 166 if $argc == 0 |
167 check-xemacs-arg automated | |
168 else | |
169 check-xemacs-arg automated/$arg0 | |
170 end | |
3418 | 171 end |
172 | |
173 document check-xemacs | |
4951 | 174 Usage: check-xemacs [FILE] |
175 Run the test suite. If no file given, run the whole suite, equivalent to | |
176 'make check'. If a file given, run the suite only on the specified file. | |
3418 | 177 end |
178 | |
4951 | 179 define check-temacs-arg |
3418 | 180 environment-to-run-temacs |
4951 | 181 run -nd -no-packages -batch -l @srcdir@/../lisp/loadup.el run-temacs -q -batch -l @srcdir@/../tests/automated/test-harness.el -f batch-test-emacs @srcdir@/../tests/$arg0 |
182 | |
183 define check-temacs | |
184 if $argc == 0 | |
185 check-temacs-arg automated | |
186 else | |
187 check-temacs-arg automated/$arg0 | |
188 end | |
3418 | 189 end |
190 | |
191 document check-temacs | |
4951 | 192 Usage: check-temacs [FILE] |
193 Run the test suite on temacs. If no file given, run the whole suite, | |
194 equivalent to 'make check-temacs'. If a file given, run the suite only on | |
195 the specified file. | |
196 | |
3418 | 197 Use this with debugging tools (like purify) that cannot deal with dumping, |
198 or when temacs builds successfully, but xemacs does not. | |
199 end | |
200 | |
201 define update-elc | |
202 environment-to-run-temacs | |
4939
349f01075eb7
build fixes for gdbinit and config-dependent elc files
Ben Wing <ben@xemacs.org>
parents:
4935
diff
changeset
|
203 run -nd -no-packages -batch -l @srcdir@/../lisp/update-elc.el |
3418 | 204 end |
205 | |
206 document update-elc | |
207 Usage: update-elc | |
208 Run the core lisp byte compilation part of the build procedure. | |
209 Use when debugging temacs, not xemacs! | |
210 Use this when temacs builds successfully, but xemacs does not. | |
211 end | |
212 | |
4935
7ef913bf3c9a
modify gdbinit to track Makefile.in.in, add command for update-elc-2
Ben Wing <ben@xemacs.org>
parents:
4643
diff
changeset
|
213 define update-elc-2 |
7ef913bf3c9a
modify gdbinit to track Makefile.in.in, add command for update-elc-2
Ben Wing <ben@xemacs.org>
parents:
4643
diff
changeset
|
214 environment-to-run-temacs |
4939
349f01075eb7
build fixes for gdbinit and config-dependent elc files
Ben Wing <ben@xemacs.org>
parents:
4935
diff
changeset
|
215 run -no-packages -batch -no-autoloads -l update-elc-2.el -f batch-update-elc-2 @srcdir@/../lisp |
4935
7ef913bf3c9a
modify gdbinit to track Makefile.in.in, add command for update-elc-2
Ben Wing <ben@xemacs.org>
parents:
4643
diff
changeset
|
216 end |
7ef913bf3c9a
modify gdbinit to track Makefile.in.in, add command for update-elc-2
Ben Wing <ben@xemacs.org>
parents:
4643
diff
changeset
|
217 |
7ef913bf3c9a
modify gdbinit to track Makefile.in.in, add command for update-elc-2
Ben Wing <ben@xemacs.org>
parents:
4643
diff
changeset
|
218 document update-elc-2 |
7ef913bf3c9a
modify gdbinit to track Makefile.in.in, add command for update-elc-2
Ben Wing <ben@xemacs.org>
parents:
4643
diff
changeset
|
219 Usage: update-elc-2 |
7ef913bf3c9a
modify gdbinit to track Makefile.in.in, add command for update-elc-2
Ben Wing <ben@xemacs.org>
parents:
4643
diff
changeset
|
220 Run the post-dump core lisp byte compilation part of the build procedure. |
7ef913bf3c9a
modify gdbinit to track Makefile.in.in, add command for update-elc-2
Ben Wing <ben@xemacs.org>
parents:
4643
diff
changeset
|
221 end |
7ef913bf3c9a
modify gdbinit to track Makefile.in.in, add command for update-elc-2
Ben Wing <ben@xemacs.org>
parents:
4643
diff
changeset
|
222 |
3418 | 223 define dmp |
224 environment-to-run-temacs | |
4939
349f01075eb7
build fixes for gdbinit and config-dependent elc files
Ben Wing <ben@xemacs.org>
parents:
4935
diff
changeset
|
225 run -nd -no-packages -batch -l @srcdir@/../lisp/loadup.el dump |
3418 | 226 end |
227 | |
228 document dmp | |
229 Usage: dmp | |
230 Run the dumping part of the build procedure. | |
231 Use when debugging temacs, not xemacs! | |
232 Use this when temacs builds successfully, but xemacs does not. | |
233 end | |
234 | |
235 define ldp | |
236 printf "%s", "Lisp => " | |
237 call debug_print($arg0) | |
238 end | |
239 | |
240 document ldp | |
241 Usage: ldp lisp_object | |
242 Print a Lisp Object value using the Lisp printer. | |
243 Requires a running xemacs process. | |
244 end | |
245 | |
246 define lbt | |
247 call debug_backtrace() | |
248 end | |
249 | |
250 document lbt | |
251 Usage: lbt | |
252 Print the current Lisp stack trace. | |
253 Requires a running xemacs process. | |
254 end | |
255 | |
256 | |
257 define leval | |
4953
304aebb79cd3
function renamings to track names of char typedefs
Ben Wing <ben@xemacs.org>
parents:
4951
diff
changeset
|
258 ldp Feval(Fcar(Fread_from_string(build_cistring($arg0),Qnil,Qnil))) |
3418 | 259 end |
260 | |
261 document leval | |
262 Usage: leval "SEXP" | |
263 Eval a lisp expression. | |
264 Requires a running xemacs process. | |
265 | |
266 Example: | |
267 (gdb) leval "(+ 1 2)" | |
268 Lisp ==> 3 | |
269 end | |
270 | |
271 | |
272 define wtype | |
273 print $arg0->core.widget_class->core_class.class_name | |
274 end | |
275 | |
276 define xtname | |
277 print XrmQuarkToString(((Object)($arg0))->object.xrm_name) | |
278 end | |
279 | |
280 ## GDB's command language makes you want to ... | |
281 | |
282 define pptype | |
283 set $type_ptr = ($arg0 *) $val | |
284 print $type_ptr | |
285 print *$type_ptr | |
286 end | |
287 | |
288 define pstructtype | |
289 set $type_ptr = (struct $arg0 *) $val | |
290 print $type_ptr | |
291 print *$type_ptr | |
292 end | |
293 | |
294 define pobj | |
295 decode_object $arg0 | |
296 if $type == $Lisp_Type_Int | |
297 printf "Integer: %d\n", $val | |
298 else | |
4643
e9ccbc62f7e7
Don't rely on GDB understanding the Lisp_Type_{Record,Char} enums, gdbinit.in
Aidan Kehoe <kehoea@parhasard.net>
parents:
3934
diff
changeset
|
299 if $type == $Lisp_Type_Char |
3418 | 300 if $val > 32 && $val < 128 |
301 printf "Char: %c\n", $val | |
302 else | |
303 printf "Char: %d\n", $val | |
304 end | |
305 else | |
306 if $lrecord_type == lrecord_type_string | |
307 pptype Lisp_String | |
308 else | |
309 if $lrecord_type == lrecord_type_cons | |
310 pptype Lisp_Cons | |
311 else | |
312 if $lrecord_type == lrecord_type_symbol | |
313 pptype Lisp_Symbol | |
314 printf "Symbol name: %s\n", ((Lisp_String *)$type_ptr->name)->data_ | |
315 else | |
316 if $lrecord_type == lrecord_type_vector | |
317 pptype Lisp_Vector | |
318 printf "Vector of length %d\n", $type_ptr->size | |
319 ##print *($type_ptr->data) @ $type_ptr->size | |
320 else | |
321 if $lrecord_type == lrecord_type_bit_vector | |
322 pptype Lisp_Bit_Vector | |
323 else | |
324 if $lrecord_type == lrecord_type_buffer | |
325 pstructtype buffer | |
326 else | |
327 if $lrecord_type == lrecord_type_char_table | |
328 pptype Lisp_Char_Table | |
329 else | |
330 if $lrecord_type == lrecord_type_char_table_entry | |
331 pptype Lisp_Char_Table_Entry | |
332 else | |
333 if $lrecord_type == lrecord_type_charset | |
334 pptype Lisp_Charset | |
335 else | |
336 if $lrecord_type == lrecord_type_coding_system | |
337 pptype Lisp_Coding_System | |
338 else | |
339 if $lrecord_type == lrecord_type_color_instance | |
340 pptype Lisp_Color_Instance | |
341 else | |
342 if $lrecord_type == lrecord_type_command_builder | |
343 pptype command_builder | |
344 else | |
345 if $lrecord_type == lrecord_type_compiled_function | |
346 pptype Lisp_Compiled_Function | |
347 else | |
348 if $lrecord_type == lrecord_type_console | |
349 pstructtype console | |
350 else | |
351 if $lrecord_type == lrecord_type_database | |
352 pptype Lisp_Database | |
353 else | |
354 if $lrecord_type == lrecord_type_device | |
355 pstructtype device | |
356 else | |
357 if $lrecord_type == lrecord_type_event | |
358 pptype Lisp_Event | |
359 else | |
360 if $lrecord_type == lrecord_type_extent | |
361 pstructtype extent | |
362 else | |
363 if $lrecord_type == lrecord_type_extent_auxiliary | |
364 pstructtype extent_auxiliary | |
365 else | |
366 if $lrecord_type == lrecord_type_extent_info | |
367 pstructtype extent_info | |
368 else | |
369 if $lrecord_type == lrecord_type_face | |
370 pptype Lisp_Face | |
371 else | |
372 if $lrecord_type == lrecord_type_float | |
373 pptype Lisp_Float | |
374 else | |
375 if $lrecord_type == lrecord_type_font_instance | |
376 pptype Lisp_Font_Instance | |
377 else | |
378 if $lrecord_type == lrecord_type_frame | |
379 pstructtype frame | |
380 else | |
381 if $lrecord_type == lrecord_type_glyph | |
382 pptype Lisp_Glyph | |
383 else | |
384 if $lrecord_type == lrecord_type_gui_item | |
385 pptype Lisp_Gui_Item | |
386 else | |
387 if $lrecord_type == lrecord_type_hash_table | |
388 pptype Lisp_Hash_Table | |
389 else | |
390 if $lrecord_type == lrecord_type_image_instance | |
391 pptype Lisp_Image_Instance | |
392 else | |
393 if $lrecord_type == lrecord_type_keymap | |
394 pptype Lisp_Keymap | |
395 else | |
396 if $lrecord_type == lrecord_type_lcrecord_list | |
397 pstructtype lcrecord_list | |
398 else | |
399 if $lrecord_type == lrecord_type_ldap | |
400 pptype Lisp_LDAP | |
401 else | |
402 if $lrecord_type == lrecord_type_lstream | |
403 pstructtype lstream | |
404 else | |
405 if $lrecord_type == lrecord_type_marker | |
406 pptype Lisp_Marker | |
407 else | |
408 if $lrecord_type == lrecord_type_opaque | |
409 pptype Lisp_Opaque | |
410 else | |
411 if $lrecord_type == lrecord_type_opaque_ptr | |
412 pptype Lisp_Opaque_Ptr | |
413 else | |
414 if $lrecord_type == lrecord_type_popup_data | |
415 pptype popup_data | |
416 else | |
417 if $lrecord_type == lrecord_type_process | |
418 pptype Lisp_Process | |
419 else | |
420 if $lrecord_type == lrecord_type_range_table | |
421 pptype Lisp_Range_Table | |
422 else | |
423 if $lrecord_type == lrecord_type_specifier | |
424 pptype Lisp_Specifier | |
425 else | |
426 if $lrecord_type == lrecord_type_subr | |
427 pptype Lisp_Subr | |
428 else | |
429 if $lrecord_type == lrecord_type_symbol_value_buffer_local | |
430 pstructtype symbol_value_buffer_local | |
431 else | |
432 if $lrecord_type == lrecord_type_symbol_value_forward | |
433 pstructtype symbol_value_forward | |
434 else | |
435 if $lrecord_type == lrecord_type_symbol_value_lisp_magic | |
436 pstructtype symbol_value_lisp_magic | |
437 else | |
438 if $lrecord_type == lrecord_type_symbol_value_varalias | |
439 pstructtype symbol_value_varalias | |
440 else | |
441 if $lrecord_type == lrecord_type_timeout | |
442 pptype Lisp_Timeout | |
443 else | |
444 if $lrecord_type == lrecord_type_toolbar_button | |
445 pstructtype toolbar_button | |
446 else | |
447 if $lrecord_type == lrecord_type_tooltalk_message | |
448 pptype Lisp_Tooltalk_Message | |
449 else | |
450 if $lrecord_type == lrecord_type_tooltalk_pattern | |
451 pptype Lisp_Tooltalk_Pattern | |
452 else | |
453 if $lrecord_type == lrecord_type_weak_list | |
454 pstructtype weak_list | |
455 else | |
456 if $lrecord_type == lrecord_type_window | |
457 pstructtype window | |
458 else | |
459 if $lrecord_type == lrecord_type_window_configuration | |
460 pstructtype window_config | |
461 else | |
462 if $lrecord_type == lrecord_type_fc_pattern | |
463 pstructtype fc_pattern | |
464 else | |
3934 | 465 if $lrecord_type == lrecord_type_fc_config |
466 pstructtype fc_config | |
3418 | 467 else |
468 echo Unknown Lisp Object type\n | |
469 print $arg0 | |
470 ## Barf, gag, retch | |
471 end | |
472 end | |
473 end | |
474 end | |
475 end | |
476 end | |
477 end | |
478 end | |
479 end | |
480 end | |
481 end | |
482 end | |
483 end | |
484 end | |
485 end | |
486 end | |
487 end | |
488 end | |
489 end | |
490 ## Repeat after me... gdb sux, gdb sux, gdb sux... | |
491 end | |
492 end | |
493 end | |
494 end | |
495 end | |
496 end | |
497 end | |
498 end | |
499 end | |
500 end | |
501 end | |
502 end | |
503 end | |
504 end | |
505 end | |
506 end | |
507 end | |
508 end | |
509 ## Are we having fun yet?? | |
510 end | |
511 end | |
512 end | |
513 end | |
514 end | |
515 end | |
516 end | |
517 end | |
518 end | |
519 end | |
520 end | |
521 end | |
522 end | |
523 end | |
524 end | |
525 end | |
526 end | |
527 end | |
528 end | |
529 | |
530 document pobj | |
531 Usage: pobj lisp_object | |
532 Print the internal C representation of a Lisp Object. | |
533 end | |
534 | |
535 ## ------------------------------------------------------------- | |
536 ## functions to test the debugging support itself. | |
537 ## If you change this file, make sure the following still work... | |
538 ## ------------------------------------------------------------- | |
539 define test_xtype | |
540 printf "Vemacs_major_version: " | |
541 xtype Vemacs_major_version | |
542 printf "Vhelp_char: " | |
543 xtype Vhelp_char | |
544 printf "Qnil: " | |
545 xtype Qnil | |
546 printf "Qunbound: " | |
547 xtype Qunbound | |
548 printf "Vobarray: " | |
549 xtype Vobarray | |
550 printf "Vall_weak_lists: " | |
551 xtype Vall_weak_lists | |
552 printf "Vxemacs_codename: " | |
553 xtype Vxemacs_codename | |
554 end | |
555 | |
556 define test_pobj | |
557 printf "Vemacs_major_version: " | |
558 pobj Vemacs_major_version | |
559 printf "Vhelp_char: " | |
560 pobj Vhelp_char | |
561 printf "Qnil: " | |
562 pobj Qnil | |
563 printf "Qunbound: " | |
564 pobj Qunbound | |
565 printf "Vobarray: " | |
566 pobj Vobarray | |
567 printf "Vall_weak_lists: " | |
568 pobj Vall_weak_lists | |
569 printf "Vxemacs_codename: " | |
570 pobj Vxemacs_codename | |
571 end | |
572 |