-# Copyright (C) 1992-1998, 2000-2013 Free Software Foundation, Inc.
+# Copyright (C) 1992-1998, 2000-2015 Free Software Foundation, Inc.
#
# This file is part of GNU Emacs.
#
else
set $bugfix = $arg0
end
- set $ptr = ($bugfix & VALMASK) | DATA_SEG_BITS
+ set $ptr = $bugfix & VALMASK
end
define xgetint
else
set $bugfix = $arg0
end
- set $type = (enum Lisp_Type) (USE_LSB_TAG ? $bugfix & (1 << GCTYPEBITS) - 1 : $bugfix >> VALBITS)
+ set $type = (enum Lisp_Type) (USE_LSB_TAG ? $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
end
# Set up something to print out s-expressions.
end
# GLYPHLESS_GLYPH
if ($g.type == 2)
- printf "GLYPHLESS["
+ printf "G-LESS["
if ($g.u.glyphless.method == 0)
- printf "THIN]"
+ printf "THIN;0x%x]", $g.u.glyphless.ch
end
if ($g.u.glyphless.method == 1)
- printf "EMPTY]"
+ printf "EMPTY;0x%x]", $g.u.glyphless.ch
end
if ($g.u.glyphless.method == 2)
- printf "ACRO]"
+ printf "ACRO;0x%x]", $g.u.glyphless.ch
end
if ($g.u.glyphless.method == 3)
- printf "HEX]"
+ printf "HEX;0x%x]", $g.u.glyphless.ch
end
end
# IMAGE_GLYPH
printf " pos=%d", $g.charpos
end
# For characters, print their resolved level and bidi type
- if ($g.type == 0)
+ if ($g.type == 0 || $g.type == 2)
printf " blev=%d,btyp=", $g.resolved_level
pbiditype $g.bidi_type
end
xgetptr $
print (struct window *) $ptr
set $window = (struct window *) $ptr
- xgetint $window->total_cols
- set $width=$int
- xgetint $window->total_lines
- set $height=$int
- xgetint $window->left_col
- set $left=$int
- xgetint $window->top_line
- set $top=$int
- printf "%dx%d+%d+%d\n", $width, $height, $left, $top
+ printf "%dx%d+%d+%d\n", $window->total_cols, $window->total_lines, $window->left_col, $window->top_line
end
document xwindow
Print $ as a window pointer, assuming it is an Emacs Lisp window value.
define xsubchartable
xgetptr $
print (struct Lisp_Sub_Char_Table *) $ptr
- xgetint $->depth
- set $depth = $int
- xgetint $->min_char
- printf "Depth: %d, Min char: %d (0x%x)\n", $depth, $int, $int
+ set $subchartab = (struct Lisp_Sub_Char_Table *) $ptr
+ printf "Depth: %d, Min char: %d (0x%x)\n", $subchartab->depth, $subchartab->min_char, $subchartab->min_char
end
document xsubchartable
Print the address of the sub-char-table $, its depth and min-char.
define xprintstr
set $data = (char *) $arg0->data
- output ($arg0->size > 1000) ? 0 : ($data[0])@($arg0->size_byte < 0 ? $arg0->size & ~ARRAY_MARK_FLAG : $arg0->size_byte)
+ set $strsize = ($arg0->size_byte < 0) ? ($arg0->size & ~ARRAY_MARK_FLAG) : $arg0->size_byte
+ # GDB doesn't like zero repetition counts
+ if $strsize == 0
+ output ""
+ else
+ output ($arg0->size > 1000) ? 0 : ($data[0])@($strsize)
+ end
end
define xprintsym
end
define xcoding
- set $tmp = (struct Lisp_Hash_Table *) ((Vcoding_system_hash_table & VALMASK) | DATA_SEG_BITS)
- set $tmp = (struct Lisp_Vector *) (($tmp->key_and_value & VALMASK) | DATA_SEG_BITS)
+ set $tmp = (struct Lisp_Hash_Table *) (Vcoding_system_hash_table & VALMASK)
+ set $tmp = (struct Lisp_Vector *) ($tmp->key_and_value & VALMASK)
set $name = $tmp->contents[$arg0 * 2]
print $name
pr
end
define xcharset
- set $tmp = (struct Lisp_Hash_Table *) ((Vcharset_hash_table & VALMASK) | DATA_SEG_BITS)
- set $tmp = (struct Lisp_Vector *) (($tmp->key_and_value & VALMASK) | DATA_SEG_BITS)
+ set $tmp = (struct Lisp_Hash_Table *) (Vcharset_hash_table & VALMASK)
+ set $tmp = (struct Lisp_Vector *) ($tmp->key_and_value & VALMASK)
p $tmp->contents[charset_table[$arg0].hash_index * 2]
pr
end
define xprintbytestr
set $data = (char *) $arg0->data
+ set $bstrsize = ($arg0->size_byte < 0) ? ($arg0->size & ~ARRAY_MARK_FLAG) : $arg0->size_byte
printf "Bytecode: "
- output/u ($arg0->size > 1000) ? 0 : ($data[0])@($arg0->size_byte < 0 ? $arg0->size & ~ARRAY_MARK_FLAG : $arg0->size_byte)
+ if $bstrsize > 0
+ output/u ($arg0->size > 1000) ? 0 : ($data[0])@($bvsize)
+ else
+ printf ""
+ end
end
document xprintbytestr
Print a string of byte code.