diff src/gdbinit.pre-4.14 @ 0:376386a54a3c r19-14

Import from CVS: tag r19-14
author cvs
date Mon, 13 Aug 2007 08:45:50 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/gdbinit.pre-4.14	Mon Aug 13 08:45:50 2007 +0200
@@ -0,0 +1,299 @@
+# Some useful commands for debugging XEmacs with gdb 4.* or better.
+# If you have gdb 4.14 or better, you should use the version provided
+# for that debugger -- it's much easier to use.  See that file
+# (called "gdbinit" in the src/ directory of the XEmacs 19.14+ distribution)
+# for more info.
+#
+# Used on machines with NO_UNION_TYPE defined (everyone except DEC Alpha).
+
+set print union off
+set print pretty off
+
+define temacs
+run -batch -l loadup.el run-temacs -q
+end
+
+echo \n>>> Use the `temacs' command to run temacs\n\n
+
+# if you use Purify, do this:
+# set env PURIFYOPTIONS -pointer-mask=0x0fffffff
+
+# was frob, but p1 is short for prin1
+define p1
+call debug_print ($)
+end
+
+define lbt
+call Fbacktrace (Qexternal_debugging_output, Qt)
+end
+
+
+set $vector_length_mask = ~(1<<31)
+
+define xtype
+# this is really xgctype, as we mask off the mark bit
+output (enum Lisp_Type) (($ >> 28) & 7)
+echo \n
+end
+
+define xint
+print ((int)($1 << 4))>>4
+end
+
+define xmarkbit
+print ($1 >> 31)
+end
+
+define xrecord
+print (struct lrecord_header *) ($ & 0xFFFFFFF)
+output *($->implementation)
+echo \n
+end
+
+define xbitvec
+print (struct Lisp_Bit_Vector *) ($ & 0xFFFFFFF)
+end
+
+define xbuffer
+print (struct buffer *) ($ & 0xFFFFFFF)
+end
+
+define xbytecode
+print (struct Lisp_Bytecode *) ($ & 0xFFFFFFF)
+end
+
+define xcharset
+print (struct Lisp_Charset *) ($ & 0xFFFFFFF)
+end
+
+define xchartab
+print (struct Lisp_Char_Table *) ($ & 0xFFFFFFF)
+end
+
+define xchartabentry
+print (struct Lisp_Char_Table_Entry *) ($ & 0xFFFFFFF)
+end
+
+define xcodesys
+print (struct Lisp_Coding_System *) ($ & 0xFFFFFFF)
+end
+
+define xcolorinst
+print (struct Lisp_Color_Instance *) ($ & 0xFFFFFFF)
+end
+
+define xcons
+print (struct Lisp_Cons *) ($ & 0xFFFFFFF)
+end
+
+define xcursor
+print (struct Lisp_Cursor *) ($ & 0xFFFFFFF)
+end
+
+define xdevice
+print (struct device *) ($ & 0xFFFFFFF)
+end
+
+define xevent
+print (struct Lisp_Event *) ($ & 0xFFFFFFF)
+end
+
+define xextent
+print (struct extent *) ($ & 0xFFFFFFF)
+end
+
+define xextentaux
+print (struct extent_auxiliary *) ($ & 0xFFFFFFF)
+end
+
+define xextentinfo
+print (struct extent_info *) ($ & 0xFFFFFFF)
+end
+
+define xfloat
+print (struct Lisp_Float *) ($ & 0xFFFFFFF)
+output (double) $->data.d
+echo \n
+end
+
+define xfontinst
+print (struct Lisp_Font_Instance *) ($ & 0xFFFFFFF)
+end
+
+define xframe
+print (struct frame *) ($ & 0xFFFFFFF)
+end
+
+define xglyph
+print (struct Lisp_Glyph *) ($ & 0xFFFFFFF)
+end
+
+define xhashtable
+print (struct hashtable_struct *) ($ & 0xFFFFFFF)
+end
+
+define ximageinst
+print (struct Lisp_Image_Instance *) ($ & 0xFFFFFFF)
+end
+
+define xkeymap
+print (struct keymap *) ($ & 0xFFFFFFF)
+end
+
+define xlstream
+print (struct lstream *) ($ & 0xFFFFFFF)
+end
+
+define xmarker
+print (struct Lisp_Marker *) ($ & 0xFFFFFFF)
+end
+
+define xmenubardata
+print (struct menubar_data *) ($ & 0xFFFFFFF)
+end
+
+define xopaque
+print (struct Lisp_Opaque *) ($ & 0xFFFFFFF)
+end
+
+define xprocess
+print (struct Lisp_Process *) ($ & 0xFFFFFFF)
+end
+
+define xrangetab
+print (struct Lisp_Range_Table *) ($ & 0xFFFFFFF)
+end
+
+define xspec
+print (struct Lisp_Specifier *) ($ & 0xFFFFFFF)
+end
+
+define xstring
+print (struct Lisp_String *) ($ & 0xFFFFFFF)
+output (char *) $->_data
+echo \n
+end
+
+define xsubr
+print (struct Lisp_Subr *) ($ & 0xFFFFFFF)
+end
+
+define xsubwindow
+print (struct Lisp_Subwindow *) ($ & 0xFFFFFFF)
+end
+
+define xtoolbarbutton
+print (struct toolbar_button *) ($ & 0xFFFFFFF)
+end
+
+define xtoolbardata
+print (struct toolbar_data *) ($ & 0xFFFFFFF)
+end
+
+define xtooltalkmess
+print (struct Lisp_Tooltalk_Message *) ($ & 0xFFFFFFF)
+end
+
+define xtooltalkpatt
+print (struct Lisp_Tooltalk_Pattern *) ($ & 0xFFFFFFF)
+end
+
+define xvector
+print (struct Lisp_Vector *) ($ & 0xFFFFFFF)
+end
+
+define xwindow
+print (struct window *) ($ & 0xFFFFFFF)
+end
+
+define xwindowconfig
+print (struct window_config *) ($ & 0xFFFFFFF)
+end
+
+define nilp
+print $ == Qnil
+end
+
+define car
+set $tem = ((struct Lisp_Cons *) ($ & 0xFFFFFFF))->car
+end
+
+define cdr
+set $tem = ((struct Lisp_Cons *) ($ & 0xFFFFFFF))->cdr
+end
+
+define string-length
+print ((struct Lisp_String *) ($ & 0xFFFFFFF))->_size & $vector_length_mask
+end
+
+define string-contents
+print (char *) ((struct Lisp_String *) ($ & 0xFFFFFFF))->_data
+end
+
+define vector-length
+print ((struct Lisp_Vector *) ($ & 0xFFFFFFF))->size & $vector_length_mask
+end
+
+define vector-contents
+set $tem = (struct Lisp_Vector *) ($ & 0xFFFFFFF)
+print *($tem->contents) @ ($tem->size & $vector_length_mask)
+set $ = $tem->contents
+end
+
+define symbol-name
+set $tem = ((struct Lisp_Symbol *) ($ & 0xFFFFFFF))->name
+# output *($tem->_data) @ ($tem->_size & $vector_length_mask)
+output ($tem->_data) 
+echo \n
+set $type = Lisp_String
+echo \n
+end
+
+define xsymbol
+symbol-name
+end
+
+define symbol-value
+set $tem = ((struct Lisp_Symbol *) ($ & 0xFFFFFFF))->value
+end
+
+define symbol-function
+set $tem = ((struct Lisp_Symbol *) ($ & 0xFFFFFFF))->function
+end
+
+define symbol-plist
+set $tem = ((struct Lisp_Symbol *) ($ & 0xFFFFFFF))->plist
+end
+
+define wtype
+p $->core.widget_class->core_class.class_name
+end
+
+define xtname
+print XrmQuarkToString(((Object)($))->object.xrm_name)
+end
+
+# 
+# GDB, with the losing command-line parser that it has,
+# cannot handle nested blocks.
+# 
+define breaks
+
+br Fsignal
+# command
+# bt 3
+# p sig
+# xsymbol
+# end
+
+br Fkill_emacs
+# command
+# bt 3
+# end
+
+br assertion_failed
+# command
+# bt 3
+# end
+
+end