]> code.delx.au - gnu-emacs/blobdiff - src/.gdbinit
(skip_chars): Setup gl_state (bug#3823).
[gnu-emacs] / src / .gdbinit
index ad7b666f18803b46ccff9fefd943bec094767c45..e8a64f5dfe419e5be586830448ced2f384b95fe4 100644 (file)
@@ -1,5 +1,6 @@
 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000, 2001,
 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000, 2001,
-#   2002, 2003, 2004, 2005, 2006, 2007  Free Software Foundation, Inc.
+#   2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+#   Free Software Foundation, Inc.
 #
 # This file is part of GNU Emacs.
 #
 #
 # This file is part of GNU Emacs.
 #
@@ -162,6 +163,35 @@ Print current buffer's point and boundaries.
 Prints values of point, beg, end, narrow, and gap for current buffer.
 end
 
 Prints values of point, beg, end, narrow, and gap for current buffer.
 end
 
+define pitmethod
+  set $itmethod = $arg0
+  # output $itmethod
+  if ($itmethod == 0)
+    printf "GET_FROM_BUFFER"
+  end
+  if ($itmethod == 1)
+    printf "GET_FROM_DISPLAY_VECTOR"
+  end
+  if ($itmethod == 2)
+    printf "GET_FROM_STRING"
+  end
+  if ($itmethod == 3)
+    printf "GET_FROM_C_STRING"
+  end
+  if ($itmethod == 4)
+    printf "GET_FROM_IMAGE"
+  end
+  if ($itmethod == 5)
+    printf "GET_FROM_STRETCH"
+  end
+  if ($itmethod < 0 || $itmethod > 5)
+    output $itmethod
+  end
+end
+document pitmethod
+Pretty print it->method given as first arg
+end
+
 # Print out iterator given as first arg
 define pitx
   set $it = $arg0
 # Print out iterator given as first arg
 define pitx
   set $it = $arg0
@@ -192,7 +222,8 @@ define pitx
   if ($it->sp != 0)
     printf " sp=%d", $it->sp
   end
   if ($it->sp != 0)
     printf " sp=%d", $it->sp
   end
-  if ($it->what == IT_CHARACTER)
+  # IT_CHARACTER
+  if ($it->what == 0)
     if ($it->len == 1 && $it->c >= ' ' && it->c < 255)
       printf " ch='%c'", $it->c
     else
     if ($it->len == 1 && $it->c >= ' ' && it->c < 255)
       printf " ch='%c'", $it->c
     else
@@ -200,20 +231,44 @@ define pitx
     end
   else
     printf " "
     end
   else
     printf " "
-    output $it->what
+    # output $it->what
+    if ($it->what == 0)
+      printf "IT_CHARACTER"
+    end
+    if ($it->what == 1)
+      printf "IT_COMPOSITION"
+    end
+    if ($it->what == 2)
+      printf "IT_IMAGE"
+    end
+    if ($it->what == 3)
+      printf "IT_STRETCH"
+    end
+    if ($it->what == 4)
+      printf "IT_EOB"
+    end
+    if ($it->what == 5)
+      printf "IT_TRUNCATION"
+    end
+    if ($it->what == 6)
+      printf "IT_CONTINUATION"
+    end
+    if ($it->what < 0 || $it->what > 6)
+      output $it->what
+    end
   end
   end
-  if ($it->method != GET_FROM_BUFFER)
+  if ($it->method != 0)
+    # !GET_FROM_BUFFER
     printf " next="
     printf " next="
-    output $it->method
-    if ($it->method == GET_FROM_STRING)
+    pitmethod $it->method
+    if ($it->method == 2)
+      # GET_FROM_STRING
       printf "[%d]", $it->current.string_pos.charpos
     end
       printf "[%d]", $it->current.string_pos.charpos
     end
-    if ($it->method == GET_FROM_IMAGE)
+    if ($it->method == 4)
+      # GET_FROM_IMAGE
       printf "[%d]", $it->image_id
     end
       printf "[%d]", $it->image_id
     end
-    if ($it->method == GET_FROM_COMPOSITION)
-      printf "[%d,%d,%d]", $it->cmp_id, $it->len, $it->cmp_len
-    end
   end
   printf "\n"
   if ($it->region_beg_charpos >= 0)
   end
   printf "\n"
   if ($it->region_beg_charpos >= 0)
@@ -230,7 +285,7 @@ define pitx
   while ($i < $it->sp && $i < 4)
     set $e = $it->stack[$i]
     printf "stack[%d]: ", $i
   while ($i < $it->sp && $i < 4)
     set $e = $it->stack[$i]
     printf "stack[%d]: ", $i
-    output $e->method
+    pitmethod $e->method
     printf "[%d]", $e->position.charpos
     printf "\n"
     set $i = $i + 1
     printf "[%d]", $e->position.charpos
     printf "\n"
     set $i = $i + 1
@@ -394,20 +449,24 @@ end
 
 define pgx
   set $g = $arg0
 
 define pgx
   set $g = $arg0
-  if ($g->type == CHAR_GLYPH)
+  # CHAR_GLYPH
+  if ($g->type == 0)
     if ($g->u.ch >= ' ' && $g->u.ch < 127)
       printf "CHAR[%c]", $g->u.ch
     else
       printf "CHAR[0x%x]", $g->u.ch
     end
   end
     if ($g->u.ch >= ' ' && $g->u.ch < 127)
       printf "CHAR[%c]", $g->u.ch
     else
       printf "CHAR[0x%x]", $g->u.ch
     end
   end
-  if ($g->type == COMPOSITE_GLYPH)
-    printf "COMP[%d]", $g->u.cmp_id
+  # COMPOSITE_GLYPH
+  if ($g->type == 1)
+    printf "COMP[%d (%d..%d)]", $g->u.cmp.id, $g->u.cmp.from, $g->u.cmp.to
   end
   end
-  if ($g->type == IMAGE_GLYPH)
+  # IMAGE_GLYPH
+  if ($g->type == 2)
     printf "IMAGE[%d]", $g->u.img_id
   end
     printf "IMAGE[%d]", $g->u.img_id
   end
-  if ($g->type == STRETCH_GLYPH)
+  # STRETCH_GLYPH
+  if ($g->type == 3)
     printf "STRETCH[%d+%d]", $g->u.stretch.height, $g->u.stretch.ascent
   end
   xgettype ($g->object)
     printf "STRETCH[%d+%d]", $g->u.stretch.height, $g->u.stretch.ascent
   end
   xgettype ($g->object)
@@ -417,7 +476,8 @@ define pgx
     printf " pos=%d", $g->charpos
   end
   printf " w=%d a+d=%d+%d", $g->pixel_width, $g->ascent, $g->descent
     printf " pos=%d", $g->charpos
   end
   printf " w=%d a+d=%d+%d", $g->pixel_width, $g->ascent, $g->descent
-  if ($g->face_id != DEFAULT_FACE_ID)
+  # If not DEFAULT_FACE_ID
+  if ($g->face_id != 0)
     printf " face=%d", $g->face_id
   end
   if ($g->voffset)
     printf " face=%d", $g->face_id
   end
   if ($g->voffset)
@@ -508,6 +568,13 @@ document pgrow
 Pretty print all glyphs in row structure row.
 end
 
 Pretty print all glyphs in row structure row.
 end
 
+define pgrowit
+  pgrowx it->glyph_row
+end
+document pgrowit
+Pretty print all glyphs in it->glyph_row.
+end
+
 define xtype
   xgettype $
   output $type
 define xtype
   xgettype $
   output $type
@@ -754,7 +821,7 @@ define xchartable
   print (struct Lisp_Char_Table *) $ptr
   printf "Purpose: "
   xprintsym $->purpose
   print (struct Lisp_Char_Table *) $ptr
   printf "Purpose: "
   xprintsym $->purpose
-  printf "  %d extra slots", ($->size & 0x1ff) - 388
+  printf "  %d extra slots", ($->size & 0x1ff) - 68
   echo \n
 end
 document xchartable
   echo \n
 end
 document xchartable
@@ -992,6 +1059,69 @@ document xprintsym
   Print argument as a symbol.
 end
 
   Print argument as a symbol.
 end
 
+define xcoding
+  set $tmp = (struct Lisp_Hash_Table *) ((Vcoding_system_hash_table & $valmask) | gdb_data_seg_bits)
+  set $tmp = (struct Lisp_Vector *) (($tmp->key_and_value & $valmask) | gdb_data_seg_bits)
+  set $name = $tmp->contents[$arg0 * 2]
+  print $name
+  pr
+  print $tmp->contents[$arg0 * 2 + 1]
+  pr
+end
+document xcoding
+  Print the name and attributes of coding system that has ID (argument).
+end
+
+define xcharset
+  set $tmp = (struct Lisp_Hash_Table *) ((Vcharset_hash_table & $valmask) | gdb_data_seg_bits)
+  set $tmp = (struct Lisp_Vector *) (($tmp->key_and_value & $valmask) | gdb_data_seg_bits)
+  p $tmp->contents[charset_table[$arg0].hash_index * 2]
+  pr
+end
+document xcharset
+  Print the name of charset that has ID (argument).
+end
+
+define xfontset
+  xgetptr $
+  set $tbl = (struct Lisp_Char_Table *) $ptr
+  print $tbl
+  xgetint $tbl->extras[0]
+  printf " ID:%d", $int
+  xgettype $tbl->extras[1]
+  xgetptr $tbl->extras[1]
+  if $type == Lisp_String
+    set $ptr = (struct Lisp_String *) $ptr
+    printf " Name:"
+    xprintstr $ptr
+  else
+    xgetptr $tbl->extras[2]
+    set $ptr = (struct Lisp_Char_Table *) $ptr
+    xgetptr $ptr->extras[1]
+    set $ptr = (struct Lisp_String *) $ptr
+    printf " Realized from:"
+    xprintstr $ptr
+  end
+  echo \n
+end
+
+define xfont
+  xgetptr $
+  set $size = (((struct Lisp_Vector *) $ptr)->size & 0x1FF)
+  if $size == FONT_SPEC_MAX
+    print (struct font_spec *) $ptr
+  else
+    if $size == FONT_ENTITY_MAX
+      print (struct font_entity *) $ptr
+    else
+      print (struct font *) $ptr
+    end
+  end
+end
+document xfont
+Print $ assuming it is a list font (font-spec, font-entity, or font-object).
+end
+
 define xbacktrace
   set $bt = backtrace_list
   while $bt
 define xbacktrace
   set $bt = backtrace_list
   while $bt
@@ -1087,7 +1217,6 @@ set print sevenbit-strings
 
 show environment DISPLAY
 show environment TERM
 
 show environment DISPLAY
 show environment TERM
-set args -geometry 80x40+0+0
 
 # People get bothered when they see messages about non-existent functions...
 xgetptr Vsystem_type
 
 # People get bothered when they see messages about non-existent functions...
 xgetptr Vsystem_type