Mercurial > hg > xemacs-beta
diff src/dbxrc @ 2:ac2d302a0011 r19-15b2
Import from CVS: tag r19-15b2
author | cvs |
---|---|
date | Mon, 13 Aug 2007 08:46:35 +0200 |
parents | |
children | c5d627a313b1 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/dbxrc Mon Aug 13 08:46:35 2007 +0200 @@ -0,0 +1,107 @@ +# -*- ksh -*- +# You can use this file to debug XEmacs using Sun WorkShop's dbx. +# Add the contents of this file to $HOME/.dbxrc or +# Source the contents of this file with something like: +# test -r ./dbxrc && . ./dbxrc + +ignore POLL +ignore IO + +function lbt { + call Fbacktrace (Qexternal_debugging_output, Qt) +} + +function dp { + call debug_print ($1); +} + +function xptr { + print ("$1"<<4) & 0xFFFFFFF) +} + +function xint { + print ((int)($1 << 4))>>4; +} + +#function xstring { +# print *(struct Lisp_String *) ($1 & 0xFFFFFFF); +# #print ((struct Lisp_String *) ($1 & 0xFFFFFFF))->_data; +#} + +function xlisp { + print $1 ($2 & 0xFFFFFFF); + #print ((struct Lisp_String *) ($1 & 0xFFFFFFF))->_data; +} + +function defxlisp { + eval "function $1 { print $2 (\$1 & 0xFFFFFFF) ; }" +} + +function defxstruct { + defxlisp "$1" "*(struct $2 *)" +} + +defxstruct xstring 'Lisp_String' +defxstruct xlstream 'lstream' +defxstruct xsubr 'Lisp_Subr' +defxstruct xbitvec 'Lisp_Bit_Vector' +defxstruct xbuffer 'buffer' +defxstruct xbytecode 'Lisp_Bytecode' +defxstruct xcharset 'Lisp_Charset' +defxstruct xchartab 'Lisp_Char_Table' +defxstruct xchartabentry 'Lisp_Char_Table_Entry' +defxstruct xcodesys 'Lisp_Coding_System' +defxstruct xcolorinst 'Lisp_Color_Instance' +defxstruct xcons 'Lisp_Cons' +defxstruct xdevice 'device' +defxstruct xevent 'Lisp_Event' +defxstruct xextent 'extent' +defxstruct xextentaux 'extent_auxilliary' +defxstruct xfloat 'Lisp_Float' +defxstruct xfontinst 'Lisp_Font_Instance' +defxstruct xframe 'frame' +defxstruct xglyph 'Lisp_Glyph' +defxstruct xhashtable 'hashtable_struct' +defxstruct ximageinst 'Lisp_Image_Instance' +defxstruct xkeymap 'keymap' +defxstruct xmarker 'Lisp_Marker' +defxstruct xmenubardata 'menubar_data' +defxstruct xopaque 'Lisp_Opaque' +defxstruct xprocess 'Lisp_Process' +defxstruct xrangetab 'Lisp_Range_Table' +defxstruct xspec 'Lisp_Specifier' +defxstruct xsubwindow 'Lisp_Subwindow' +defxstruct xsymbol 'Lisp_Symbol' +defxstruct xtoolbarbutton 'toolbar_button' +defxstruct xtoolbardata 'toolbar_data' +defxstruct xtooltalkmess 'Lisp_Tooltalk_Message' +defxstruct xtooltalkpatt 'Lisp_Tooltalk_Pattern' +defxstruct xvector 'Lisp_Vector' +defxstruct xwindow 'window' +defxstruct xwindowconfig 'window_config' + +function pproc { + print *(`process.c`struct Lisp_Process*)$1 ; + dp "(`process.c`struct Lisp_Process*)$1->name" ; + dp "(`process.c`struct Lisp_Process*)$1->command" ; +} + +function xtype { + print (enum Lisp_Type) (($1 >> 28) & 7) +} + +dbxenv suppress_startup_message 4.0 + +function dp_args { + dp "*(((Lisp_Object*)($1))+0)" + dp "*(((Lisp_Object*)($1))+1)" +} + +function dp_core { + print ((struct x_frame *)(((struct frame*)(Fselected_frame(Qnil)&0x00FFFFFF))->frame_data))->widget->core +} + +# Barf! +function print_shell { + print *(`frame-x.c`TopLevelShellRec*) (((struct `frame-x.c`x_frame*) (((struct `frame-x.c`frame*) (Fselected_frame(Qnil)&0x00FFFFFF))->frame_data))->widget) +}