]> code.delx.au - gnu-emacs/blobdiff - src/.gdbinit
(skip_chars): Setup gl_state (bug#3823).
[gnu-emacs] / src / .gdbinit
index a54f9d7b289a7d10ac70d73d2a6542f9383b5aae..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
@@ -1008,20 +1075,60 @@ 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)
 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[$arg0->hash_index * 2]
+  p $tmp->contents[charset_table[$arg0].hash_index * 2]
   pr
 end
 document xcharset
   Print the name of charset that has ID (argument).
 end
 
   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
     xgettype (*$bt->function)
     if $type == Lisp_Symbol
       xprintsym (*$bt->function)
 define xbacktrace
   set $bt = backtrace_list
   while $bt
     xgettype (*$bt->function)
     if $type == Lisp_Symbol
       xprintsym (*$bt->function)
-      printf " (0x%x)\n", *$bt->args
+      printf " (0x%x)\n", $bt->args
     else
       printf "0x%x ", *$bt->function
       if $type == Lisp_Vectorlike
     else
       printf "0x%x ", *$bt->function
       if $type == Lisp_Vectorlike
@@ -1110,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
@@ -1138,7 +1244,7 @@ end
 tbreak init_sys_modes
 commands
   silent
 tbreak init_sys_modes
 commands
   silent
-  xgetptr Vwindow_system
+  xgetptr Vinitial_window_system
   set $tem = (struct Lisp_Symbol *) $ptr
   xgetptr $tem->xname
   set $tem = (struct Lisp_String *) $ptr
   set $tem = (struct Lisp_Symbol *) $ptr
   xgetptr $tem->xname
   set $tem = (struct Lisp_String *) $ptr