Mercurial > hg > xemacs-beta
diff src/gdbinit @ 396:6719134a07c2 r21-2-13
Import from CVS: tag r21-2-13
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:12:05 +0200 |
parents | 1f50e6fe4f3f |
children |
line wrap: on
line diff
--- a/src/gdbinit Mon Aug 13 11:11:38 2007 +0200 +++ b/src/gdbinit Mon Aug 13 11:12:05 2007 +0200 @@ -53,10 +53,10 @@ if $obj & 1 # It's an int set $val = $obj >> 1 - set $type = dbg_Lisp_Type_Int + set $type = Lisp_Type_Int else set $type = $obj & dbg_typemask - if $type == dbg_Lisp_Type_Char + if $type == Lisp_Type_Char set $val = ($obj & dbg_valmask) >> dbg_gctypebits else # It's a record pointer @@ -69,7 +69,7 @@ set $type = ($obj & dbg_typemask) >> (dbg_valbits + 1) end - if $type == dbg_Lisp_Type_Record + if $type == Lisp_Type_Record set $lheader = (struct lrecord_header *) $val if dbg_USE_INDEXED_LRECORD_IMPLEMENTATION set $imp = lrecord_implementations_table[$lheader->type] @@ -94,22 +94,22 @@ define xtype decode_object $arg0 - if $type == dbg_Lisp_Type_Int + if $type == Lisp_Type_Int echo int\n else - if $type == dbg_Lisp_Type_Char + if $type == Lisp_Type_Char echo char\n else - if $type == dbg_Lisp_Type_Symbol + if $type == Lisp_Type_Symbol echo symbol\n else - if $type == dbg_Lisp_Type_String + if $type == Lisp_Type_String echo string\n else - if $type == dbg_Lisp_Type_Vector + if $type == Lisp_Type_Vector echo vector\n else - if $type == dbg_Lisp_Type_Cons + if $type == Lisp_Type_Cons echo cons\n else printf "record type: %s\n", $imp->name @@ -133,8 +133,8 @@ define environment-to-run-temacs unset env EMACSLOADPATH - set env EMACSBOOTSTRAPLOADPATH = ../lisp/:.. - set env EMACSBOOTSTRAPMODULEPATH = ../lisp/ + set env EMACSBOOTSTRAPLOADPATH=../lisp/:.. + set env EMACSBOOTSTRAPMODULEPATH=../modules/:.. end define run-temacs @@ -197,6 +197,22 @@ Requires a running xemacs process. end + +define leval +ldp Feval(Fcar(Fread_from_string(build_string($arg0),Qnil,Qnil))) +end + +document leval +Usage: leval "SEXP" +Eval a lisp expression. +Requires a running xemacs process. + +Example: +(gdb) leval "(+ 1 2)" +Lisp ==> 3 +end + + define wtype print $arg0->core.widget_class->core_class.class_name end @@ -215,27 +231,27 @@ define pobj decode_object $arg0 - if $type == dbg_Lisp_Type_Int + if $type == Lisp_Type_Int printf "Integer: %d\n", $val else - if $type == dbg_Lisp_Type_Char - if $val < 128 + if $type == Lisp_Type_Char + if $val > 32 && $val < 128 printf "Char: %c\n", $val else printf "Char: %d\n", $val end else - if $type == dbg_Lisp_Type_String || $imp == lrecord_string + if $type == Lisp_Type_String || $imp == lrecord_string pstruct Lisp_String else - if $type == dbg_Lisp_Type_Cons || $imp == lrecord_cons + if $type == Lisp_Type_Cons || $imp == lrecord_cons pstruct Lisp_Cons else - if $type == dbg_Lisp_Type_Symbol || $imp == lrecord_symbol + if $type == Lisp_Type_Symbol || $imp == lrecord_symbol pstruct Lisp_Symbol printf "Symbol name: %s\n", $xstruct->name->data else - if $type == dbg_Lisp_Type_Vector || $imp == lrecord_vector + if $type == Lisp_Type_Vector || $imp == lrecord_vector pstruct Lisp_Vector printf "Vector of length %d\n", $xstruct->size #print *($xstruct->data) @ $xstruct->size @@ -433,3 +449,42 @@ Usage: pobj lisp_object Print the internal C structure of a underlying Lisp Object. end + +# ------------------------------------------------------------- +# functions to test the debugging support itself. +# If you change this file, make sure the following still work... +# ------------------------------------------------------------- +define test_xtype + printf "Vemacs_major_version: " + xtype Vemacs_major_version + printf "Vhelp_char: " + xtype Vhelp_char + printf "Qnil: " + xtype Qnil + printf "Qunbound: " + xtype Qunbound + printf "Vobarray: " + xtype Vobarray + printf "Vall_weak_lists: " + xtype Vall_weak_lists + printf "Vxemacs_codename: " + xtype Vxemacs_codename +end + +define test_pobj + printf "Vemacs_major_version: " + pobj Vemacs_major_version + printf "Vhelp_char: " + pobj Vhelp_char + printf "Qnil: " + pobj Qnil + printf "Qunbound: " + pobj Qunbound + printf "Vobarray: " + pobj Vobarray + printf "Vall_weak_lists: " + pobj Vall_weak_lists + printf "Vxemacs_codename: " + pobj Vxemacs_codename +end +