summaryrefslogtreecommitdiff
path: root/src/.gdbinit
blob: bd6646da5fce450d9e5f97a22b92cd369fcd2c7f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# Set up something to print out s-expressions.
define pr
set Fprin1 ($, Qexternal_debugging_output)
echo \n
end

document pr
Print the emacs s-expression which is $.
Works only when an inferior emacs is executing.
end

define xtype
print (enum Lisp_Type) (($ >> 24) & 0x7f)
p $$
end

define xint
print (($ & 0x00ffffff) << 8) >> 8
end

define xptr
print (void *) ($ & 0x00ffffff)
end

define xwindow
print (struct window *) ($ & 0x00ffffff)
end

define xmarker
print (struct Lisp_Marker *) ($ & 0x00ffffff)
end

define xbuffer
print (struct buffer *) ($ & 0x00ffffff)
end

define xsymbol
print (struct Lisp_Symbol *) ($ & 0x00ffffff)
print &$->name->data
print $$
end

define xstring
print (struct Lisp_String *) ($ & 0x00ffffff)
print ($->data[0])@($->size)
print $$
end

document xstring
Assume that $ is an Emacs Lisp string object, print the string's
contents, and set $ to a pointer to the string.
end

define xvector
set $temp = (struct Lisp_Vector *) ($ & 0x00ffffff)
print ($temp->contents[0])@($temp->size)
print $temp
end

document xvector
Assume that $ is an Emacs Lisp vector object, print the vector's
contents, and set $ to a pointer to the vector.
end

define xscreen
print (struct screen *) ($ & 0x00ffffff)
end

define xcons
print (struct Lisp_Cons *) ($ & 0x00ffffff)
print *$
end

define xcar
print ((($ >> 24) & 0x7f) == Lisp_Cons ? ((struct Lisp_Cons *) ($ & 0x00ffffff))->car : 0)
end

define xcdr
print ((($ >> 24) & 0x7f) == Lisp_Cons ? ((struct Lisp_Cons *) ($ & 0x00ffffff))->cdr : 0)
end

set prettyprint on

# Don't let abort actually run, as it will make
# stdio stop working and therefore the `pr' command below as well.
break abort

# If we are running in synchronous mode, we want a chance to look around
# before Emacs exits.  Perhaps we should put the break somewhere else
# instead...
break _XPrintDefaultError

unset env TERMCAP
unset env TERM
set env DISPLAY :0.0
info env DISPLAY
set args -q