1 |
342 |
jeremybenn |
This is gdb.info, produced by makeinfo version 4.13 from ./gdb.texinfo.
|
2 |
330 |
jeremybenn |
|
3 |
|
|
INFO-DIR-SECTION Software development
|
4 |
|
|
START-INFO-DIR-ENTRY
|
5 |
|
|
* Gdb: (gdb). The GNU debugger.
|
6 |
|
|
END-INFO-DIR-ENTRY
|
7 |
|
|
|
8 |
|
|
Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
|
9 |
|
|
1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
|
10 |
|
|
2010 Free Software Foundation, Inc.
|
11 |
|
|
|
12 |
|
|
Permission is granted to copy, distribute and/or modify this document
|
13 |
|
|
under the terms of the GNU Free Documentation License, Version 1.3 or
|
14 |
|
|
any later version published by the Free Software Foundation; with the
|
15 |
|
|
Invariant Sections being "Free Software" and "Free Software Needs Free
|
16 |
|
|
Documentation", with the Front-Cover Texts being "A GNU Manual," and
|
17 |
|
|
with the Back-Cover Texts as in (a) below.
|
18 |
|
|
|
19 |
|
|
(a) The FSF's Back-Cover Text is: "You are free to copy and modify
|
20 |
|
|
this GNU Manual. Buying copies from GNU Press supports the FSF in
|
21 |
|
|
developing GNU and promoting software freedom."
|
22 |
|
|
|
23 |
|
|
This file documents the GNU debugger GDB.
|
24 |
|
|
|
25 |
|
|
This is the Ninth Edition, of `Debugging with GDB: the GNU
|
26 |
512 |
jeremybenn |
Source-Level Debugger' for GDB (GDB) Version 7.2-or32-1.0rc3.
|
27 |
330 |
jeremybenn |
|
28 |
|
|
Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
|
29 |
|
|
1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
|
30 |
|
|
2010 Free Software Foundation, Inc.
|
31 |
|
|
|
32 |
|
|
Permission is granted to copy, distribute and/or modify this document
|
33 |
|
|
under the terms of the GNU Free Documentation License, Version 1.3 or
|
34 |
|
|
any later version published by the Free Software Foundation; with the
|
35 |
|
|
Invariant Sections being "Free Software" and "Free Software Needs Free
|
36 |
|
|
Documentation", with the Front-Cover Texts being "A GNU Manual," and
|
37 |
|
|
with the Back-Cover Texts as in (a) below.
|
38 |
|
|
|
39 |
|
|
(a) The FSF's Back-Cover Text is: "You are free to copy and modify
|
40 |
|
|
this GNU Manual. Buying copies from GNU Press supports the FSF in
|
41 |
|
|
developing GNU and promoting software freedom."
|
42 |
|
|
|
43 |
|
|
|
44 |
|
|
File: gdb.info, Node: Bytecode Descriptions, Next: Using Agent Expressions, Prev: General Bytecode Design, Up: Agent Expressions
|
45 |
|
|
|
46 |
|
|
E.2 Bytecode Descriptions
|
47 |
|
|
=========================
|
48 |
|
|
|
49 |
|
|
Each bytecode description has the following form:
|
50 |
|
|
|
51 |
|
|
`add' (0x02): A B => A+B
|
52 |
|
|
Pop the top two stack items, A and B, as integers; push their sum,
|
53 |
|
|
as an integer.
|
54 |
|
|
|
55 |
|
|
|
56 |
|
|
In this example, `add' is the name of the bytecode, and `(0x02)' is
|
57 |
|
|
the one-byte value used to encode the bytecode, in hexadecimal. The
|
58 |
|
|
phrase "A B => A+B" shows the stack before and after the bytecode
|
59 |
|
|
executes. Beforehand, the stack must contain at least two values, A
|
60 |
|
|
and B; since the top of the stack is to the right, B is on the top of
|
61 |
|
|
the stack, and A is underneath it. After execution, the bytecode will
|
62 |
|
|
have popped A and B from the stack, and replaced them with a single
|
63 |
|
|
value, A+B. There may be other values on the stack below those shown,
|
64 |
|
|
but the bytecode affects only those shown.
|
65 |
|
|
|
66 |
|
|
Here is another example:
|
67 |
|
|
|
68 |
|
|
`const8' (0x22) N: => N
|
69 |
|
|
Push the 8-bit integer constant N on the stack, without sign
|
70 |
|
|
extension.
|
71 |
|
|
|
72 |
|
|
|
73 |
|
|
In this example, the bytecode `const8' takes an operand N directly
|
74 |
|
|
from the bytecode stream; the operand follows the `const8' bytecode
|
75 |
|
|
itself. We write any such operands immediately after the name of the
|
76 |
|
|
bytecode, before the colon, and describe the exact encoding of the
|
77 |
|
|
operand in the bytecode stream in the body of the bytecode description.
|
78 |
|
|
|
79 |
|
|
For the `const8' bytecode, there are no stack items given before the
|
80 |
|
|
=>; this simply means that the bytecode consumes no values from the
|
81 |
|
|
stack. If a bytecode consumes no values, or produces no values, the
|
82 |
|
|
list on either side of the => may be empty.
|
83 |
|
|
|
84 |
|
|
If a value is written as A, B, or N, then the bytecode treats it as
|
85 |
|
|
an integer. If a value is written is ADDR, then the bytecode treats it
|
86 |
|
|
as an address.
|
87 |
|
|
|
88 |
|
|
We do not fully describe the floating point operations here; although
|
89 |
|
|
this design can be extended in a clean way to handle floating point
|
90 |
|
|
values, they are not of immediate interest to the customer, so we avoid
|
91 |
|
|
describing them, to save time.
|
92 |
|
|
|
93 |
|
|
`float' (0x01): =>
|
94 |
|
|
Prefix for floating-point bytecodes. Not implemented yet.
|
95 |
|
|
|
96 |
|
|
`add' (0x02): A B => A+B
|
97 |
|
|
Pop two integers from the stack, and push their sum, as an integer.
|
98 |
|
|
|
99 |
|
|
`sub' (0x03): A B => A-B
|
100 |
|
|
Pop two integers from the stack, subtract the top value from the
|
101 |
|
|
next-to-top value, and push the difference.
|
102 |
|
|
|
103 |
|
|
`mul' (0x04): A B => A*B
|
104 |
|
|
Pop two integers from the stack, multiply them, and push the
|
105 |
|
|
product on the stack. Note that, when one multiplies two N-bit
|
106 |
|
|
numbers yielding another N-bit number, it is irrelevant whether the
|
107 |
|
|
numbers are signed or not; the results are the same.
|
108 |
|
|
|
109 |
|
|
`div_signed' (0x05): A B => A/B
|
110 |
|
|
Pop two signed integers from the stack; divide the next-to-top
|
111 |
|
|
value by the top value, and push the quotient. If the divisor is
|
112 |
|
|
zero, terminate with an error.
|
113 |
|
|
|
114 |
|
|
`div_unsigned' (0x06): A B => A/B
|
115 |
|
|
Pop two unsigned integers from the stack; divide the next-to-top
|
116 |
|
|
value by the top value, and push the quotient. If the divisor is
|
117 |
|
|
zero, terminate with an error.
|
118 |
|
|
|
119 |
|
|
`rem_signed' (0x07): A B => A MODULO B
|
120 |
|
|
Pop two signed integers from the stack; divide the next-to-top
|
121 |
|
|
value by the top value, and push the remainder. If the divisor is
|
122 |
|
|
zero, terminate with an error.
|
123 |
|
|
|
124 |
|
|
`rem_unsigned' (0x08): A B => A MODULO B
|
125 |
|
|
Pop two unsigned integers from the stack; divide the next-to-top
|
126 |
|
|
value by the top value, and push the remainder. If the divisor is
|
127 |
|
|
zero, terminate with an error.
|
128 |
|
|
|
129 |
|
|
`lsh' (0x09): A B => A<
|
130 |
|
|
Pop two integers from the stack; let A be the next-to-top value,
|
131 |
|
|
and B be the top value. Shift A left by B bits, and push the
|
132 |
|
|
result.
|
133 |
|
|
|
134 |
|
|
`rsh_signed' (0x0a): A B => `(signed)'A>>B
|
135 |
|
|
Pop two integers from the stack; let A be the next-to-top value,
|
136 |
|
|
and B be the top value. Shift A right by B bits, inserting copies
|
137 |
|
|
of the top bit at the high end, and push the result.
|
138 |
|
|
|
139 |
|
|
`rsh_unsigned' (0x0b): A B => A>>B
|
140 |
|
|
Pop two integers from the stack; let A be the next-to-top value,
|
141 |
|
|
and B be the top value. Shift A right by B bits, inserting zero
|
142 |
|
|
bits at the high end, and push the result.
|
143 |
|
|
|
144 |
|
|
`log_not' (0x0e): A => !A
|
145 |
|
|
Pop an integer from the stack; if it is zero, push the value one;
|
146 |
|
|
otherwise, push the value zero.
|
147 |
|
|
|
148 |
|
|
`bit_and' (0x0f): A B => A&B
|
149 |
|
|
Pop two integers from the stack, and push their bitwise `and'.
|
150 |
|
|
|
151 |
|
|
`bit_or' (0x10): A B => A|B
|
152 |
|
|
Pop two integers from the stack, and push their bitwise `or'.
|
153 |
|
|
|
154 |
|
|
`bit_xor' (0x11): A B => A^B
|
155 |
|
|
Pop two integers from the stack, and push their bitwise
|
156 |
|
|
exclusive-`or'.
|
157 |
|
|
|
158 |
|
|
`bit_not' (0x12): A => ~A
|
159 |
|
|
Pop an integer from the stack, and push its bitwise complement.
|
160 |
|
|
|
161 |
|
|
`equal' (0x13): A B => A=B
|
162 |
|
|
Pop two integers from the stack; if they are equal, push the value
|
163 |
|
|
one; otherwise, push the value zero.
|
164 |
|
|
|
165 |
|
|
`less_signed' (0x14): A B => A
|
166 |
|
|
Pop two signed integers from the stack; if the next-to-top value
|
167 |
|
|
is less than the top value, push the value one; otherwise, push
|
168 |
|
|
the value zero.
|
169 |
|
|
|
170 |
|
|
`less_unsigned' (0x15): A B => A
|
171 |
|
|
Pop two unsigned integers from the stack; if the next-to-top value
|
172 |
|
|
is less than the top value, push the value one; otherwise, push
|
173 |
|
|
the value zero.
|
174 |
|
|
|
175 |
|
|
`ext' (0x16) N: A => A, sign-extended from N bits
|
176 |
|
|
Pop an unsigned value from the stack; treating it as an N-bit
|
177 |
|
|
twos-complement value, extend it to full length. This means that
|
178 |
|
|
all bits to the left of bit N-1 (where the least significant bit
|
179 |
|
|
is bit 0) are set to the value of bit N-1. Note that N may be
|
180 |
|
|
larger than or equal to the width of the stack elements of the
|
181 |
|
|
bytecode engine; in this case, the bytecode should have no effect.
|
182 |
|
|
|
183 |
|
|
The number of source bits to preserve, N, is encoded as a single
|
184 |
|
|
byte unsigned integer following the `ext' bytecode.
|
185 |
|
|
|
186 |
|
|
`zero_ext' (0x2a) N: A => A, zero-extended from N bits
|
187 |
|
|
Pop an unsigned value from the stack; zero all but the bottom N
|
188 |
|
|
bits. This means that all bits to the left of bit N-1 (where the
|
189 |
|
|
least significant bit is bit 0) are set to the value of bit N-1.
|
190 |
|
|
|
191 |
|
|
The number of source bits to preserve, N, is encoded as a single
|
192 |
|
|
byte unsigned integer following the `zero_ext' bytecode.
|
193 |
|
|
|
194 |
|
|
`ref8' (0x17): ADDR => A
|
195 |
|
|
`ref16' (0x18): ADDR => A
|
196 |
|
|
`ref32' (0x19): ADDR => A
|
197 |
|
|
`ref64' (0x1a): ADDR => A
|
198 |
|
|
Pop an address ADDR from the stack. For bytecode `ref'N, fetch an
|
199 |
|
|
N-bit value from ADDR, using the natural target endianness. Push
|
200 |
|
|
the fetched value as an unsigned integer.
|
201 |
|
|
|
202 |
|
|
Note that ADDR may not be aligned in any particular way; the
|
203 |
|
|
`refN' bytecodes should operate correctly for any address.
|
204 |
|
|
|
205 |
|
|
If attempting to access memory at ADDR would cause a processor
|
206 |
|
|
exception of some sort, terminate with an error.
|
207 |
|
|
|
208 |
|
|
`ref_float' (0x1b): ADDR => D
|
209 |
|
|
`ref_double' (0x1c): ADDR => D
|
210 |
|
|
`ref_long_double' (0x1d): ADDR => D
|
211 |
|
|
`l_to_d' (0x1e): A => D
|
212 |
|
|
`d_to_l' (0x1f): D => A
|
213 |
|
|
Not implemented yet.
|
214 |
|
|
|
215 |
|
|
`dup' (0x28): A => A A
|
216 |
|
|
Push another copy of the stack's top element.
|
217 |
|
|
|
218 |
|
|
`swap' (0x2b): A B => B A
|
219 |
|
|
Exchange the top two items on the stack.
|
220 |
|
|
|
221 |
|
|
`pop' (0x29): A =>
|
222 |
|
|
Discard the top value on the stack.
|
223 |
|
|
|
224 |
|
|
`if_goto' (0x20) OFFSET: A =>
|
225 |
|
|
Pop an integer off the stack; if it is non-zero, branch to the
|
226 |
|
|
given offset in the bytecode string. Otherwise, continue to the
|
227 |
|
|
next instruction in the bytecode stream. In other words, if A is
|
228 |
|
|
non-zero, set the `pc' register to `start' + OFFSET. Thus, an
|
229 |
|
|
offset of zero denotes the beginning of the expression.
|
230 |
|
|
|
231 |
|
|
The OFFSET is stored as a sixteen-bit unsigned value, stored
|
232 |
|
|
immediately following the `if_goto' bytecode. It is always stored
|
233 |
|
|
most significant byte first, regardless of the target's normal
|
234 |
|
|
endianness. The offset is not guaranteed to fall at any particular
|
235 |
|
|
alignment within the bytecode stream; thus, on machines where
|
236 |
|
|
fetching a 16-bit on an unaligned address raises an exception, you
|
237 |
|
|
should fetch the offset one byte at a time.
|
238 |
|
|
|
239 |
|
|
`goto' (0x21) OFFSET: =>
|
240 |
|
|
Branch unconditionally to OFFSET; in other words, set the `pc'
|
241 |
|
|
register to `start' + OFFSET.
|
242 |
|
|
|
243 |
|
|
The offset is stored in the same way as for the `if_goto' bytecode.
|
244 |
|
|
|
245 |
|
|
`const8' (0x22) N: => N
|
246 |
|
|
`const16' (0x23) N: => N
|
247 |
|
|
`const32' (0x24) N: => N
|
248 |
|
|
`const64' (0x25) N: => N
|
249 |
|
|
Push the integer constant N on the stack, without sign extension.
|
250 |
|
|
To produce a small negative value, push a small twos-complement
|
251 |
|
|
value, and then sign-extend it using the `ext' bytecode.
|
252 |
|
|
|
253 |
|
|
The constant N is stored in the appropriate number of bytes
|
254 |
|
|
following the `const'B bytecode. The constant N is always stored
|
255 |
|
|
most significant byte first, regardless of the target's normal
|
256 |
|
|
endianness. The constant is not guaranteed to fall at any
|
257 |
|
|
particular alignment within the bytecode stream; thus, on machines
|
258 |
|
|
where fetching a 16-bit on an unaligned address raises an
|
259 |
|
|
exception, you should fetch N one byte at a time.
|
260 |
|
|
|
261 |
|
|
`reg' (0x26) N: => A
|
262 |
|
|
Push the value of register number N, without sign extension. The
|
263 |
|
|
registers are numbered following GDB's conventions.
|
264 |
|
|
|
265 |
|
|
The register number N is encoded as a 16-bit unsigned integer
|
266 |
|
|
immediately following the `reg' bytecode. It is always stored most
|
267 |
|
|
significant byte first, regardless of the target's normal
|
268 |
|
|
endianness. The register number is not guaranteed to fall at any
|
269 |
|
|
particular alignment within the bytecode stream; thus, on machines
|
270 |
|
|
where fetching a 16-bit on an unaligned address raises an
|
271 |
|
|
exception, you should fetch the register number one byte at a time.
|
272 |
|
|
|
273 |
|
|
`getv' (0x2c) N: => V
|
274 |
|
|
Push the value of trace state variable number N, without sign
|
275 |
|
|
extension.
|
276 |
|
|
|
277 |
|
|
The variable number N is encoded as a 16-bit unsigned integer
|
278 |
|
|
immediately following the `getv' bytecode. It is always stored
|
279 |
|
|
most significant byte first, regardless of the target's normal
|
280 |
|
|
endianness. The variable number is not guaranteed to fall at any
|
281 |
|
|
particular alignment within the bytecode stream; thus, on machines
|
282 |
|
|
where fetching a 16-bit on an unaligned address raises an
|
283 |
|
|
exception, you should fetch the register number one byte at a time.
|
284 |
|
|
|
285 |
|
|
`setv' (0x2d) N: => V
|
286 |
|
|
Set trace state variable number N to the value found on the top of
|
287 |
|
|
the stack. The stack is unchanged, so that the value is readily
|
288 |
|
|
available if the assignment is part of a larger expression. The
|
289 |
|
|
handling of N is as described for `getv'.
|
290 |
|
|
|
291 |
|
|
`trace' (0x0c): ADDR SIZE =>
|
292 |
|
|
Record the contents of the SIZE bytes at ADDR in a trace buffer,
|
293 |
|
|
for later retrieval by GDB.
|
294 |
|
|
|
295 |
|
|
`trace_quick' (0x0d) SIZE: ADDR => ADDR
|
296 |
|
|
Record the contents of the SIZE bytes at ADDR in a trace buffer,
|
297 |
|
|
for later retrieval by GDB. SIZE is a single byte unsigned
|
298 |
|
|
integer following the `trace' opcode.
|
299 |
|
|
|
300 |
|
|
This bytecode is equivalent to the sequence `dup const8 SIZE
|
301 |
|
|
trace', but we provide it anyway to save space in bytecode strings.
|
302 |
|
|
|
303 |
|
|
`trace16' (0x30) SIZE: ADDR => ADDR
|
304 |
|
|
Identical to trace_quick, except that SIZE is a 16-bit big-endian
|
305 |
|
|
unsigned integer, not a single byte. This should probably have
|
306 |
|
|
been named `trace_quick16', for consistency.
|
307 |
|
|
|
308 |
|
|
`tracev' (0x2e) N: => A
|
309 |
|
|
Record the value of trace state variable number N in the trace
|
310 |
|
|
buffer. The handling of N is as described for `getv'.
|
311 |
|
|
|
312 |
|
|
`end' (0x27): =>
|
313 |
|
|
Stop executing bytecode; the result should be the top element of
|
314 |
|
|
the stack. If the purpose of the expression was to compute an
|
315 |
|
|
lvalue or a range of memory, then the next-to-top of the stack is
|
316 |
|
|
the lvalue's address, and the top of the stack is the lvalue's
|
317 |
|
|
size, in bytes.
|
318 |
|
|
|
319 |
|
|
|
320 |
|
|
|
321 |
|
|
File: gdb.info, Node: Using Agent Expressions, Next: Varying Target Capabilities, Prev: Bytecode Descriptions, Up: Agent Expressions
|
322 |
|
|
|
323 |
|
|
E.3 Using Agent Expressions
|
324 |
|
|
===========================
|
325 |
|
|
|
326 |
|
|
Agent expressions can be used in several different ways by GDB, and the
|
327 |
|
|
debugger can generate different bytecode sequences as appropriate.
|
328 |
|
|
|
329 |
|
|
One possibility is to do expression evaluation on the target rather
|
330 |
|
|
than the host, such as for the conditional of a conditional tracepoint.
|
331 |
|
|
In such a case, GDB compiles the source expression into a bytecode
|
332 |
|
|
sequence that simply gets values from registers or memory, does
|
333 |
|
|
arithmetic, and returns a result.
|
334 |
|
|
|
335 |
|
|
Another way to use agent expressions is for tracepoint data
|
336 |
|
|
collection. GDB generates a different bytecode sequence for
|
337 |
|
|
collection; in addition to bytecodes that do the calculation, GDB adds
|
338 |
|
|
`trace' bytecodes to save the pieces of memory that were used.
|
339 |
|
|
|
340 |
|
|
* The user selects trace points in the program's code at which GDB
|
341 |
|
|
should collect data.
|
342 |
|
|
|
343 |
|
|
* The user specifies expressions to evaluate at each trace point.
|
344 |
|
|
These expressions may denote objects in memory, in which case
|
345 |
|
|
those objects' contents are recorded as the program runs, or
|
346 |
|
|
computed values, in which case the values themselves are recorded.
|
347 |
|
|
|
348 |
|
|
* GDB transmits the tracepoints and their associated expressions to
|
349 |
|
|
the GDB agent, running on the debugging target.
|
350 |
|
|
|
351 |
|
|
* The agent arranges to be notified when a trace point is hit.
|
352 |
|
|
|
353 |
|
|
* When execution on the target reaches a trace point, the agent
|
354 |
|
|
evaluates the expressions associated with that trace point, and
|
355 |
|
|
records the resulting values and memory ranges.
|
356 |
|
|
|
357 |
|
|
* Later, when the user selects a given trace event and inspects the
|
358 |
|
|
objects and expression values recorded, GDB talks to the agent to
|
359 |
|
|
retrieve recorded data as necessary to meet the user's requests.
|
360 |
|
|
If the user asks to see an object whose contents have not been
|
361 |
|
|
recorded, GDB reports an error.
|
362 |
|
|
|
363 |
|
|
|
364 |
|
|
|
365 |
|
|
File: gdb.info, Node: Varying Target Capabilities, Next: Rationale, Prev: Using Agent Expressions, Up: Agent Expressions
|
366 |
|
|
|
367 |
|
|
E.4 Varying Target Capabilities
|
368 |
|
|
===============================
|
369 |
|
|
|
370 |
|
|
Some targets don't support floating-point, and some would rather not
|
371 |
|
|
have to deal with `long long' operations. Also, different targets will
|
372 |
|
|
have different stack sizes, and different bytecode buffer lengths.
|
373 |
|
|
|
374 |
|
|
Thus, GDB needs a way to ask the target about itself. We haven't
|
375 |
|
|
worked out the details yet, but in general, GDB should be able to send
|
376 |
|
|
the target a packet asking it to describe itself. The reply should be a
|
377 |
|
|
packet whose length is explicit, so we can add new information to the
|
378 |
|
|
packet in future revisions of the agent, without confusing old versions
|
379 |
|
|
of GDB, and it should contain a version number. It should contain at
|
380 |
|
|
least the following information:
|
381 |
|
|
|
382 |
|
|
* whether floating point is supported
|
383 |
|
|
|
384 |
|
|
* whether `long long' is supported
|
385 |
|
|
|
386 |
|
|
* maximum acceptable size of bytecode stack
|
387 |
|
|
|
388 |
|
|
* maximum acceptable length of bytecode expressions
|
389 |
|
|
|
390 |
|
|
* which registers are actually available for collection
|
391 |
|
|
|
392 |
|
|
* whether the target supports disabled tracepoints
|
393 |
|
|
|
394 |
|
|
|
395 |
|
|
|
396 |
|
|
File: gdb.info, Node: Rationale, Prev: Varying Target Capabilities, Up: Agent Expressions
|
397 |
|
|
|
398 |
|
|
E.5 Rationale
|
399 |
|
|
=============
|
400 |
|
|
|
401 |
|
|
Some of the design decisions apparent above are arguable.
|
402 |
|
|
|
403 |
|
|
What about stack overflow/underflow?
|
404 |
|
|
GDB should be able to query the target to discover its stack size.
|
405 |
|
|
Given that information, GDB can determine at translation time
|
406 |
|
|
whether a given expression will overflow the stack. But this spec
|
407 |
|
|
isn't about what kinds of error-checking GDB ought to do.
|
408 |
|
|
|
409 |
|
|
Why are you doing everything in LONGEST?
|
410 |
|
|
Speed isn't important, but agent code size is; using LONGEST
|
411 |
|
|
brings in a bunch of support code to do things like division, etc.
|
412 |
|
|
So this is a serious concern.
|
413 |
|
|
|
414 |
|
|
First, note that you don't need different bytecodes for different
|
415 |
|
|
operand sizes. You can generate code without _knowing_ how big the
|
416 |
|
|
stack elements actually are on the target. If the target only
|
417 |
|
|
supports 32-bit ints, and you don't send any 64-bit bytecodes,
|
418 |
|
|
everything just works. The observation here is that the MIPS and
|
419 |
|
|
the Alpha have only fixed-size registers, and you can still get
|
420 |
|
|
C's semantics even though most instructions only operate on
|
421 |
|
|
full-sized words. You just need to make sure everything is
|
422 |
|
|
properly sign-extended at the right times. So there is no need
|
423 |
|
|
for 32- and 64-bit variants of the bytecodes. Just implement
|
424 |
|
|
everything using the largest size you support.
|
425 |
|
|
|
426 |
|
|
GDB should certainly check to see what sizes the target supports,
|
427 |
|
|
so the user can get an error earlier, rather than later. But this
|
428 |
|
|
information is not necessary for correctness.
|
429 |
|
|
|
430 |
|
|
Why don't you have `>' or `<=' operators?
|
431 |
|
|
I want to keep the interpreter small, and we don't need them. We
|
432 |
|
|
can combine the `less_' opcodes with `log_not', and swap the order
|
433 |
|
|
of the operands, yielding all four asymmetrical comparison
|
434 |
|
|
operators. For example, `(x <= y)' is `! (x > y)', which is `! (y
|
435 |
|
|
< x)'.
|
436 |
|
|
|
437 |
|
|
Why do you have `log_not'?
|
438 |
|
|
Why do you have `ext'?
|
439 |
|
|
Why do you have `zero_ext'?
|
440 |
|
|
These are all easily synthesized from other instructions, but I
|
441 |
|
|
expect them to be used frequently, and they're simple, so I
|
442 |
|
|
include them to keep bytecode strings short.
|
443 |
|
|
|
444 |
|
|
`log_not' is equivalent to `const8 0 equal'; it's used in half the
|
445 |
|
|
relational operators.
|
446 |
|
|
|
447 |
|
|
`ext N' is equivalent to `const8 S-N lsh const8 S-N rsh_signed',
|
448 |
|
|
where S is the size of the stack elements; it follows `refM' and
|
449 |
|
|
REG bytecodes when the value should be signed. See the next
|
450 |
|
|
bulleted item.
|
451 |
|
|
|
452 |
|
|
`zero_ext N' is equivalent to `constM MASK log_and'; it's used
|
453 |
|
|
whenever we push the value of a register, because we can't assume
|
454 |
|
|
the upper bits of the register aren't garbage.
|
455 |
|
|
|
456 |
|
|
Why not have sign-extending variants of the `ref' operators?
|
457 |
|
|
Because that would double the number of `ref' operators, and we
|
458 |
|
|
need the `ext' bytecode anyway for accessing bitfields.
|
459 |
|
|
|
460 |
|
|
Why not have constant-address variants of the `ref' operators?
|
461 |
|
|
Because that would double the number of `ref' operators again, and
|
462 |
|
|
`const32 ADDRESS ref32' is only one byte longer.
|
463 |
|
|
|
464 |
|
|
Why do the `refN' operators have to support unaligned fetches?
|
465 |
|
|
GDB will generate bytecode that fetches multi-byte values at
|
466 |
|
|
unaligned addresses whenever the executable's debugging
|
467 |
|
|
information tells it to. Furthermore, GDB does not know the value
|
468 |
|
|
the pointer will have when GDB generates the bytecode, so it
|
469 |
|
|
cannot determine whether a particular fetch will be aligned or not.
|
470 |
|
|
|
471 |
|
|
In particular, structure bitfields may be several bytes long, but
|
472 |
|
|
follow no alignment rules; members of packed structures are not
|
473 |
|
|
necessarily aligned either.
|
474 |
|
|
|
475 |
|
|
In general, there are many cases where unaligned references occur
|
476 |
|
|
in correct C code, either at the programmer's explicit request, or
|
477 |
|
|
at the compiler's discretion. Thus, it is simpler to make the GDB
|
478 |
|
|
agent bytecodes work correctly in all circumstances than to make
|
479 |
|
|
GDB guess in each case whether the compiler did the usual thing.
|
480 |
|
|
|
481 |
|
|
Why are there no side-effecting operators?
|
482 |
|
|
Because our current client doesn't want them? That's a cheap
|
483 |
|
|
answer. I think the real answer is that I'm afraid of
|
484 |
|
|
implementing function calls. We should re-visit this issue after
|
485 |
|
|
the present contract is delivered.
|
486 |
|
|
|
487 |
|
|
Why aren't the `goto' ops PC-relative?
|
488 |
|
|
The interpreter has the base address around anyway for PC bounds
|
489 |
|
|
checking, and it seemed simpler.
|
490 |
|
|
|
491 |
|
|
Why is there only one offset size for the `goto' ops?
|
492 |
|
|
Offsets are currently sixteen bits. I'm not happy with this
|
493 |
|
|
situation either:
|
494 |
|
|
|
495 |
|
|
Suppose we have multiple branch ops with different offset sizes.
|
496 |
|
|
As I generate code left-to-right, all my jumps are forward jumps
|
497 |
|
|
(there are no loops in expressions), so I never know the target
|
498 |
|
|
when I emit the jump opcode. Thus, I have to either always assume
|
499 |
|
|
the largest offset size, or do jump relaxation on the code after I
|
500 |
|
|
generate it, which seems like a big waste of time.
|
501 |
|
|
|
502 |
|
|
I can imagine a reasonable expression being longer than 256 bytes.
|
503 |
|
|
I can't imagine one being longer than 64k. Thus, we need 16-bit
|
504 |
|
|
offsets. This kind of reasoning is so bogus, but relaxation is
|
505 |
|
|
pathetic.
|
506 |
|
|
|
507 |
|
|
The other approach would be to generate code right-to-left. Then
|
508 |
|
|
I'd always know my offset size. That might be fun.
|
509 |
|
|
|
510 |
|
|
Where is the function call bytecode?
|
511 |
|
|
When we add side-effects, we should add this.
|
512 |
|
|
|
513 |
|
|
Why does the `reg' bytecode take a 16-bit register number?
|
514 |
|
|
Intel's IA-64 architecture has 128 general-purpose registers, and
|
515 |
|
|
128 floating-point registers, and I'm sure it has some random
|
516 |
|
|
control registers.
|
517 |
|
|
|
518 |
|
|
Why do we need `trace' and `trace_quick'?
|
519 |
|
|
Because GDB needs to record all the memory contents and registers
|
520 |
|
|
an expression touches. If the user wants to evaluate an expression
|
521 |
|
|
`x->y->z', the agent must record the values of `x' and `x->y' as
|
522 |
|
|
well as the value of `x->y->z'.
|
523 |
|
|
|
524 |
|
|
Don't the `trace' bytecodes make the interpreter less general?
|
525 |
|
|
They do mean that the interpreter contains special-purpose code,
|
526 |
|
|
but that doesn't mean the interpreter can only be used for that
|
527 |
|
|
purpose. If an expression doesn't use the `trace' bytecodes, they
|
528 |
|
|
don't get in its way.
|
529 |
|
|
|
530 |
|
|
Why doesn't `trace_quick' consume its arguments the way everything else does?
|
531 |
|
|
In general, you do want your operators to consume their arguments;
|
532 |
|
|
it's consistent, and generally reduces the amount of stack
|
533 |
|
|
rearrangement necessary. However, `trace_quick' is a kludge to
|
534 |
|
|
save space; it only exists so we needn't write `dup const8 SIZE
|
535 |
|
|
trace' before every memory reference. Therefore, it's okay for it
|
536 |
|
|
not to consume its arguments; it's meant for a specific context in
|
537 |
|
|
which we know exactly what it should do with the stack. If we're
|
538 |
|
|
going to have a kludge, it should be an effective kludge.
|
539 |
|
|
|
540 |
|
|
Why does `trace16' exist?
|
541 |
|
|
That opcode was added by the customer that contracted Cygnus for
|
542 |
|
|
the data tracing work. I personally think it is unnecessary;
|
543 |
|
|
objects that large will be quite rare, so it is okay to use `dup
|
544 |
|
|
const16 SIZE trace' in those cases.
|
545 |
|
|
|
546 |
|
|
Whatever we decide to do with `trace16', we should at least leave
|
547 |
|
|
opcode 0x30 reserved, to remain compatible with the customer who
|
548 |
|
|
added it.
|
549 |
|
|
|
550 |
|
|
|
551 |
|
|
|
552 |
|
|
File: gdb.info, Node: Trace File Format, Next: Copying, Prev: Operating System Information, Up: Top
|
553 |
|
|
|
554 |
|
|
Appendix F Trace File Format
|
555 |
|
|
****************************
|
556 |
|
|
|
557 |
|
|
The trace file comes in three parts: a header, a textual description
|
558 |
|
|
section, and a trace frame section with binary data.
|
559 |
|
|
|
560 |
|
|
The header has the form `\x7fTRACE0\n'. The first byte is `0x7f' so
|
561 |
|
|
as to indicate that the file contains binary data, while the `0' is a
|
562 |
|
|
version number that may have different values in the future.
|
563 |
|
|
|
564 |
|
|
The description section consists of multiple lines of ASCII text
|
565 |
|
|
separated by newline characters (`0xa'). The lines may include a
|
566 |
|
|
variety of optional descriptive or context-setting information, such as
|
567 |
|
|
tracepoint definitions or register set size. GDB will ignore any line
|
568 |
|
|
that it does not recognize. An empty line marks the end of this
|
569 |
|
|
section.
|
570 |
|
|
|
571 |
|
|
The trace frame section consists of a number of consecutive frames.
|
572 |
|
|
Each frame begins with a two-byte tracepoint number, followed by a
|
573 |
|
|
four-byte size giving the amount of data in the frame. The data in the
|
574 |
|
|
frame consists of a number of blocks, each introduced by a character
|
575 |
|
|
indicating its type (at least register, memory, and trace state
|
576 |
|
|
variable). The data in this section is raw binary, not a hexadecimal
|
577 |
|
|
or other encoding; its endianness matches the target's endianness.
|
578 |
|
|
|
579 |
|
|
`R BYTES'
|
580 |
|
|
Register block. The number and ordering of bytes matches that of a
|
581 |
|
|
`g' packet in the remote protocol. Note that these are the actual
|
582 |
|
|
bytes, in target order and GDB register order, not a hexadecimal
|
583 |
|
|
encoding.
|
584 |
|
|
|
585 |
|
|
`M ADDRESS LENGTH BYTES...'
|
586 |
|
|
Memory block. This is a contiguous block of memory, at the 8-byte
|
587 |
|
|
address ADDRESS, with a 2-byte length LENGTH, followed by LENGTH
|
588 |
|
|
bytes.
|
589 |
|
|
|
590 |
|
|
`V NUMBER VALUE'
|
591 |
|
|
Trace state variable block. This records the 8-byte signed value
|
592 |
|
|
VALUE of trace state variable numbered NUMBER.
|
593 |
|
|
|
594 |
|
|
|
595 |
|
|
Future enhancements of the trace file format may include additional
|
596 |
|
|
types of blocks.
|
597 |
|
|
|
598 |
|
|
|
599 |
|
|
File: gdb.info, Node: Target Descriptions, Next: Operating System Information, Prev: Agent Expressions, Up: Top
|
600 |
|
|
|
601 |
|
|
Appendix G Target Descriptions
|
602 |
|
|
******************************
|
603 |
|
|
|
604 |
|
|
*Warning:* target descriptions are still under active development, and
|
605 |
|
|
the contents and format may change between GDB releases. The format is
|
606 |
|
|
expected to stabilize in the future.
|
607 |
|
|
|
608 |
|
|
One of the challenges of using GDB to debug embedded systems is that
|
609 |
|
|
there are so many minor variants of each processor architecture in use.
|
610 |
|
|
It is common practice for vendors to start with a standard processor
|
611 |
|
|
core -- ARM, PowerPC, or MIPS, for example -- and then make changes to
|
612 |
|
|
adapt it to a particular market niche. Some architectures have
|
613 |
|
|
hundreds of variants, available from dozens of vendors. This leads to
|
614 |
|
|
a number of problems:
|
615 |
|
|
|
616 |
|
|
* With so many different customized processors, it is difficult for
|
617 |
|
|
the GDB maintainers to keep up with the changes.
|
618 |
|
|
|
619 |
|
|
* Since individual variants may have short lifetimes or limited
|
620 |
|
|
audiences, it may not be worthwhile to carry information about
|
621 |
|
|
every variant in the GDB source tree.
|
622 |
|
|
|
623 |
|
|
* When GDB does support the architecture of the embedded system at
|
624 |
|
|
hand, the task of finding the correct architecture name to give the
|
625 |
|
|
`set architecture' command can be error-prone.
|
626 |
|
|
|
627 |
|
|
To address these problems, the GDB remote protocol allows a target
|
628 |
|
|
system to not only identify itself to GDB, but to actually describe its
|
629 |
|
|
own features. This lets GDB support processor variants it has never
|
630 |
|
|
seen before -- to the extent that the descriptions are accurate, and
|
631 |
|
|
that GDB understands them.
|
632 |
|
|
|
633 |
|
|
GDB must be linked with the Expat library to support XML target
|
634 |
|
|
descriptions. *Note Expat::.
|
635 |
|
|
|
636 |
|
|
* Menu:
|
637 |
|
|
|
638 |
|
|
* Retrieving Descriptions:: How descriptions are fetched from a target.
|
639 |
|
|
* Target Description Format:: The contents of a target description.
|
640 |
|
|
* Predefined Target Types:: Standard types available for target
|
641 |
|
|
descriptions.
|
642 |
|
|
* Standard Target Features:: Features GDB knows about.
|
643 |
|
|
|
644 |
|
|
|
645 |
|
|
File: gdb.info, Node: Retrieving Descriptions, Next: Target Description Format, Up: Target Descriptions
|
646 |
|
|
|
647 |
|
|
G.1 Retrieving Descriptions
|
648 |
|
|
===========================
|
649 |
|
|
|
650 |
|
|
Target descriptions can be read from the target automatically, or
|
651 |
|
|
specified by the user manually. The default behavior is to read the
|
652 |
|
|
description from the target. GDB retrieves it via the remote protocol
|
653 |
|
|
using `qXfer' requests (*note qXfer: General Query Packets.). The
|
654 |
|
|
ANNEX in the `qXfer' packet will be `target.xml'. The contents of the
|
655 |
342 |
jeremybenn |
`target.xml' annex are an XML document, of the form described in *note
|
656 |
330 |
jeremybenn |
Target Description Format::.
|
657 |
|
|
|
658 |
|
|
Alternatively, you can specify a file to read for the target
|
659 |
|
|
description. If a file is set, the target will not be queried. The
|
660 |
|
|
commands to specify a file are:
|
661 |
|
|
|
662 |
|
|
`set tdesc filename PATH'
|
663 |
|
|
Read the target description from PATH.
|
664 |
|
|
|
665 |
|
|
`unset tdesc filename'
|
666 |
|
|
Do not read the XML target description from a file. GDB will use
|
667 |
|
|
the description supplied by the current target.
|
668 |
|
|
|
669 |
|
|
`show tdesc filename'
|
670 |
|
|
Show the filename to read for a target description, if any.
|
671 |
|
|
|
672 |
|
|
|
673 |
|
|
File: gdb.info, Node: Target Description Format, Next: Predefined Target Types, Prev: Retrieving Descriptions, Up: Target Descriptions
|
674 |
|
|
|
675 |
|
|
G.2 Target Description Format
|
676 |
|
|
=============================
|
677 |
|
|
|
678 |
|
|
A target description annex is an XML (http://www.w3.org/XML/) document
|
679 |
|
|
which complies with the Document Type Definition provided in the GDB
|
680 |
|
|
sources in `gdb/features/gdb-target.dtd'. This means you can use
|
681 |
|
|
generally available tools like `xmllint' to check that your feature
|
682 |
|
|
descriptions are well-formed and valid. However, to help people
|
683 |
|
|
unfamiliar with XML write descriptions for their targets, we also
|
684 |
|
|
describe the grammar here.
|
685 |
|
|
|
686 |
|
|
Target descriptions can identify the architecture of the remote
|
687 |
|
|
target and (for some architectures) provide information about custom
|
688 |
|
|
register sets. They can also identify the OS ABI of the remote target.
|
689 |
|
|
GDB can use this information to autoconfigure for your target, or to
|
690 |
|
|
warn you if you connect to an unsupported target.
|
691 |
|
|
|
692 |
|
|
Here is a simple target description:
|
693 |
|
|
|
694 |
|
|
|
695 |
|
|
i386:x86-64
|
696 |
|
|
|
697 |
|
|
|
698 |
|
|
This minimal description only says that the target uses the x86-64
|
699 |
|
|
architecture.
|
700 |
|
|
|
701 |
|
|
A target description has the following overall form, with [ ] marking
|
702 |
|
|
optional elements and ... marking repeatable elements. The elements
|
703 |
|
|
are explained further below.
|
704 |
|
|
|
705 |
|
|
|
706 |
|
|
|
707 |
|
|
|
708 |
|
|
[ARCHITECTURE]
|
709 |
|
|
[OSABI]
|
710 |
|
|
[COMPATIBLE]
|
711 |
|
|
[FEATURE...]
|
712 |
|
|
|
713 |
|
|
|
714 |
|
|
The description is generally insensitive to whitespace and line breaks,
|
715 |
|
|
under the usual common-sense rules. The XML version declaration and
|
716 |
|
|
document type declaration can generally be omitted (GDB does not
|
717 |
|
|
require them), but specifying them may be useful for XML validation
|
718 |
|
|
tools. The `version' attribute for `' may also be omitted, but
|
719 |
|
|
we recommend including it; if future versions of GDB use an incompatible
|
720 |
|
|
revision of `gdb-target.dtd', they will detect and report the version
|
721 |
|
|
mismatch.
|
722 |
|
|
|
723 |
|
|
G.2.1 Inclusion
|
724 |
|
|
---------------
|
725 |
|
|
|
726 |
|
|
It can sometimes be valuable to split a target description up into
|
727 |
|
|
several different annexes, either for organizational purposes, or to
|
728 |
|
|
share files between different possible target descriptions. You can
|
729 |
|
|
divide a description into multiple files by replacing any element of
|
730 |
|
|
the target description with an inclusion directive of the form:
|
731 |
|
|
|
732 |
|
|
|
733 |
|
|
|
734 |
|
|
When GDB encounters an element of this form, it will retrieve the named
|
735 |
|
|
XML DOCUMENT, and replace the inclusion directive with the contents of
|
736 |
|
|
that document. If the current description was read using `qXfer', then
|
737 |
|
|
so will be the included document; DOCUMENT will be interpreted as the
|
738 |
|
|
name of an annex. If the current description was read from a file, GDB
|
739 |
|
|
will look for DOCUMENT as a file in the same directory where it found
|
740 |
|
|
the original description.
|
741 |
|
|
|
742 |
|
|
G.2.2 Architecture
|
743 |
|
|
------------------
|
744 |
|
|
|
745 |
|
|
An `' element has this form:
|
746 |
|
|
|
747 |
|
|
ARCH
|
748 |
|
|
|
749 |
|
|
ARCH is one of the architectures from the set accepted by `set
|
750 |
|
|
architecture' (*note Specifying a Debugging Target: Targets.).
|
751 |
|
|
|
752 |
|
|
G.2.3 OS ABI
|
753 |
|
|
------------
|
754 |
|
|
|
755 |
|
|
This optional field was introduced in GDB version 7.0. Previous
|
756 |
|
|
versions of GDB ignore it.
|
757 |
|
|
|
758 |
|
|
An `' element has this form:
|
759 |
|
|
|
760 |
|
|
ABI-NAME
|
761 |
|
|
|
762 |
|
|
ABI-NAME is an OS ABI name from the same selection accepted by
|
763 |
|
|
`set osabi' (*note Configuring the Current ABI: ABI.).
|
764 |
|
|
|
765 |
|
|
G.2.4 Compatible Architecture
|
766 |
|
|
-----------------------------
|
767 |
|
|
|
768 |
|
|
This optional field was introduced in GDB version 7.0. Previous
|
769 |
|
|
versions of GDB ignore it.
|
770 |
|
|
|
771 |
|
|
A `' element has this form:
|
772 |
|
|
|
773 |
|
|
ARCH
|
774 |
|
|
|
775 |
|
|
ARCH is one of the architectures from the set accepted by `set
|
776 |
|
|
architecture' (*note Specifying a Debugging Target: Targets.).
|
777 |
|
|
|
778 |
|
|
A `' element is used to specify that the target is able
|
779 |
|
|
to run binaries in some other than the main target architecture given
|
780 |
|
|
by the `' element. For example, on the Cell Broadband
|
781 |
|
|
Engine, the main architecture is `powerpc:common' or
|
782 |
|
|
`powerpc:common64', but the system is able to run binaries in the `spu'
|
783 |
|
|
architecture as well. The way to describe this capability with
|
784 |
|
|
`' is as follows:
|
785 |
|
|
|
786 |
|
|
powerpc:common
|
787 |
|
|
spu
|
788 |
|
|
|
789 |
|
|
G.2.5 Features
|
790 |
|
|
--------------
|
791 |
|
|
|
792 |
|
|
Each `' describes some logical portion of the target system.
|
793 |
|
|
Features are currently used to describe available CPU registers and the
|
794 |
|
|
types of their contents. A `' element has this form:
|
795 |
|
|
|
796 |
|
|
|
797 |
|
|
[TYPE...]
|
798 |
|
|
REG...
|
799 |
|
|
|
800 |
|
|
|
801 |
|
|
Each feature's name should be unique within the description. The name
|
802 |
|
|
of a feature does not matter unless GDB has some special knowledge of
|
803 |
|
|
the contents of that feature; if it does, the feature should have its
|
804 |
|
|
standard name. *Note Standard Target Features::.
|
805 |
|
|
|
806 |
|
|
G.2.6 Types
|
807 |
|
|
-----------
|
808 |
|
|
|
809 |
|
|
Any register's value is a collection of bits which GDB must interpret.
|
810 |
|
|
The default interpretation is a two's complement integer, but other
|
811 |
|
|
types can be requested by name in the register description. Some
|
812 |
|
|
predefined types are provided by GDB (*note Predefined Target Types::),
|
813 |
|
|
and the description can define additional composite types.
|
814 |
|
|
|
815 |
|
|
Each type element must have an `id' attribute, which gives a unique
|
816 |
|
|
(within the containing `') name to the type. Types must be
|
817 |
|
|
defined before they are used.
|
818 |
|
|
|
819 |
|
|
Some targets offer vector registers, which can be treated as arrays
|
820 |
|
|
of scalar elements. These types are written as `' elements,
|
821 |
|
|
specifying the array element type, TYPE, and the number of elements,
|
822 |
|
|
COUNT:
|
823 |
|
|
|
824 |
|
|
|
825 |
|
|
|
826 |
|
|
If a register's value is usefully viewed in multiple ways, define it
|
827 |
|
|
with a union type containing the useful representations. The `'
|
828 |
|
|
element contains one or more `' elements, each of which has a
|
829 |
|
|
NAME and a TYPE:
|
830 |
|
|
|
831 |
|
|
|
832 |
|
|
|
833 |
|
|
...
|
834 |
|
|
|
835 |
|
|
|
836 |
|
|
If a register's value is composed from several separate values,
|
837 |
|
|
define it with a structure type. There are two forms of the `'
|
838 |
|
|
element; a `' element must either contain only bitfields or
|
839 |
|
|
contain no bitfields. If the structure contains only bitfields, its
|
840 |
|
|
total size in bytes must be specified, each bitfield must have an
|
841 |
|
|
explicit start and end, and bitfields are automatically assigned an
|
842 |
|
|
integer type. The field's START should be less than or equal to its
|
843 |
|
|
END, and zero represents the least significant bit.
|
844 |
|
|
|
845 |
|
|
|
846 |
|
|
|
847 |
|
|
...
|
848 |
|
|
|
849 |
|
|
|
850 |
|
|
If the structure contains no bitfields, then each field has an
|
851 |
|
|
explicit type, and no implicit padding is added.
|
852 |
|
|
|
853 |
|
|
|
854 |
|
|
|
855 |
|
|
...
|
856 |
|
|
|
857 |
|
|
|
858 |
|
|
If a register's value is a series of single-bit flags, define it with
|
859 |
|
|
a flags type. The `' element has an explicit SIZE and contains
|
860 |
|
|
one or more `' elements. Each field has a NAME, a START, and an
|
861 |
|
|
END. Only single-bit flags are supported.
|
862 |
|
|
|
863 |
|
|
|
864 |
|
|
|
865 |
|
|
...
|
866 |
|
|
|
867 |
|
|
|
868 |
|
|
G.2.7 Registers
|
869 |
|
|
---------------
|
870 |
|
|
|
871 |
|
|
Each register is represented as an element with this form:
|
872 |
|
|
|
873 |
|
|
|
874 |
|
|
bitsize="SIZE"
|
875 |
|
|
[regnum="NUM"]
|
876 |
|
|
[save-restore="SAVE-RESTORE"]
|
877 |
|
|
[type="TYPE"]
|
878 |
|
|
[group="GROUP"]/>
|
879 |
|
|
|
880 |
|
|
The components are as follows:
|
881 |
|
|
|
882 |
|
|
NAME
|
883 |
|
|
The register's name; it must be unique within the target
|
884 |
|
|
description.
|
885 |
|
|
|
886 |
|
|
BITSIZE
|
887 |
|
|
The register's size, in bits.
|
888 |
|
|
|
889 |
|
|
REGNUM
|
890 |
|
|
The register's number. If omitted, a register's number is one
|
891 |
|
|
greater than that of the previous register (either in the current
|
892 |
|
|
feature or in a preceeding feature); the first register in the
|
893 |
|
|
target description defaults to zero. This register number is used
|
894 |
|
|
to read or write the register; e.g. it is used in the remote `p'
|
895 |
|
|
and `P' packets, and registers appear in the `g' and `G' packets
|
896 |
|
|
in order of increasing register number.
|
897 |
|
|
|
898 |
|
|
SAVE-RESTORE
|
899 |
|
|
Whether the register should be preserved across inferior function
|
900 |
|
|
calls; this must be either `yes' or `no'. The default is `yes',
|
901 |
|
|
which is appropriate for most registers except for some system
|
902 |
|
|
control registers; this is not related to the target's ABI.
|
903 |
|
|
|
904 |
|
|
TYPE
|
905 |
|
|
The type of the register. TYPE may be a predefined type, a type
|
906 |
|
|
defined in the current feature, or one of the special types `int'
|
907 |
|
|
and `float'. `int' is an integer type of the correct size for
|
908 |
|
|
BITSIZE, and `float' is a floating point type (in the
|
909 |
|
|
architecture's normal floating point format) of the correct size
|
910 |
|
|
for BITSIZE. The default is `int'.
|
911 |
|
|
|
912 |
|
|
GROUP
|
913 |
|
|
The register group to which this register belongs. GROUP must be
|
914 |
|
|
either `general', `float', or `vector'. If no GROUP is specified,
|
915 |
|
|
GDB will not display the register in `info registers'.
|
916 |
|
|
|
917 |
|
|
|
918 |
|
|
|
919 |
|
|
File: gdb.info, Node: Predefined Target Types, Next: Standard Target Features, Prev: Target Description Format, Up: Target Descriptions
|
920 |
|
|
|
921 |
|
|
G.3 Predefined Target Types
|
922 |
|
|
===========================
|
923 |
|
|
|
924 |
|
|
Type definitions in the self-description can build up composite types
|
925 |
|
|
from basic building blocks, but can not define fundamental types.
|
926 |
|
|
Instead, standard identifiers are provided by GDB for the fundamental
|
927 |
|
|
types. The currently supported types are:
|
928 |
|
|
|
929 |
|
|
`int8'
|
930 |
|
|
`int16'
|
931 |
|
|
`int32'
|
932 |
|
|
`int64'
|
933 |
|
|
`int128'
|
934 |
|
|
Signed integer types holding the specified number of bits.
|
935 |
|
|
|
936 |
|
|
`uint8'
|
937 |
|
|
`uint16'
|
938 |
|
|
`uint32'
|
939 |
|
|
`uint64'
|
940 |
|
|
`uint128'
|
941 |
|
|
Unsigned integer types holding the specified number of bits.
|
942 |
|
|
|
943 |
|
|
`code_ptr'
|
944 |
|
|
`data_ptr'
|
945 |
|
|
Pointers to unspecified code and data. The program counter and
|
946 |
|
|
any dedicated return address register may be marked as code
|
947 |
|
|
pointers; printing a code pointer converts it into a symbolic
|
948 |
|
|
address. The stack pointer and any dedicated address registers
|
949 |
|
|
may be marked as data pointers.
|
950 |
|
|
|
951 |
|
|
`ieee_single'
|
952 |
|
|
Single precision IEEE floating point.
|
953 |
|
|
|
954 |
|
|
`ieee_double'
|
955 |
|
|
Double precision IEEE floating point.
|
956 |
|
|
|
957 |
|
|
`arm_fpa_ext'
|
958 |
|
|
The 12-byte extended precision format used by ARM FPA registers.
|
959 |
|
|
|
960 |
|
|
`i387_ext'
|
961 |
|
|
The 10-byte extended precision format used by x87 registers.
|
962 |
|
|
|
963 |
|
|
`i386_eflags'
|
964 |
|
|
32bit EFLAGS register used by x86.
|
965 |
|
|
|
966 |
|
|
`i386_mxcsr'
|
967 |
|
|
32bit MXCSR register used by x86.
|
968 |
|
|
|
969 |
|
|
|
970 |
|
|
|
971 |
|
|
File: gdb.info, Node: Standard Target Features, Prev: Predefined Target Types, Up: Target Descriptions
|
972 |
|
|
|
973 |
|
|
G.4 Standard Target Features
|
974 |
|
|
============================
|
975 |
|
|
|
976 |
|
|
A target description must contain either no registers or all the
|
977 |
|
|
target's registers. If the description contains no registers, then GDB
|
978 |
|
|
will assume a default register layout, selected based on the
|
979 |
|
|
architecture. If the description contains any registers, the default
|
980 |
|
|
layout will not be used; the standard registers must be described in
|
981 |
|
|
the target description, in such a way that GDB can recognize them.
|
982 |
|
|
|
983 |
|
|
This is accomplished by giving specific names to feature elements
|
984 |
|
|
which contain standard registers. GDB will look for features with
|
985 |
|
|
those names and verify that they contain the expected registers; if any
|
986 |
|
|
known feature is missing required registers, or if any required feature
|
987 |
|
|
is missing, GDB will reject the target description. You can add
|
988 |
|
|
additional registers to any of the standard features -- GDB will
|
989 |
|
|
display them just as if they were added to an unrecognized feature.
|
990 |
|
|
|
991 |
|
|
This section lists the known features and their expected contents.
|
992 |
|
|
Sample XML documents for these features are included in the GDB source
|
993 |
|
|
tree, in the directory `gdb/features'.
|
994 |
|
|
|
995 |
|
|
Names recognized by GDB should include the name of the company or
|
996 |
|
|
organization which selected the name, and the overall architecture to
|
997 |
|
|
which the feature applies; so e.g. the feature containing ARM core
|
998 |
|
|
registers is named `org.gnu.gdb.arm.core'.
|
999 |
|
|
|
1000 |
|
|
The names of registers are not case sensitive for the purpose of
|
1001 |
|
|
recognizing standard features, but GDB will only display registers
|
1002 |
|
|
using the capitalization used in the description.
|
1003 |
|
|
|
1004 |
|
|
* Menu:
|
1005 |
|
|
|
1006 |
|
|
* ARM Features::
|
1007 |
|
|
* i386 Features::
|
1008 |
|
|
* MIPS Features::
|
1009 |
|
|
* M68K Features::
|
1010 |
|
|
* PowerPC Features::
|
1011 |
|
|
|
1012 |
|
|
|
1013 |
|
|
File: gdb.info, Node: ARM Features, Next: i386 Features, Up: Standard Target Features
|
1014 |
|
|
|
1015 |
|
|
G.4.1 ARM Features
|
1016 |
|
|
------------------
|
1017 |
|
|
|
1018 |
|
|
The `org.gnu.gdb.arm.core' feature is required for ARM targets. It
|
1019 |
|
|
should contain registers `r0' through `r13', `sp', `lr', `pc', and
|
1020 |
|
|
`cpsr'.
|
1021 |
|
|
|
1022 |
|
|
The `org.gnu.gdb.arm.fpa' feature is optional. If present, it
|
1023 |
|
|
should contain registers `f0' through `f7' and `fps'.
|
1024 |
|
|
|
1025 |
|
|
The `org.gnu.gdb.xscale.iwmmxt' feature is optional. If present, it
|
1026 |
|
|
should contain at least registers `wR0' through `wR15' and `wCGR0'
|
1027 |
|
|
through `wCGR3'. The `wCID', `wCon', `wCSSF', and `wCASF' registers
|
1028 |
|
|
are optional.
|
1029 |
|
|
|
1030 |
|
|
The `org.gnu.gdb.arm.vfp' feature is optional. If present, it
|
1031 |
|
|
should contain at least registers `d0' through `d15'. If they are
|
1032 |
|
|
present, `d16' through `d31' should also be included. GDB will
|
1033 |
|
|
synthesize the single-precision registers from halves of the
|
1034 |
|
|
double-precision registers.
|
1035 |
|
|
|
1036 |
|
|
The `org.gnu.gdb.arm.neon' feature is optional. It does not need to
|
1037 |
|
|
contain registers; it instructs GDB to display the VFP double-precision
|
1038 |
|
|
registers as vectors and to synthesize the quad-precision registers
|
1039 |
|
|
from pairs of double-precision registers. If this feature is present,
|
1040 |
|
|
`org.gnu.gdb.arm.vfp' must also be present and include 32
|
1041 |
|
|
double-precision registers.
|
1042 |
|
|
|
1043 |
|
|
|
1044 |
|
|
File: gdb.info, Node: i386 Features, Next: MIPS Features, Prev: ARM Features, Up: Standard Target Features
|
1045 |
|
|
|
1046 |
|
|
G.4.2 i386 Features
|
1047 |
|
|
-------------------
|
1048 |
|
|
|
1049 |
|
|
The `org.gnu.gdb.i386.core' feature is required for i386/amd64 targets.
|
1050 |
|
|
It should describe the following registers:
|
1051 |
|
|
|
1052 |
|
|
- `eax' through `edi' plus `eip' for i386
|
1053 |
|
|
|
1054 |
|
|
- `rax' through `r15' plus `rip' for amd64
|
1055 |
|
|
|
1056 |
|
|
- `eflags', `cs', `ss', `ds', `es', `fs', `gs'
|
1057 |
|
|
|
1058 |
|
|
- `st0' through `st7'
|
1059 |
|
|
|
1060 |
|
|
- `fctrl', `fstat', `ftag', `fiseg', `fioff', `foseg', `fooff' and
|
1061 |
|
|
`fop'
|
1062 |
|
|
|
1063 |
|
|
The register sets may be different, depending on the target.
|
1064 |
|
|
|
1065 |
|
|
The `org.gnu.gdb.i386.sse' feature is optional. It should describe
|
1066 |
|
|
registers:
|
1067 |
|
|
|
1068 |
|
|
- `xmm0' through `xmm7' for i386
|
1069 |
|
|
|
1070 |
|
|
- `xmm0' through `xmm15' for amd64
|
1071 |
|
|
|
1072 |
|
|
- `mxcsr'
|
1073 |
|
|
|
1074 |
|
|
The `org.gnu.gdb.i386.avx' feature is optional and requires the
|
1075 |
|
|
`org.gnu.gdb.i386.sse' feature. It should describe the upper 128 bits
|
1076 |
|
|
of YMM registers:
|
1077 |
|
|
|
1078 |
|
|
- `ymm0h' through `ymm7h' for i386
|
1079 |
|
|
|
1080 |
|
|
- `ymm0h' through `ymm15h' for amd64
|
1081 |
|
|
|
1082 |
|
|
-
|
1083 |
|
|
The `org.gnu.gdb.i386.linux' feature is optional. It should
|
1084 |
|
|
describe a single register, `orig_eax'.
|
1085 |
|
|
|
1086 |
|
|
|
1087 |
|
|
File: gdb.info, Node: MIPS Features, Next: M68K Features, Prev: i386 Features, Up: Standard Target Features
|
1088 |
|
|
|
1089 |
|
|
G.4.3 MIPS Features
|
1090 |
|
|
-------------------
|
1091 |
|
|
|
1092 |
|
|
The `org.gnu.gdb.mips.cpu' feature is required for MIPS targets. It
|
1093 |
|
|
should contain registers `r0' through `r31', `lo', `hi', and `pc'.
|
1094 |
|
|
They may be 32-bit or 64-bit depending on the target.
|
1095 |
|
|
|
1096 |
|
|
The `org.gnu.gdb.mips.cp0' feature is also required. It should
|
1097 |
|
|
contain at least the `status', `badvaddr', and `cause' registers. They
|
1098 |
|
|
may be 32-bit or 64-bit depending on the target.
|
1099 |
|
|
|
1100 |
|
|
The `org.gnu.gdb.mips.fpu' feature is currently required, though it
|
1101 |
|
|
may be optional in a future version of GDB. It should contain
|
1102 |
|
|
registers `f0' through `f31', `fcsr', and `fir'. They may be 32-bit or
|
1103 |
|
|
64-bit depending on the target.
|
1104 |
|
|
|
1105 |
|
|
The `org.gnu.gdb.mips.linux' feature is optional. It should contain
|
1106 |
|
|
a single register, `restart', which is used by the Linux kernel to
|
1107 |
|
|
control restartable syscalls.
|
1108 |
|
|
|
1109 |
|
|
|
1110 |
|
|
File: gdb.info, Node: M68K Features, Next: PowerPC Features, Prev: MIPS Features, Up: Standard Target Features
|
1111 |
|
|
|
1112 |
|
|
G.4.4 M68K Features
|
1113 |
|
|
-------------------
|
1114 |
|
|
|
1115 |
|
|
``org.gnu.gdb.m68k.core''
|
1116 |
|
|
``org.gnu.gdb.coldfire.core''
|
1117 |
|
|
``org.gnu.gdb.fido.core''
|
1118 |
|
|
One of those features must be always present. The feature that is
|
1119 |
|
|
present determines which flavor of m68k is used. The feature that
|
1120 |
|
|
is present should contain registers `d0' through `d7', `a0'
|
1121 |
|
|
through `a5', `fp', `sp', `ps' and `pc'.
|
1122 |
|
|
|
1123 |
|
|
``org.gnu.gdb.coldfire.fp''
|
1124 |
|
|
This feature is optional. If present, it should contain registers
|
1125 |
|
|
`fp0' through `fp7', `fpcontrol', `fpstatus' and `fpiaddr'.
|
1126 |
|
|
|
1127 |
|
|
|
1128 |
|
|
File: gdb.info, Node: PowerPC Features, Prev: M68K Features, Up: Standard Target Features
|
1129 |
|
|
|
1130 |
|
|
G.4.5 PowerPC Features
|
1131 |
|
|
----------------------
|
1132 |
|
|
|
1133 |
|
|
The `org.gnu.gdb.power.core' feature is required for PowerPC targets.
|
1134 |
|
|
It should contain registers `r0' through `r31', `pc', `msr', `cr',
|
1135 |
|
|
`lr', `ctr', and `xer'. They may be 32-bit or 64-bit depending on the
|
1136 |
|
|
target.
|
1137 |
|
|
|
1138 |
|
|
The `org.gnu.gdb.power.fpu' feature is optional. It should contain
|
1139 |
|
|
registers `f0' through `f31' and `fpscr'.
|
1140 |
|
|
|
1141 |
|
|
The `org.gnu.gdb.power.altivec' feature is optional. It should
|
1142 |
|
|
contain registers `vr0' through `vr31', `vscr', and `vrsave'.
|
1143 |
|
|
|
1144 |
|
|
The `org.gnu.gdb.power.vsx' feature is optional. It should contain
|
1145 |
|
|
registers `vs0h' through `vs31h'. GDB will combine these registers
|
1146 |
|
|
with the floating point registers (`f0' through `f31') and the altivec
|
1147 |
|
|
registers (`vr0' through `vr31') to present the 128-bit wide registers
|
1148 |
|
|
`vs0' through `vs63', the set of vector registers for POWER7.
|
1149 |
|
|
|
1150 |
|
|
The `org.gnu.gdb.power.spe' feature is optional. It should contain
|
1151 |
|
|
registers `ev0h' through `ev31h', `acc', and `spefscr'. SPE targets
|
1152 |
|
|
should provide 32-bit registers in `org.gnu.gdb.power.core' and provide
|
1153 |
|
|
the upper halves in `ev0h' through `ev31h'. GDB will combine these to
|
1154 |
|
|
present registers `ev0' through `ev31' to the user.
|
1155 |
|
|
|
1156 |
|
|
|
1157 |
|
|
File: gdb.info, Node: Operating System Information, Next: Trace File Format, Prev: Target Descriptions, Up: Top
|
1158 |
|
|
|
1159 |
|
|
Appendix H Operating System Information
|
1160 |
|
|
***************************************
|
1161 |
|
|
|
1162 |
|
|
* Menu:
|
1163 |
|
|
|
1164 |
|
|
* Process list::
|
1165 |
|
|
|
1166 |
|
|
Users of GDB often wish to obtain information about the state of the
|
1167 |
|
|
operating system running on the target--for example the list of
|
1168 |
|
|
processes, or the list of open files. This section describes the
|
1169 |
|
|
mechanism that makes it possible. This mechanism is similar to the
|
1170 |
|
|
target features mechanism (*note Target Descriptions::), but focuses on
|
1171 |
|
|
a different aspect of target.
|
1172 |
|
|
|
1173 |
|
|
Operating system information is retrived from the target via the
|
1174 |
|
|
remote protocol, using `qXfer' requests (*note qXfer osdata read::).
|
1175 |
|
|
The object name in the request should be `osdata', and the ANNEX
|
1176 |
|
|
identifies the data to be fetched.
|
1177 |
|
|
|
1178 |
|
|
|
1179 |
|
|
File: gdb.info, Node: Process list, Up: Operating System Information
|
1180 |
|
|
|
1181 |
|
|
H.1 Process list
|
1182 |
|
|
================
|
1183 |
|
|
|
1184 |
|
|
When requesting the process list, the ANNEX field in the `qXfer'
|
1185 |
|
|
request should be `processes'. The returned data is an XML document.
|
1186 |
|
|
The formal syntax of this document is defined in
|
1187 |
|
|
`gdb/features/osdata.dtd'.
|
1188 |
|
|
|
1189 |
|
|
An example document is:
|
1190 |
|
|
|
1191 |
|
|
|
1192 |
|
|
|
1193 |
|
|
|
1194 |
|
|
|
1195 |
|
|
1
|
1196 |
|
|
root
|
1197 |
|
|
/sbin/init
|
1198 |
|
|
1,2,3
|
1199 |
|
|
|
1200 |
|
|
|
1201 |
|
|
|
1202 |
|
|
Each item should include a column whose name is `pid'. The value of
|
1203 |
|
|
that column should identify the process on the target. The `user' and
|
1204 |
|
|
`command' columns are optional, and will be displayed by GDB. The
|
1205 |
|
|
`cores' column, if present, should contain a comma-separated list of
|
1206 |
|
|
cores that this process is running on. Target may provide additional
|
1207 |
|
|
columns, which GDB currently ignores.
|
1208 |
|
|
|
1209 |
|
|
|
1210 |
|
|
File: gdb.info, Node: Copying, Next: GNU Free Documentation License, Prev: Trace File Format, Up: Top
|
1211 |
|
|
|
1212 |
|
|
Appendix I GNU GENERAL PUBLIC LICENSE
|
1213 |
|
|
*************************************
|
1214 |
|
|
|
1215 |
|
|
Version 3, 29 June 2007
|
1216 |
|
|
|
1217 |
|
|
Copyright (C) 2007 Free Software Foundation, Inc. `http://fsf.org/'
|
1218 |
|
|
|
1219 |
|
|
Everyone is permitted to copy and distribute verbatim copies of this
|
1220 |
|
|
license document, but changing it is not allowed.
|
1221 |
|
|
|
1222 |
|
|
Preamble
|
1223 |
|
|
========
|
1224 |
|
|
|
1225 |
|
|
The GNU General Public License is a free, copyleft license for software
|
1226 |
|
|
and other kinds of works.
|
1227 |
|
|
|
1228 |
|
|
The licenses for most software and other practical works are designed
|
1229 |
|
|
to take away your freedom to share and change the works. By contrast,
|
1230 |
|
|
the GNU General Public License is intended to guarantee your freedom to
|
1231 |
|
|
share and change all versions of a program--to make sure it remains
|
1232 |
|
|
free software for all its users. We, the Free Software Foundation, use
|
1233 |
|
|
the GNU General Public License for most of our software; it applies
|
1234 |
|
|
also to any other work released this way by its authors. You can apply
|
1235 |
|
|
it to your programs, too.
|
1236 |
|
|
|
1237 |
|
|
When we speak of free software, we are referring to freedom, not
|
1238 |
|
|
price. Our General Public Licenses are designed to make sure that you
|
1239 |
|
|
have the freedom to distribute copies of free software (and charge for
|
1240 |
|
|
them if you wish), that you receive source code or can get it if you
|
1241 |
|
|
want it, that you can change the software or use pieces of it in new
|
1242 |
|
|
free programs, and that you know you can do these things.
|
1243 |
|
|
|
1244 |
|
|
To protect your rights, we need to prevent others from denying you
|
1245 |
|
|
these rights or asking you to surrender the rights. Therefore, you
|
1246 |
|
|
have certain responsibilities if you distribute copies of the software,
|
1247 |
|
|
or if you modify it: responsibilities to respect the freedom of others.
|
1248 |
|
|
|
1249 |
|
|
For example, if you distribute copies of such a program, whether
|
1250 |
|
|
gratis or for a fee, you must pass on to the recipients the same
|
1251 |
|
|
freedoms that you received. You must make sure that they, too, receive
|
1252 |
|
|
or can get the source code. And you must show them these terms so they
|
1253 |
|
|
know their rights.
|
1254 |
|
|
|
1255 |
|
|
Developers that use the GNU GPL protect your rights with two steps:
|
1256 |
|
|
(1) assert copyright on the software, and (2) offer you this License
|
1257 |
|
|
giving you legal permission to copy, distribute and/or modify it.
|
1258 |
|
|
|
1259 |
|
|
For the developers' and authors' protection, the GPL clearly explains
|
1260 |
|
|
that there is no warranty for this free software. For both users' and
|
1261 |
|
|
authors' sake, the GPL requires that modified versions be marked as
|
1262 |
|
|
changed, so that their problems will not be attributed erroneously to
|
1263 |
|
|
authors of previous versions.
|
1264 |
|
|
|
1265 |
|
|
Some devices are designed to deny users access to install or run
|
1266 |
|
|
modified versions of the software inside them, although the
|
1267 |
|
|
manufacturer can do so. This is fundamentally incompatible with the
|
1268 |
|
|
aim of protecting users' freedom to change the software. The
|
1269 |
|
|
systematic pattern of such abuse occurs in the area of products for
|
1270 |
|
|
individuals to use, which is precisely where it is most unacceptable.
|
1271 |
|
|
Therefore, we have designed this version of the GPL to prohibit the
|
1272 |
|
|
practice for those products. If such problems arise substantially in
|
1273 |
|
|
other domains, we stand ready to extend this provision to those domains
|
1274 |
|
|
in future versions of the GPL, as needed to protect the freedom of
|
1275 |
|
|
users.
|
1276 |
|
|
|
1277 |
|
|
Finally, every program is threatened constantly by software patents.
|
1278 |
|
|
States should not allow patents to restrict development and use of
|
1279 |
|
|
software on general-purpose computers, but in those that do, we wish to
|
1280 |
|
|
avoid the special danger that patents applied to a free program could
|
1281 |
|
|
make it effectively proprietary. To prevent this, the GPL assures that
|
1282 |
|
|
patents cannot be used to render the program non-free.
|
1283 |
|
|
|
1284 |
|
|
The precise terms and conditions for copying, distribution and
|
1285 |
|
|
modification follow.
|
1286 |
|
|
|
1287 |
|
|
TERMS AND CONDITIONS
|
1288 |
|
|
====================
|
1289 |
|
|
|
1290 |
|
|
0. Definitions.
|
1291 |
|
|
|
1292 |
|
|
"This License" refers to version 3 of the GNU General Public
|
1293 |
|
|
License.
|
1294 |
|
|
|
1295 |
|
|
"Copyright" also means copyright-like laws that apply to other
|
1296 |
|
|
kinds of works, such as semiconductor masks.
|
1297 |
|
|
|
1298 |
|
|
"The Program" refers to any copyrightable work licensed under this
|
1299 |
|
|
License. Each licensee is addressed as "you". "Licensees" and
|
1300 |
|
|
"recipients" may be individuals or organizations.
|
1301 |
|
|
|
1302 |
|
|
To "modify" a work means to copy from or adapt all or part of the
|
1303 |
|
|
work in a fashion requiring copyright permission, other than the
|
1304 |
|
|
making of an exact copy. The resulting work is called a "modified
|
1305 |
|
|
version" of the earlier work or a work "based on" the earlier work.
|
1306 |
|
|
|
1307 |
|
|
A "covered work" means either the unmodified Program or a work
|
1308 |
|
|
based on the Program.
|
1309 |
|
|
|
1310 |
|
|
To "propagate" a work means to do anything with it that, without
|
1311 |
|
|
permission, would make you directly or secondarily liable for
|
1312 |
|
|
infringement under applicable copyright law, except executing it
|
1313 |
|
|
on a computer or modifying a private copy. Propagation includes
|
1314 |
|
|
copying, distribution (with or without modification), making
|
1315 |
|
|
available to the public, and in some countries other activities as
|
1316 |
|
|
well.
|
1317 |
|
|
|
1318 |
|
|
To "convey" a work means any kind of propagation that enables other
|
1319 |
|
|
parties to make or receive copies. Mere interaction with a user
|
1320 |
|
|
through a computer network, with no transfer of a copy, is not
|
1321 |
|
|
conveying.
|
1322 |
|
|
|
1323 |
|
|
An interactive user interface displays "Appropriate Legal Notices"
|
1324 |
|
|
to the extent that it includes a convenient and prominently visible
|
1325 |
|
|
feature that (1) displays an appropriate copyright notice, and (2)
|
1326 |
|
|
tells the user that there is no warranty for the work (except to
|
1327 |
|
|
the extent that warranties are provided), that licensees may
|
1328 |
|
|
convey the work under this License, and how to view a copy of this
|
1329 |
|
|
License. If the interface presents a list of user commands or
|
1330 |
|
|
options, such as a menu, a prominent item in the list meets this
|
1331 |
|
|
criterion.
|
1332 |
|
|
|
1333 |
|
|
1. Source Code.
|
1334 |
|
|
|
1335 |
|
|
The "source code" for a work means the preferred form of the work
|
1336 |
|
|
for making modifications to it. "Object code" means any
|
1337 |
|
|
non-source form of a work.
|
1338 |
|
|
|
1339 |
|
|
A "Standard Interface" means an interface that either is an
|
1340 |
|
|
official standard defined by a recognized standards body, or, in
|
1341 |
|
|
the case of interfaces specified for a particular programming
|
1342 |
|
|
language, one that is widely used among developers working in that
|
1343 |
|
|
language.
|
1344 |
|
|
|
1345 |
|
|
The "System Libraries" of an executable work include anything,
|
1346 |
|
|
other than the work as a whole, that (a) is included in the normal
|
1347 |
|
|
form of packaging a Major Component, but which is not part of that
|
1348 |
|
|
Major Component, and (b) serves only to enable use of the work
|
1349 |
|
|
with that Major Component, or to implement a Standard Interface
|
1350 |
|
|
for which an implementation is available to the public in source
|
1351 |
|
|
code form. A "Major Component", in this context, means a major
|
1352 |
|
|
essential component (kernel, window system, and so on) of the
|
1353 |
|
|
specific operating system (if any) on which the executable work
|
1354 |
|
|
runs, or a compiler used to produce the work, or an object code
|
1355 |
|
|
interpreter used to run it.
|
1356 |
|
|
|
1357 |
|
|
The "Corresponding Source" for a work in object code form means all
|
1358 |
|
|
the source code needed to generate, install, and (for an executable
|
1359 |
|
|
work) run the object code and to modify the work, including
|
1360 |
|
|
scripts to control those activities. However, it does not include
|
1361 |
|
|
the work's System Libraries, or general-purpose tools or generally
|
1362 |
|
|
available free programs which are used unmodified in performing
|
1363 |
|
|
those activities but which are not part of the work. For example,
|
1364 |
|
|
Corresponding Source includes interface definition files
|
1365 |
|
|
associated with source files for the work, and the source code for
|
1366 |
|
|
shared libraries and dynamically linked subprograms that the work
|
1367 |
|
|
is specifically designed to require, such as by intimate data
|
1368 |
|
|
communication or control flow between those subprograms and other
|
1369 |
|
|
parts of the work.
|
1370 |
|
|
|
1371 |
|
|
The Corresponding Source need not include anything that users can
|
1372 |
|
|
regenerate automatically from other parts of the Corresponding
|
1373 |
|
|
Source.
|
1374 |
|
|
|
1375 |
|
|
The Corresponding Source for a work in source code form is that
|
1376 |
|
|
same work.
|
1377 |
|
|
|
1378 |
|
|
2. Basic Permissions.
|
1379 |
|
|
|
1380 |
|
|
All rights granted under this License are granted for the term of
|
1381 |
|
|
copyright on the Program, and are irrevocable provided the stated
|
1382 |
|
|
conditions are met. This License explicitly affirms your unlimited
|
1383 |
|
|
permission to run the unmodified Program. The output from running
|
1384 |
|
|
a covered work is covered by this License only if the output,
|
1385 |
|
|
given its content, constitutes a covered work. This License
|
1386 |
|
|
acknowledges your rights of fair use or other equivalent, as
|
1387 |
|
|
provided by copyright law.
|
1388 |
|
|
|
1389 |
|
|
You may make, run and propagate covered works that you do not
|
1390 |
|
|
convey, without conditions so long as your license otherwise
|
1391 |
|
|
remains in force. You may convey covered works to others for the
|
1392 |
|
|
sole purpose of having them make modifications exclusively for
|
1393 |
|
|
you, or provide you with facilities for running those works,
|
1394 |
|
|
provided that you comply with the terms of this License in
|
1395 |
|
|
conveying all material for which you do not control copyright.
|
1396 |
|
|
Those thus making or running the covered works for you must do so
|
1397 |
|
|
exclusively on your behalf, under your direction and control, on
|
1398 |
|
|
terms that prohibit them from making any copies of your
|
1399 |
|
|
copyrighted material outside their relationship with you.
|
1400 |
|
|
|
1401 |
|
|
Conveying under any other circumstances is permitted solely under
|
1402 |
|
|
the conditions stated below. Sublicensing is not allowed; section
|
1403 |
|
|
10 makes it unnecessary.
|
1404 |
|
|
|
1405 |
|
|
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
1406 |
|
|
|
1407 |
|
|
No covered work shall be deemed part of an effective technological
|
1408 |
|
|
measure under any applicable law fulfilling obligations under
|
1409 |
|
|
article 11 of the WIPO copyright treaty adopted on 20 December
|
1410 |
|
|
1996, or similar laws prohibiting or restricting circumvention of
|
1411 |
|
|
such measures.
|
1412 |
|
|
|
1413 |
|
|
When you convey a covered work, you waive any legal power to forbid
|
1414 |
|
|
circumvention of technological measures to the extent such
|
1415 |
|
|
circumvention is effected by exercising rights under this License
|
1416 |
|
|
with respect to the covered work, and you disclaim any intention
|
1417 |
|
|
to limit operation or modification of the work as a means of
|
1418 |
|
|
enforcing, against the work's users, your or third parties' legal
|
1419 |
|
|
rights to forbid circumvention of technological measures.
|
1420 |
|
|
|
1421 |
|
|
4. Conveying Verbatim Copies.
|
1422 |
|
|
|
1423 |
|
|
You may convey verbatim copies of the Program's source code as you
|
1424 |
|
|
receive it, in any medium, provided that you conspicuously and
|
1425 |
|
|
appropriately publish on each copy an appropriate copyright notice;
|
1426 |
|
|
keep intact all notices stating that this License and any
|
1427 |
|
|
non-permissive terms added in accord with section 7 apply to the
|
1428 |
|
|
code; keep intact all notices of the absence of any warranty; and
|
1429 |
|
|
give all recipients a copy of this License along with the Program.
|
1430 |
|
|
|
1431 |
|
|
You may charge any price or no price for each copy that you convey,
|
1432 |
|
|
and you may offer support or warranty protection for a fee.
|
1433 |
|
|
|
1434 |
|
|
5. Conveying Modified Source Versions.
|
1435 |
|
|
|
1436 |
|
|
You may convey a work based on the Program, or the modifications to
|
1437 |
|
|
produce it from the Program, in the form of source code under the
|
1438 |
|
|
terms of section 4, provided that you also meet all of these
|
1439 |
|
|
conditions:
|
1440 |
|
|
|
1441 |
|
|
a. The work must carry prominent notices stating that you
|
1442 |
|
|
modified it, and giving a relevant date.
|
1443 |
|
|
|
1444 |
|
|
b. The work must carry prominent notices stating that it is
|
1445 |
|
|
released under this License and any conditions added under
|
1446 |
|
|
section 7. This requirement modifies the requirement in
|
1447 |
|
|
section 4 to "keep intact all notices".
|
1448 |
|
|
|
1449 |
|
|
c. You must license the entire work, as a whole, under this
|
1450 |
|
|
License to anyone who comes into possession of a copy. This
|
1451 |
|
|
License will therefore apply, along with any applicable
|
1452 |
|
|
section 7 additional terms, to the whole of the work, and all
|
1453 |
|
|
its parts, regardless of how they are packaged. This License
|
1454 |
|
|
gives no permission to license the work in any other way, but
|
1455 |
|
|
it does not invalidate such permission if you have separately
|
1456 |
|
|
received it.
|
1457 |
|
|
|
1458 |
|
|
d. If the work has interactive user interfaces, each must display
|
1459 |
|
|
Appropriate Legal Notices; however, if the Program has
|
1460 |
|
|
interactive interfaces that do not display Appropriate Legal
|
1461 |
|
|
Notices, your work need not make them do so.
|
1462 |
|
|
|
1463 |
|
|
A compilation of a covered work with other separate and independent
|
1464 |
|
|
works, which are not by their nature extensions of the covered
|
1465 |
|
|
work, and which are not combined with it such as to form a larger
|
1466 |
|
|
program, in or on a volume of a storage or distribution medium, is
|
1467 |
|
|
called an "aggregate" if the compilation and its resulting
|
1468 |
|
|
copyright are not used to limit the access or legal rights of the
|
1469 |
|
|
compilation's users beyond what the individual works permit.
|
1470 |
|
|
Inclusion of a covered work in an aggregate does not cause this
|
1471 |
|
|
License to apply to the other parts of the aggregate.
|
1472 |
|
|
|
1473 |
|
|
6. Conveying Non-Source Forms.
|
1474 |
|
|
|
1475 |
|
|
You may convey a covered work in object code form under the terms
|
1476 |
|
|
of sections 4 and 5, provided that you also convey the
|
1477 |
|
|
machine-readable Corresponding Source under the terms of this
|
1478 |
|
|
License, in one of these ways:
|
1479 |
|
|
|
1480 |
|
|
a. Convey the object code in, or embodied in, a physical product
|
1481 |
|
|
(including a physical distribution medium), accompanied by the
|
1482 |
|
|
Corresponding Source fixed on a durable physical medium
|
1483 |
|
|
customarily used for software interchange.
|
1484 |
|
|
|
1485 |
|
|
b. Convey the object code in, or embodied in, a physical product
|
1486 |
|
|
(including a physical distribution medium), accompanied by a
|
1487 |
|
|
written offer, valid for at least three years and valid for
|
1488 |
|
|
as long as you offer spare parts or customer support for that
|
1489 |
|
|
product model, to give anyone who possesses the object code
|
1490 |
|
|
either (1) a copy of the Corresponding Source for all the
|
1491 |
|
|
software in the product that is covered by this License, on a
|
1492 |
|
|
durable physical medium customarily used for software
|
1493 |
|
|
interchange, for a price no more than your reasonable cost of
|
1494 |
|
|
physically performing this conveying of source, or (2) access
|
1495 |
|
|
to copy the Corresponding Source from a network server at no
|
1496 |
|
|
charge.
|
1497 |
|
|
|
1498 |
|
|
c. Convey individual copies of the object code with a copy of
|
1499 |
|
|
the written offer to provide the Corresponding Source. This
|
1500 |
|
|
alternative is allowed only occasionally and noncommercially,
|
1501 |
|
|
and only if you received the object code with such an offer,
|
1502 |
|
|
in accord with subsection 6b.
|
1503 |
|
|
|
1504 |
|
|
d. Convey the object code by offering access from a designated
|
1505 |
|
|
place (gratis or for a charge), and offer equivalent access
|
1506 |
|
|
to the Corresponding Source in the same way through the same
|
1507 |
|
|
place at no further charge. You need not require recipients
|
1508 |
|
|
to copy the Corresponding Source along with the object code.
|
1509 |
|
|
If the place to copy the object code is a network server, the
|
1510 |
|
|
Corresponding Source may be on a different server (operated
|
1511 |
|
|
by you or a third party) that supports equivalent copying
|
1512 |
|
|
facilities, provided you maintain clear directions next to
|
1513 |
|
|
the object code saying where to find the Corresponding Source.
|
1514 |
|
|
Regardless of what server hosts the Corresponding Source, you
|
1515 |
|
|
remain obligated to ensure that it is available for as long
|
1516 |
|
|
as needed to satisfy these requirements.
|
1517 |
|
|
|
1518 |
|
|
e. Convey the object code using peer-to-peer transmission,
|
1519 |
|
|
provided you inform other peers where the object code and
|
1520 |
|
|
Corresponding Source of the work are being offered to the
|
1521 |
|
|
general public at no charge under subsection 6d.
|
1522 |
|
|
|
1523 |
|
|
|
1524 |
|
|
A separable portion of the object code, whose source code is
|
1525 |
|
|
excluded from the Corresponding Source as a System Library, need
|
1526 |
|
|
not be included in conveying the object code work.
|
1527 |
|
|
|
1528 |
|
|
A "User Product" is either (1) a "consumer product", which means
|
1529 |
|
|
any tangible personal property which is normally used for personal,
|
1530 |
|
|
family, or household purposes, or (2) anything designed or sold for
|
1531 |
|
|
incorporation into a dwelling. In determining whether a product
|
1532 |
|
|
is a consumer product, doubtful cases shall be resolved in favor of
|
1533 |
|
|
coverage. For a particular product received by a particular user,
|
1534 |
|
|
"normally used" refers to a typical or common use of that class of
|
1535 |
|
|
product, regardless of the status of the particular user or of the
|
1536 |
|
|
way in which the particular user actually uses, or expects or is
|
1537 |
|
|
expected to use, the product. A product is a consumer product
|
1538 |
|
|
regardless of whether the product has substantial commercial,
|
1539 |
|
|
industrial or non-consumer uses, unless such uses represent the
|
1540 |
|
|
only significant mode of use of the product.
|
1541 |
|
|
|
1542 |
|
|
"Installation Information" for a User Product means any methods,
|
1543 |
|
|
procedures, authorization keys, or other information required to
|
1544 |
|
|
install and execute modified versions of a covered work in that
|
1545 |
|
|
User Product from a modified version of its Corresponding Source.
|
1546 |
|
|
The information must suffice to ensure that the continued
|
1547 |
|
|
functioning of the modified object code is in no case prevented or
|
1548 |
|
|
interfered with solely because modification has been made.
|
1549 |
|
|
|
1550 |
|
|
If you convey an object code work under this section in, or with,
|
1551 |
|
|
or specifically for use in, a User Product, and the conveying
|
1552 |
|
|
occurs as part of a transaction in which the right of possession
|
1553 |
|
|
and use of the User Product is transferred to the recipient in
|
1554 |
|
|
perpetuity or for a fixed term (regardless of how the transaction
|
1555 |
|
|
is characterized), the Corresponding Source conveyed under this
|
1556 |
|
|
section must be accompanied by the Installation Information. But
|
1557 |
|
|
this requirement does not apply if neither you nor any third party
|
1558 |
|
|
retains the ability to install modified object code on the User
|
1559 |
|
|
Product (for example, the work has been installed in ROM).
|
1560 |
|
|
|
1561 |
|
|
The requirement to provide Installation Information does not
|
1562 |
|
|
include a requirement to continue to provide support service,
|
1563 |
|
|
warranty, or updates for a work that has been modified or
|
1564 |
|
|
installed by the recipient, or for the User Product in which it
|
1565 |
|
|
has been modified or installed. Access to a network may be denied
|
1566 |
|
|
when the modification itself materially and adversely affects the
|
1567 |
|
|
operation of the network or violates the rules and protocols for
|
1568 |
|
|
communication across the network.
|
1569 |
|
|
|
1570 |
|
|
Corresponding Source conveyed, and Installation Information
|
1571 |
|
|
provided, in accord with this section must be in a format that is
|
1572 |
|
|
publicly documented (and with an implementation available to the
|
1573 |
|
|
public in source code form), and must require no special password
|
1574 |
|
|
or key for unpacking, reading or copying.
|
1575 |
|
|
|
1576 |
|
|
7. Additional Terms.
|
1577 |
|
|
|
1578 |
|
|
"Additional permissions" are terms that supplement the terms of
|
1579 |
|
|
this License by making exceptions from one or more of its
|
1580 |
|
|
conditions. Additional permissions that are applicable to the
|
1581 |
|
|
entire Program shall be treated as though they were included in
|
1582 |
|
|
this License, to the extent that they are valid under applicable
|
1583 |
|
|
law. If additional permissions apply only to part of the Program,
|
1584 |
|
|
that part may be used separately under those permissions, but the
|
1585 |
|
|
entire Program remains governed by this License without regard to
|
1586 |
|
|
the additional permissions.
|
1587 |
|
|
|
1588 |
|
|
When you convey a copy of a covered work, you may at your option
|
1589 |
|
|
remove any additional permissions from that copy, or from any part
|
1590 |
|
|
of it. (Additional permissions may be written to require their own
|
1591 |
|
|
removal in certain cases when you modify the work.) You may place
|
1592 |
|
|
additional permissions on material, added by you to a covered work,
|
1593 |
|
|
for which you have or can give appropriate copyright permission.
|
1594 |
|
|
|
1595 |
|
|
Notwithstanding any other provision of this License, for material
|
1596 |
|
|
you add to a covered work, you may (if authorized by the copyright
|
1597 |
|
|
holders of that material) supplement the terms of this License
|
1598 |
|
|
with terms:
|
1599 |
|
|
|
1600 |
|
|
a. Disclaiming warranty or limiting liability differently from
|
1601 |
|
|
the terms of sections 15 and 16 of this License; or
|
1602 |
|
|
|
1603 |
|
|
b. Requiring preservation of specified reasonable legal notices
|
1604 |
|
|
or author attributions in that material or in the Appropriate
|
1605 |
|
|
Legal Notices displayed by works containing it; or
|
1606 |
|
|
|
1607 |
|
|
c. Prohibiting misrepresentation of the origin of that material,
|
1608 |
|
|
or requiring that modified versions of such material be
|
1609 |
|
|
marked in reasonable ways as different from the original
|
1610 |
|
|
version; or
|
1611 |
|
|
|
1612 |
|
|
d. Limiting the use for publicity purposes of names of licensors
|
1613 |
|
|
or authors of the material; or
|
1614 |
|
|
|
1615 |
|
|
e. Declining to grant rights under trademark law for use of some
|
1616 |
|
|
trade names, trademarks, or service marks; or
|
1617 |
|
|
|
1618 |
|
|
f. Requiring indemnification of licensors and authors of that
|
1619 |
|
|
material by anyone who conveys the material (or modified
|
1620 |
|
|
versions of it) with contractual assumptions of liability to
|
1621 |
|
|
the recipient, for any liability that these contractual
|
1622 |
|
|
assumptions directly impose on those licensors and authors.
|
1623 |
|
|
|
1624 |
|
|
All other non-permissive additional terms are considered "further
|
1625 |
|
|
restrictions" within the meaning of section 10. If the Program as
|
1626 |
|
|
you received it, or any part of it, contains a notice stating that
|
1627 |
|
|
it is governed by this License along with a term that is a further
|
1628 |
|
|
restriction, you may remove that term. If a license document
|
1629 |
|
|
contains a further restriction but permits relicensing or
|
1630 |
|
|
conveying under this License, you may add to a covered work
|
1631 |
|
|
material governed by the terms of that license document, provided
|
1632 |
|
|
that the further restriction does not survive such relicensing or
|
1633 |
|
|
conveying.
|
1634 |
|
|
|
1635 |
|
|
If you add terms to a covered work in accord with this section, you
|
1636 |
|
|
must place, in the relevant source files, a statement of the
|
1637 |
|
|
additional terms that apply to those files, or a notice indicating
|
1638 |
|
|
where to find the applicable terms.
|
1639 |
|
|
|
1640 |
|
|
Additional terms, permissive or non-permissive, may be stated in
|
1641 |
|
|
the form of a separately written license, or stated as exceptions;
|
1642 |
|
|
the above requirements apply either way.
|
1643 |
|
|
|
1644 |
|
|
8. Termination.
|
1645 |
|
|
|
1646 |
|
|
You may not propagate or modify a covered work except as expressly
|
1647 |
|
|
provided under this License. Any attempt otherwise to propagate or
|
1648 |
|
|
modify it is void, and will automatically terminate your rights
|
1649 |
|
|
under this License (including any patent licenses granted under
|
1650 |
|
|
the third paragraph of section 11).
|
1651 |
|
|
|
1652 |
|
|
However, if you cease all violation of this License, then your
|
1653 |
|
|
license from a particular copyright holder is reinstated (a)
|
1654 |
|
|
provisionally, unless and until the copyright holder explicitly
|
1655 |
|
|
and finally terminates your license, and (b) permanently, if the
|
1656 |
|
|
copyright holder fails to notify you of the violation by some
|
1657 |
|
|
reasonable means prior to 60 days after the cessation.
|
1658 |
|
|
|
1659 |
|
|
Moreover, your license from a particular copyright holder is
|
1660 |
|
|
reinstated permanently if the copyright holder notifies you of the
|
1661 |
|
|
violation by some reasonable means, this is the first time you have
|
1662 |
|
|
received notice of violation of this License (for any work) from
|
1663 |
|
|
that copyright holder, and you cure the violation prior to 30 days
|
1664 |
|
|
after your receipt of the notice.
|
1665 |
|
|
|
1666 |
|
|
Termination of your rights under this section does not terminate
|
1667 |
|
|
the licenses of parties who have received copies or rights from
|
1668 |
|
|
you under this License. If your rights have been terminated and
|
1669 |
|
|
not permanently reinstated, you do not qualify to receive new
|
1670 |
|
|
licenses for the same material under section 10.
|
1671 |
|
|
|
1672 |
|
|
9. Acceptance Not Required for Having Copies.
|
1673 |
|
|
|
1674 |
|
|
You are not required to accept this License in order to receive or
|
1675 |
|
|
run a copy of the Program. Ancillary propagation of a covered work
|
1676 |
|
|
occurring solely as a consequence of using peer-to-peer
|
1677 |
|
|
transmission to receive a copy likewise does not require
|
1678 |
|
|
acceptance. However, nothing other than this License grants you
|
1679 |
|
|
permission to propagate or modify any covered work. These actions
|
1680 |
|
|
infringe copyright if you do not accept this License. Therefore,
|
1681 |
|
|
by modifying or propagating a covered work, you indicate your
|
1682 |
|
|
acceptance of this License to do so.
|
1683 |
|
|
|
1684 |
|
|
10. Automatic Licensing of Downstream Recipients.
|
1685 |
|
|
|
1686 |
|
|
Each time you convey a covered work, the recipient automatically
|
1687 |
|
|
receives a license from the original licensors, to run, modify and
|
1688 |
|
|
propagate that work, subject to this License. You are not
|
1689 |
|
|
responsible for enforcing compliance by third parties with this
|
1690 |
|
|
License.
|
1691 |
|
|
|
1692 |
|
|
An "entity transaction" is a transaction transferring control of an
|
1693 |
|
|
organization, or substantially all assets of one, or subdividing an
|
1694 |
|
|
organization, or merging organizations. If propagation of a
|
1695 |
|
|
covered work results from an entity transaction, each party to that
|
1696 |
|
|
transaction who receives a copy of the work also receives whatever
|
1697 |
|
|
licenses to the work the party's predecessor in interest had or
|
1698 |
|
|
could give under the previous paragraph, plus a right to
|
1699 |
|
|
possession of the Corresponding Source of the work from the
|
1700 |
|
|
predecessor in interest, if the predecessor has it or can get it
|
1701 |
|
|
with reasonable efforts.
|
1702 |
|
|
|
1703 |
|
|
You may not impose any further restrictions on the exercise of the
|
1704 |
|
|
rights granted or affirmed under this License. For example, you
|
1705 |
|
|
may not impose a license fee, royalty, or other charge for
|
1706 |
|
|
exercise of rights granted under this License, and you may not
|
1707 |
|
|
initiate litigation (including a cross-claim or counterclaim in a
|
1708 |
|
|
lawsuit) alleging that any patent claim is infringed by making,
|
1709 |
|
|
using, selling, offering for sale, or importing the Program or any
|
1710 |
|
|
portion of it.
|
1711 |
|
|
|
1712 |
|
|
11. Patents.
|
1713 |
|
|
|
1714 |
|
|
A "contributor" is a copyright holder who authorizes use under this
|
1715 |
|
|
License of the Program or a work on which the Program is based.
|
1716 |
|
|
The work thus licensed is called the contributor's "contributor
|
1717 |
|
|
version".
|
1718 |
|
|
|
1719 |
|
|
A contributor's "essential patent claims" are all patent claims
|
1720 |
|
|
owned or controlled by the contributor, whether already acquired or
|
1721 |
|
|
hereafter acquired, that would be infringed by some manner,
|
1722 |
|
|
permitted by this License, of making, using, or selling its
|
1723 |
|
|
contributor version, but do not include claims that would be
|
1724 |
|
|
infringed only as a consequence of further modification of the
|
1725 |
|
|
contributor version. For purposes of this definition, "control"
|
1726 |
|
|
includes the right to grant patent sublicenses in a manner
|
1727 |
|
|
consistent with the requirements of this License.
|
1728 |
|
|
|
1729 |
|
|
Each contributor grants you a non-exclusive, worldwide,
|
1730 |
|
|
royalty-free patent license under the contributor's essential
|
1731 |
|
|
patent claims, to make, use, sell, offer for sale, import and
|
1732 |
|
|
otherwise run, modify and propagate the contents of its
|
1733 |
|
|
contributor version.
|
1734 |
|
|
|
1735 |
|
|
In the following three paragraphs, a "patent license" is any
|
1736 |
|
|
express agreement or commitment, however denominated, not to
|
1737 |
|
|
enforce a patent (such as an express permission to practice a
|
1738 |
|
|
patent or covenant not to sue for patent infringement). To
|
1739 |
|
|
"grant" such a patent license to a party means to make such an
|
1740 |
|
|
agreement or commitment not to enforce a patent against the party.
|
1741 |
|
|
|
1742 |
|
|
If you convey a covered work, knowingly relying on a patent
|
1743 |
|
|
license, and the Corresponding Source of the work is not available
|
1744 |
|
|
for anyone to copy, free of charge and under the terms of this
|
1745 |
|
|
License, through a publicly available network server or other
|
1746 |
|
|
readily accessible means, then you must either (1) cause the
|
1747 |
|
|
Corresponding Source to be so available, or (2) arrange to deprive
|
1748 |
|
|
yourself of the benefit of the patent license for this particular
|
1749 |
|
|
work, or (3) arrange, in a manner consistent with the requirements
|
1750 |
|
|
of this License, to extend the patent license to downstream
|
1751 |
|
|
recipients. "Knowingly relying" means you have actual knowledge
|
1752 |
|
|
that, but for the patent license, your conveying the covered work
|
1753 |
|
|
in a country, or your recipient's use of the covered work in a
|
1754 |
|
|
country, would infringe one or more identifiable patents in that
|
1755 |
|
|
country that you have reason to believe are valid.
|
1756 |
|
|
|
1757 |
|
|
If, pursuant to or in connection with a single transaction or
|
1758 |
|
|
arrangement, you convey, or propagate by procuring conveyance of, a
|
1759 |
|
|
covered work, and grant a patent license to some of the parties
|
1760 |
|
|
receiving the covered work authorizing them to use, propagate,
|
1761 |
|
|
modify or convey a specific copy of the covered work, then the
|
1762 |
|
|
patent license you grant is automatically extended to all
|
1763 |
|
|
recipients of the covered work and works based on it.
|
1764 |
|
|
|
1765 |
|
|
A patent license is "discriminatory" if it does not include within
|
1766 |
|
|
the scope of its coverage, prohibits the exercise of, or is
|
1767 |
|
|
conditioned on the non-exercise of one or more of the rights that
|
1768 |
|
|
are specifically granted under this License. You may not convey a
|
1769 |
|
|
covered work if you are a party to an arrangement with a third
|
1770 |
|
|
party that is in the business of distributing software, under
|
1771 |
|
|
which you make payment to the third party based on the extent of
|
1772 |
|
|
your activity of conveying the work, and under which the third
|
1773 |
|
|
party grants, to any of the parties who would receive the covered
|
1774 |
|
|
work from you, a discriminatory patent license (a) in connection
|
1775 |
|
|
with copies of the covered work conveyed by you (or copies made
|
1776 |
|
|
from those copies), or (b) primarily for and in connection with
|
1777 |
|
|
specific products or compilations that contain the covered work,
|
1778 |
|
|
unless you entered into that arrangement, or that patent license
|
1779 |
|
|
was granted, prior to 28 March 2007.
|
1780 |
|
|
|
1781 |
|
|
Nothing in this License shall be construed as excluding or limiting
|
1782 |
|
|
any implied license or other defenses to infringement that may
|
1783 |
|
|
otherwise be available to you under applicable patent law.
|
1784 |
|
|
|
1785 |
|
|
12. No Surrender of Others' Freedom.
|
1786 |
|
|
|
1787 |
|
|
If conditions are imposed on you (whether by court order,
|
1788 |
|
|
agreement or otherwise) that contradict the conditions of this
|
1789 |
|
|
License, they do not excuse you from the conditions of this
|
1790 |
|
|
License. If you cannot convey a covered work so as to satisfy
|
1791 |
|
|
simultaneously your obligations under this License and any other
|
1792 |
|
|
pertinent obligations, then as a consequence you may not convey it
|
1793 |
|
|
at all. For example, if you agree to terms that obligate you to
|
1794 |
|
|
collect a royalty for further conveying from those to whom you
|
1795 |
|
|
convey the Program, the only way you could satisfy both those
|
1796 |
|
|
terms and this License would be to refrain entirely from conveying
|
1797 |
|
|
the Program.
|
1798 |
|
|
|
1799 |
|
|
13. Use with the GNU Affero General Public License.
|
1800 |
|
|
|
1801 |
|
|
Notwithstanding any other provision of this License, you have
|
1802 |
|
|
permission to link or combine any covered work with a work licensed
|
1803 |
|
|
under version 3 of the GNU Affero General Public License into a
|
1804 |
|
|
single combined work, and to convey the resulting work. The terms
|
1805 |
|
|
of this License will continue to apply to the part which is the
|
1806 |
|
|
covered work, but the special requirements of the GNU Affero
|
1807 |
|
|
General Public License, section 13, concerning interaction through
|
1808 |
|
|
a network will apply to the combination as such.
|
1809 |
|
|
|
1810 |
|
|
14. Revised Versions of this License.
|
1811 |
|
|
|
1812 |
|
|
The Free Software Foundation may publish revised and/or new
|
1813 |
|
|
versions of the GNU General Public License from time to time.
|
1814 |
|
|
Such new versions will be similar in spirit to the present
|
1815 |
|
|
version, but may differ in detail to address new problems or
|
1816 |
|
|
concerns.
|
1817 |
|
|
|
1818 |
|
|
Each version is given a distinguishing version number. If the
|
1819 |
|
|
Program specifies that a certain numbered version of the GNU
|
1820 |
|
|
General Public License "or any later version" applies to it, you
|
1821 |
|
|
have the option of following the terms and conditions either of
|
1822 |
|
|
that numbered version or of any later version published by the
|
1823 |
|
|
Free Software Foundation. If the Program does not specify a
|
1824 |
|
|
version number of the GNU General Public License, you may choose
|
1825 |
|
|
any version ever published by the Free Software Foundation.
|
1826 |
|
|
|
1827 |
|
|
If the Program specifies that a proxy can decide which future
|
1828 |
|
|
versions of the GNU General Public License can be used, that
|
1829 |
|
|
proxy's public statement of acceptance of a version permanently
|
1830 |
|
|
authorizes you to choose that version for the Program.
|
1831 |
|
|
|
1832 |
|
|
Later license versions may give you additional or different
|
1833 |
|
|
permissions. However, no additional obligations are imposed on any
|
1834 |
|
|
author or copyright holder as a result of your choosing to follow a
|
1835 |
|
|
later version.
|
1836 |
|
|
|
1837 |
|
|
15. Disclaimer of Warranty.
|
1838 |
|
|
|
1839 |
|
|
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
1840 |
|
|
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE
|
1841 |
|
|
COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS"
|
1842 |
|
|
WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
|
1843 |
|
|
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
1844 |
|
|
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE
|
1845 |
|
|
RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.
|
1846 |
|
|
SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
|
1847 |
|
|
NECESSARY SERVICING, REPAIR OR CORRECTION.
|
1848 |
|
|
|
1849 |
|
|
16. Limitation of Liability.
|
1850 |
|
|
|
1851 |
|
|
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
1852 |
|
|
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES
|
1853 |
|
|
AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU
|
1854 |
|
|
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
1855 |
|
|
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE
|
1856 |
|
|
THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA
|
1857 |
|
|
BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
1858 |
|
|
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
1859 |
|
|
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF
|
1860 |
|
|
THE POSSIBILITY OF SUCH DAMAGES.
|
1861 |
|
|
|
1862 |
|
|
17. Interpretation of Sections 15 and 16.
|
1863 |
|
|
|
1864 |
|
|
If the disclaimer of warranty and limitation of liability provided
|
1865 |
|
|
above cannot be given local legal effect according to their terms,
|
1866 |
|
|
reviewing courts shall apply local law that most closely
|
1867 |
|
|
approximates an absolute waiver of all civil liability in
|
1868 |
|
|
connection with the Program, unless a warranty or assumption of
|
1869 |
|
|
liability accompanies a copy of the Program in return for a fee.
|
1870 |
|
|
|
1871 |
|
|
|
1872 |
|
|
END OF TERMS AND CONDITIONS
|
1873 |
|
|
===========================
|
1874 |
|
|
|
1875 |
|
|
How to Apply These Terms to Your New Programs
|
1876 |
|
|
=============================================
|
1877 |
|
|
|
1878 |
|
|
If you develop a new program, and you want it to be of the greatest
|
1879 |
|
|
possible use to the public, the best way to achieve this is to make it
|
1880 |
|
|
free software which everyone can redistribute and change under these
|
1881 |
|
|
terms.
|
1882 |
|
|
|
1883 |
|
|
To do so, attach the following notices to the program. It is safest
|
1884 |
|
|
to attach them to the start of each source file to most effectively
|
1885 |
|
|
state the exclusion of warranty; and each file should have at least the
|
1886 |
|
|
"copyright" line and a pointer to where the full notice is found.
|
1887 |
|
|
|
1888 |
|
|
ONE LINE TO GIVE THE PROGRAM'S NAME AND A BRIEF IDEA OF WHAT IT DOES.
|
1889 |
|
|
Copyright (C) YEAR NAME OF AUTHOR
|
1890 |
|
|
|
1891 |
|
|
This program is free software: you can redistribute it and/or modify
|
1892 |
|
|
it under the terms of the GNU General Public License as published by
|
1893 |
|
|
the Free Software Foundation, either version 3 of the License, or (at
|
1894 |
|
|
your option) any later version.
|
1895 |
|
|
|
1896 |
|
|
This program is distributed in the hope that it will be useful, but
|
1897 |
|
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
1898 |
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
1899 |
|
|
General Public License for more details.
|
1900 |
|
|
|
1901 |
|
|
You should have received a copy of the GNU General Public License
|
1902 |
|
|
along with this program. If not, see `http://www.gnu.org/licenses/'.
|
1903 |
|
|
|
1904 |
|
|
Also add information on how to contact you by electronic and paper
|
1905 |
|
|
mail.
|
1906 |
|
|
|
1907 |
|
|
If the program does terminal interaction, make it output a short
|
1908 |
|
|
notice like this when it starts in an interactive mode:
|
1909 |
|
|
|
1910 |
|
|
PROGRAM Copyright (C) YEAR NAME OF AUTHOR
|
1911 |
|
|
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
1912 |
|
|
This is free software, and you are welcome to redistribute it
|
1913 |
|
|
under certain conditions; type `show c' for details.
|
1914 |
|
|
|
1915 |
|
|
The hypothetical commands `show w' and `show c' should show the
|
1916 |
|
|
appropriate parts of the General Public License. Of course, your
|
1917 |
|
|
program's commands might be different; for a GUI interface, you would
|
1918 |
|
|
use an "about box".
|
1919 |
|
|
|
1920 |
|
|
You should also get your employer (if you work as a programmer) or
|
1921 |
|
|
school, if any, to sign a "copyright disclaimer" for the program, if
|
1922 |
|
|
necessary. For more information on this, and how to apply and follow
|
1923 |
|
|
the GNU GPL, see `http://www.gnu.org/licenses/'.
|
1924 |
|
|
|
1925 |
|
|
The GNU General Public License does not permit incorporating your
|
1926 |
|
|
program into proprietary programs. If your program is a subroutine
|
1927 |
|
|
library, you may consider it more useful to permit linking proprietary
|
1928 |
|
|
applications with the library. If this is what you want to do, use the
|
1929 |
|
|
GNU Lesser General Public License instead of this License. But first,
|
1930 |
|
|
please read `http://www.gnu.org/philosophy/why-not-lgpl.html'.
|
1931 |
|
|
|
1932 |
|
|
|
1933 |
|
|
File: gdb.info, Node: GNU Free Documentation License, Next: Index, Prev: Copying, Up: Top
|
1934 |
|
|
|
1935 |
|
|
Appendix J GNU Free Documentation License
|
1936 |
|
|
*****************************************
|
1937 |
|
|
|
1938 |
|
|
Version 1.3, 3 November 2008
|
1939 |
|
|
|
1940 |
|
|
Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
|
1941 |
|
|
`http://fsf.org/'
|
1942 |
|
|
|
1943 |
|
|
Everyone is permitted to copy and distribute verbatim copies
|
1944 |
|
|
of this license document, but changing it is not allowed.
|
1945 |
|
|
|
1946 |
|
|
0. PREAMBLE
|
1947 |
|
|
|
1948 |
|
|
The purpose of this License is to make a manual, textbook, or other
|
1949 |
|
|
functional and useful document "free" in the sense of freedom: to
|
1950 |
|
|
assure everyone the effective freedom to copy and redistribute it,
|
1951 |
|
|
with or without modifying it, either commercially or
|
1952 |
|
|
noncommercially. Secondarily, this License preserves for the
|
1953 |
|
|
author and publisher a way to get credit for their work, while not
|
1954 |
|
|
being considered responsible for modifications made by others.
|
1955 |
|
|
|
1956 |
|
|
This License is a kind of "copyleft", which means that derivative
|
1957 |
|
|
works of the document must themselves be free in the same sense.
|
1958 |
|
|
It complements the GNU General Public License, which is a copyleft
|
1959 |
|
|
license designed for free software.
|
1960 |
|
|
|
1961 |
|
|
We have designed this License in order to use it for manuals for
|
1962 |
|
|
free software, because free software needs free documentation: a
|
1963 |
|
|
free program should come with manuals providing the same freedoms
|
1964 |
|
|
that the software does. But this License is not limited to
|
1965 |
|
|
software manuals; it can be used for any textual work, regardless
|
1966 |
|
|
of subject matter or whether it is published as a printed book.
|
1967 |
|
|
We recommend this License principally for works whose purpose is
|
1968 |
|
|
instruction or reference.
|
1969 |
|
|
|
1970 |
|
|
1. APPLICABILITY AND DEFINITIONS
|
1971 |
|
|
|
1972 |
|
|
This License applies to any manual or other work, in any medium,
|
1973 |
|
|
that contains a notice placed by the copyright holder saying it
|
1974 |
|
|
can be distributed under the terms of this License. Such a notice
|
1975 |
|
|
grants a world-wide, royalty-free license, unlimited in duration,
|
1976 |
|
|
to use that work under the conditions stated herein. The
|
1977 |
|
|
"Document", below, refers to any such manual or work. Any member
|
1978 |
|
|
of the public is a licensee, and is addressed as "you". You
|
1979 |
|
|
accept the license if you copy, modify or distribute the work in a
|
1980 |
|
|
way requiring permission under copyright law.
|
1981 |
|
|
|
1982 |
|
|
A "Modified Version" of the Document means any work containing the
|
1983 |
|
|
Document or a portion of it, either copied verbatim, or with
|
1984 |
|
|
modifications and/or translated into another language.
|
1985 |
|
|
|
1986 |
|
|
A "Secondary Section" is a named appendix or a front-matter section
|
1987 |
|
|
of the Document that deals exclusively with the relationship of the
|
1988 |
|
|
publishers or authors of the Document to the Document's overall
|
1989 |
|
|
subject (or to related matters) and contains nothing that could
|
1990 |
|
|
fall directly within that overall subject. (Thus, if the Document
|
1991 |
|
|
is in part a textbook of mathematics, a Secondary Section may not
|
1992 |
|
|
explain any mathematics.) The relationship could be a matter of
|
1993 |
|
|
historical connection with the subject or with related matters, or
|
1994 |
|
|
of legal, commercial, philosophical, ethical or political position
|
1995 |
|
|
regarding them.
|
1996 |
|
|
|
1997 |
|
|
The "Invariant Sections" are certain Secondary Sections whose
|
1998 |
|
|
titles are designated, as being those of Invariant Sections, in
|
1999 |
|
|
the notice that says that the Document is released under this
|
2000 |
|
|
License. If a section does not fit the above definition of
|
2001 |
|
|
Secondary then it is not allowed to be designated as Invariant.
|
2002 |
|
|
The Document may contain zero Invariant Sections. If the Document
|
2003 |
|
|
does not identify any Invariant Sections then there are none.
|
2004 |
|
|
|
2005 |
|
|
The "Cover Texts" are certain short passages of text that are
|
2006 |
|
|
listed, as Front-Cover Texts or Back-Cover Texts, in the notice
|
2007 |
|
|
that says that the Document is released under this License. A
|
2008 |
|
|
Front-Cover Text may be at most 5 words, and a Back-Cover Text may
|
2009 |
|
|
be at most 25 words.
|
2010 |
|
|
|
2011 |
|
|
A "Transparent" copy of the Document means a machine-readable copy,
|
2012 |
|
|
represented in a format whose specification is available to the
|
2013 |
|
|
general public, that is suitable for revising the document
|
2014 |
|
|
straightforwardly with generic text editors or (for images
|
2015 |
|
|
composed of pixels) generic paint programs or (for drawings) some
|
2016 |
|
|
widely available drawing editor, and that is suitable for input to
|
2017 |
|
|
text formatters or for automatic translation to a variety of
|
2018 |
|
|
formats suitable for input to text formatters. A copy made in an
|
2019 |
|
|
otherwise Transparent file format whose markup, or absence of
|
2020 |
|
|
markup, has been arranged to thwart or discourage subsequent
|
2021 |
|
|
modification by readers is not Transparent. An image format is
|
2022 |
|
|
not Transparent if used for any substantial amount of text. A
|
2023 |
|
|
copy that is not "Transparent" is called "Opaque".
|
2024 |
|
|
|
2025 |
|
|
Examples of suitable formats for Transparent copies include plain
|
2026 |
|
|
ASCII without markup, Texinfo input format, LaTeX input format,
|
2027 |
|
|
SGML or XML using a publicly available DTD, and
|
2028 |
|
|
standard-conforming simple HTML, PostScript or PDF designed for
|
2029 |
|
|
human modification. Examples of transparent image formats include
|
2030 |
|
|
PNG, XCF and JPG. Opaque formats include proprietary formats that
|
2031 |
|
|
can be read and edited only by proprietary word processors, SGML or
|
2032 |
|
|
XML for which the DTD and/or processing tools are not generally
|
2033 |
|
|
available, and the machine-generated HTML, PostScript or PDF
|
2034 |
|
|
produced by some word processors for output purposes only.
|
2035 |
|
|
|
2036 |
|
|
The "Title Page" means, for a printed book, the title page itself,
|
2037 |
|
|
plus such following pages as are needed to hold, legibly, the
|
2038 |
|
|
material this License requires to appear in the title page. For
|
2039 |
|
|
works in formats which do not have any title page as such, "Title
|
2040 |
|
|
Page" means the text near the most prominent appearance of the
|
2041 |
|
|
work's title, preceding the beginning of the body of the text.
|
2042 |
|
|
|
2043 |
|
|
The "publisher" means any person or entity that distributes copies
|
2044 |
|
|
of the Document to the public.
|
2045 |
|
|
|
2046 |
|
|
A section "Entitled XYZ" means a named subunit of the Document
|
2047 |
|
|
whose title either is precisely XYZ or contains XYZ in parentheses
|
2048 |
|
|
following text that translates XYZ in another language. (Here XYZ
|
2049 |
|
|
stands for a specific section name mentioned below, such as
|
2050 |
|
|
"Acknowledgements", "Dedications", "Endorsements", or "History".)
|
2051 |
|
|
To "Preserve the Title" of such a section when you modify the
|
2052 |
|
|
Document means that it remains a section "Entitled XYZ" according
|
2053 |
|
|
to this definition.
|
2054 |
|
|
|
2055 |
|
|
The Document may include Warranty Disclaimers next to the notice
|
2056 |
|
|
which states that this License applies to the Document. These
|
2057 |
|
|
Warranty Disclaimers are considered to be included by reference in
|
2058 |
|
|
this License, but only as regards disclaiming warranties: any other
|
2059 |
|
|
implication that these Warranty Disclaimers may have is void and
|
2060 |
|
|
has no effect on the meaning of this License.
|
2061 |
|
|
|
2062 |
|
|
2. VERBATIM COPYING
|
2063 |
|
|
|
2064 |
|
|
You may copy and distribute the Document in any medium, either
|
2065 |
|
|
commercially or noncommercially, provided that this License, the
|
2066 |
|
|
copyright notices, and the license notice saying this License
|
2067 |
|
|
applies to the Document are reproduced in all copies, and that you
|
2068 |
|
|
add no other conditions whatsoever to those of this License. You
|
2069 |
|
|
may not use technical measures to obstruct or control the reading
|
2070 |
|
|
or further copying of the copies you make or distribute. However,
|
2071 |
|
|
you may accept compensation in exchange for copies. If you
|
2072 |
|
|
distribute a large enough number of copies you must also follow
|
2073 |
|
|
the conditions in section 3.
|
2074 |
|
|
|
2075 |
|
|
You may also lend copies, under the same conditions stated above,
|
2076 |
|
|
and you may publicly display copies.
|
2077 |
|
|
|
2078 |
|
|
3. COPYING IN QUANTITY
|
2079 |
|
|
|
2080 |
|
|
If you publish printed copies (or copies in media that commonly
|
2081 |
|
|
have printed covers) of the Document, numbering more than 100, and
|
2082 |
|
|
the Document's license notice requires Cover Texts, you must
|
2083 |
|
|
enclose the copies in covers that carry, clearly and legibly, all
|
2084 |
|
|
these Cover Texts: Front-Cover Texts on the front cover, and
|
2085 |
|
|
Back-Cover Texts on the back cover. Both covers must also clearly
|
2086 |
|
|
and legibly identify you as the publisher of these copies. The
|
2087 |
|
|
front cover must present the full title with all words of the
|
2088 |
|
|
title equally prominent and visible. You may add other material
|
2089 |
|
|
on the covers in addition. Copying with changes limited to the
|
2090 |
|
|
covers, as long as they preserve the title of the Document and
|
2091 |
|
|
satisfy these conditions, can be treated as verbatim copying in
|
2092 |
|
|
other respects.
|
2093 |
|
|
|
2094 |
|
|
If the required texts for either cover are too voluminous to fit
|
2095 |
|
|
legibly, you should put the first ones listed (as many as fit
|
2096 |
|
|
reasonably) on the actual cover, and continue the rest onto
|
2097 |
|
|
adjacent pages.
|
2098 |
|
|
|
2099 |
|
|
If you publish or distribute Opaque copies of the Document
|
2100 |
|
|
numbering more than 100, you must either include a
|
2101 |
|
|
machine-readable Transparent copy along with each Opaque copy, or
|
2102 |
|
|
state in or with each Opaque copy a computer-network location from
|
2103 |
|
|
which the general network-using public has access to download
|
2104 |
|
|
using public-standard network protocols a complete Transparent
|
2105 |
|
|
copy of the Document, free of added material. If you use the
|
2106 |
|
|
latter option, you must take reasonably prudent steps, when you
|
2107 |
|
|
begin distribution of Opaque copies in quantity, to ensure that
|
2108 |
|
|
this Transparent copy will remain thus accessible at the stated
|
2109 |
|
|
location until at least one year after the last time you
|
2110 |
|
|
distribute an Opaque copy (directly or through your agents or
|
2111 |
|
|
retailers) of that edition to the public.
|
2112 |
|
|
|
2113 |
|
|
It is requested, but not required, that you contact the authors of
|
2114 |
|
|
the Document well before redistributing any large number of
|
2115 |
|
|
copies, to give them a chance to provide you with an updated
|
2116 |
|
|
version of the Document.
|
2117 |
|
|
|
2118 |
|
|
4. MODIFICATIONS
|
2119 |
|
|
|
2120 |
|
|
You may copy and distribute a Modified Version of the Document
|
2121 |
|
|
under the conditions of sections 2 and 3 above, provided that you
|
2122 |
|
|
release the Modified Version under precisely this License, with
|
2123 |
|
|
the Modified Version filling the role of the Document, thus
|
2124 |
|
|
licensing distribution and modification of the Modified Version to
|
2125 |
|
|
whoever possesses a copy of it. In addition, you must do these
|
2126 |
|
|
things in the Modified Version:
|
2127 |
|
|
|
2128 |
|
|
A. Use in the Title Page (and on the covers, if any) a title
|
2129 |
|
|
distinct from that of the Document, and from those of
|
2130 |
|
|
previous versions (which should, if there were any, be listed
|
2131 |
|
|
in the History section of the Document). You may use the
|
2132 |
|
|
same title as a previous version if the original publisher of
|
2133 |
|
|
that version gives permission.
|
2134 |
|
|
|
2135 |
|
|
B. List on the Title Page, as authors, one or more persons or
|
2136 |
|
|
entities responsible for authorship of the modifications in
|
2137 |
|
|
the Modified Version, together with at least five of the
|
2138 |
|
|
principal authors of the Document (all of its principal
|
2139 |
|
|
authors, if it has fewer than five), unless they release you
|
2140 |
|
|
from this requirement.
|
2141 |
|
|
|
2142 |
|
|
C. State on the Title page the name of the publisher of the
|
2143 |
|
|
Modified Version, as the publisher.
|
2144 |
|
|
|
2145 |
|
|
D. Preserve all the copyright notices of the Document.
|
2146 |
|
|
|
2147 |
|
|
E. Add an appropriate copyright notice for your modifications
|
2148 |
|
|
adjacent to the other copyright notices.
|
2149 |
|
|
|
2150 |
|
|
F. Include, immediately after the copyright notices, a license
|
2151 |
|
|
notice giving the public permission to use the Modified
|
2152 |
|
|
Version under the terms of this License, in the form shown in
|
2153 |
|
|
the Addendum below.
|
2154 |
|
|
|
2155 |
|
|
G. Preserve in that license notice the full lists of Invariant
|
2156 |
|
|
Sections and required Cover Texts given in the Document's
|
2157 |
|
|
license notice.
|
2158 |
|
|
|
2159 |
|
|
H. Include an unaltered copy of this License.
|
2160 |
|
|
|
2161 |
|
|
I. Preserve the section Entitled "History", Preserve its Title,
|
2162 |
|
|
and add to it an item stating at least the title, year, new
|
2163 |
|
|
authors, and publisher of the Modified Version as given on
|
2164 |
|
|
the Title Page. If there is no section Entitled "History" in
|
2165 |
|
|
the Document, create one stating the title, year, authors,
|
2166 |
|
|
and publisher of the Document as given on its Title Page,
|
2167 |
|
|
then add an item describing the Modified Version as stated in
|
2168 |
|
|
the previous sentence.
|
2169 |
|
|
|
2170 |
|
|
J. Preserve the network location, if any, given in the Document
|
2171 |
|
|
for public access to a Transparent copy of the Document, and
|
2172 |
|
|
likewise the network locations given in the Document for
|
2173 |
|
|
previous versions it was based on. These may be placed in
|
2174 |
|
|
the "History" section. You may omit a network location for a
|
2175 |
|
|
work that was published at least four years before the
|
2176 |
|
|
Document itself, or if the original publisher of the version
|
2177 |
|
|
it refers to gives permission.
|
2178 |
|
|
|
2179 |
|
|
K. For any section Entitled "Acknowledgements" or "Dedications",
|
2180 |
|
|
Preserve the Title of the section, and preserve in the
|
2181 |
|
|
section all the substance and tone of each of the contributor
|
2182 |
|
|
acknowledgements and/or dedications given therein.
|
2183 |
|
|
|
2184 |
|
|
L. Preserve all the Invariant Sections of the Document,
|
2185 |
|
|
unaltered in their text and in their titles. Section numbers
|
2186 |
|
|
or the equivalent are not considered part of the section
|
2187 |
|
|
titles.
|
2188 |
|
|
|
2189 |
|
|
M. Delete any section Entitled "Endorsements". Such a section
|
2190 |
|
|
may not be included in the Modified Version.
|
2191 |
|
|
|
2192 |
|
|
N. Do not retitle any existing section to be Entitled
|
2193 |
|
|
"Endorsements" or to conflict in title with any Invariant
|
2194 |
|
|
Section.
|
2195 |
|
|
|
2196 |
|
|
O. Preserve any Warranty Disclaimers.
|
2197 |
|
|
|
2198 |
|
|
If the Modified Version includes new front-matter sections or
|
2199 |
|
|
appendices that qualify as Secondary Sections and contain no
|
2200 |
|
|
material copied from the Document, you may at your option
|
2201 |
|
|
designate some or all of these sections as invariant. To do this,
|
2202 |
|
|
add their titles to the list of Invariant Sections in the Modified
|
2203 |
|
|
Version's license notice. These titles must be distinct from any
|
2204 |
|
|
other section titles.
|
2205 |
|
|
|
2206 |
|
|
You may add a section Entitled "Endorsements", provided it contains
|
2207 |
|
|
nothing but endorsements of your Modified Version by various
|
2208 |
|
|
parties--for example, statements of peer review or that the text
|
2209 |
|
|
has been approved by an organization as the authoritative
|
2210 |
|
|
definition of a standard.
|
2211 |
|
|
|
2212 |
|
|
You may add a passage of up to five words as a Front-Cover Text,
|
2213 |
|
|
and a passage of up to 25 words as a Back-Cover Text, to the end
|
2214 |
|
|
of the list of Cover Texts in the Modified Version. Only one
|
2215 |
|
|
passage of Front-Cover Text and one of Back-Cover Text may be
|
2216 |
|
|
added by (or through arrangements made by) any one entity. If the
|
2217 |
|
|
Document already includes a cover text for the same cover,
|
2218 |
|
|
previously added by you or by arrangement made by the same entity
|
2219 |
|
|
you are acting on behalf of, you may not add another; but you may
|
2220 |
|
|
replace the old one, on explicit permission from the previous
|
2221 |
|
|
publisher that added the old one.
|
2222 |
|
|
|
2223 |
|
|
The author(s) and publisher(s) of the Document do not by this
|
2224 |
|
|
License give permission to use their names for publicity for or to
|
2225 |
|
|
assert or imply endorsement of any Modified Version.
|
2226 |
|
|
|
2227 |
|
|
5. COMBINING DOCUMENTS
|
2228 |
|
|
|
2229 |
|
|
You may combine the Document with other documents released under
|
2230 |
|
|
this License, under the terms defined in section 4 above for
|
2231 |
|
|
modified versions, provided that you include in the combination
|
2232 |
|
|
all of the Invariant Sections of all of the original documents,
|
2233 |
|
|
unmodified, and list them all as Invariant Sections of your
|
2234 |
|
|
combined work in its license notice, and that you preserve all
|
2235 |
|
|
their Warranty Disclaimers.
|
2236 |
|
|
|
2237 |
|
|
The combined work need only contain one copy of this License, and
|
2238 |
|
|
multiple identical Invariant Sections may be replaced with a single
|
2239 |
|
|
copy. If there are multiple Invariant Sections with the same name
|
2240 |
|
|
but different contents, make the title of each such section unique
|
2241 |
|
|
by adding at the end of it, in parentheses, the name of the
|
2242 |
|
|
original author or publisher of that section if known, or else a
|
2243 |
|
|
unique number. Make the same adjustment to the section titles in
|
2244 |
|
|
the list of Invariant Sections in the license notice of the
|
2245 |
|
|
combined work.
|
2246 |
|
|
|
2247 |
|
|
In the combination, you must combine any sections Entitled
|
2248 |
|
|
"History" in the various original documents, forming one section
|
2249 |
|
|
Entitled "History"; likewise combine any sections Entitled
|
2250 |
|
|
"Acknowledgements", and any sections Entitled "Dedications". You
|
2251 |
|
|
must delete all sections Entitled "Endorsements."
|
2252 |
|
|
|
2253 |
|
|
6. COLLECTIONS OF DOCUMENTS
|
2254 |
|
|
|
2255 |
|
|
You may make a collection consisting of the Document and other
|
2256 |
|
|
documents released under this License, and replace the individual
|
2257 |
|
|
copies of this License in the various documents with a single copy
|
2258 |
|
|
that is included in the collection, provided that you follow the
|
2259 |
|
|
rules of this License for verbatim copying of each of the
|
2260 |
|
|
documents in all other respects.
|
2261 |
|
|
|
2262 |
|
|
You may extract a single document from such a collection, and
|
2263 |
|
|
distribute it individually under this License, provided you insert
|
2264 |
|
|
a copy of this License into the extracted document, and follow
|
2265 |
|
|
this License in all other respects regarding verbatim copying of
|
2266 |
|
|
that document.
|
2267 |
|
|
|
2268 |
|
|
7. AGGREGATION WITH INDEPENDENT WORKS
|
2269 |
|
|
|
2270 |
|
|
A compilation of the Document or its derivatives with other
|
2271 |
|
|
separate and independent documents or works, in or on a volume of
|
2272 |
|
|
a storage or distribution medium, is called an "aggregate" if the
|
2273 |
|
|
copyright resulting from the compilation is not used to limit the
|
2274 |
|
|
legal rights of the compilation's users beyond what the individual
|
2275 |
|
|
works permit. When the Document is included in an aggregate, this
|
2276 |
|
|
License does not apply to the other works in the aggregate which
|
2277 |
|
|
are not themselves derivative works of the Document.
|
2278 |
|
|
|
2279 |
|
|
If the Cover Text requirement of section 3 is applicable to these
|
2280 |
|
|
copies of the Document, then if the Document is less than one half
|
2281 |
|
|
of the entire aggregate, the Document's Cover Texts may be placed
|
2282 |
|
|
on covers that bracket the Document within the aggregate, or the
|
2283 |
|
|
electronic equivalent of covers if the Document is in electronic
|
2284 |
|
|
form. Otherwise they must appear on printed covers that bracket
|
2285 |
|
|
the whole aggregate.
|
2286 |
|
|
|
2287 |
|
|
8. TRANSLATION
|
2288 |
|
|
|
2289 |
|
|
Translation is considered a kind of modification, so you may
|
2290 |
|
|
distribute translations of the Document under the terms of section
|
2291 |
|
|
4. Replacing Invariant Sections with translations requires special
|
2292 |
|
|
permission from their copyright holders, but you may include
|
2293 |
|
|
translations of some or all Invariant Sections in addition to the
|
2294 |
|
|
original versions of these Invariant Sections. You may include a
|
2295 |
|
|
translation of this License, and all the license notices in the
|
2296 |
|
|
Document, and any Warranty Disclaimers, provided that you also
|
2297 |
|
|
include the original English version of this License and the
|
2298 |
|
|
original versions of those notices and disclaimers. In case of a
|
2299 |
|
|
disagreement between the translation and the original version of
|
2300 |
|
|
this License or a notice or disclaimer, the original version will
|
2301 |
|
|
prevail.
|
2302 |
|
|
|
2303 |
|
|
If a section in the Document is Entitled "Acknowledgements",
|
2304 |
|
|
"Dedications", or "History", the requirement (section 4) to
|
2305 |
|
|
Preserve its Title (section 1) will typically require changing the
|
2306 |
|
|
actual title.
|
2307 |
|
|
|
2308 |
|
|
9. TERMINATION
|
2309 |
|
|
|
2310 |
|
|
You may not copy, modify, sublicense, or distribute the Document
|
2311 |
|
|
except as expressly provided under this License. Any attempt
|
2312 |
|
|
otherwise to copy, modify, sublicense, or distribute it is void,
|
2313 |
|
|
and will automatically terminate your rights under this License.
|
2314 |
|
|
|
2315 |
|
|
However, if you cease all violation of this License, then your
|
2316 |
|
|
license from a particular copyright holder is reinstated (a)
|
2317 |
|
|
provisionally, unless and until the copyright holder explicitly
|
2318 |
|
|
and finally terminates your license, and (b) permanently, if the
|
2319 |
|
|
copyright holder fails to notify you of the violation by some
|
2320 |
|
|
reasonable means prior to 60 days after the cessation.
|
2321 |
|
|
|
2322 |
|
|
Moreover, your license from a particular copyright holder is
|
2323 |
|
|
reinstated permanently if the copyright holder notifies you of the
|
2324 |
|
|
violation by some reasonable means, this is the first time you have
|
2325 |
|
|
received notice of violation of this License (for any work) from
|
2326 |
|
|
that copyright holder, and you cure the violation prior to 30 days
|
2327 |
|
|
after your receipt of the notice.
|
2328 |
|
|
|
2329 |
|
|
Termination of your rights under this section does not terminate
|
2330 |
|
|
the licenses of parties who have received copies or rights from
|
2331 |
|
|
you under this License. If your rights have been terminated and
|
2332 |
|
|
not permanently reinstated, receipt of a copy of some or all of
|
2333 |
|
|
the same material does not give you any rights to use it.
|
2334 |
|
|
|
2335 |
|
|
10. FUTURE REVISIONS OF THIS LICENSE
|
2336 |
|
|
|
2337 |
|
|
The Free Software Foundation may publish new, revised versions of
|
2338 |
|
|
the GNU Free Documentation License from time to time. Such new
|
2339 |
|
|
versions will be similar in spirit to the present version, but may
|
2340 |
|
|
differ in detail to address new problems or concerns. See
|
2341 |
|
|
`http://www.gnu.org/copyleft/'.
|
2342 |
|
|
|
2343 |
|
|
Each version of the License is given a distinguishing version
|
2344 |
|
|
number. If the Document specifies that a particular numbered
|
2345 |
|
|
version of this License "or any later version" applies to it, you
|
2346 |
|
|
have the option of following the terms and conditions either of
|
2347 |
|
|
that specified version or of any later version that has been
|
2348 |
|
|
published (not as a draft) by the Free Software Foundation. If
|
2349 |
|
|
the Document does not specify a version number of this License,
|
2350 |
|
|
you may choose any version ever published (not as a draft) by the
|
2351 |
|
|
Free Software Foundation. If the Document specifies that a proxy
|
2352 |
|
|
can decide which future versions of this License can be used, that
|
2353 |
|
|
proxy's public statement of acceptance of a version permanently
|
2354 |
|
|
authorizes you to choose that version for the Document.
|
2355 |
|
|
|
2356 |
|
|
11. RELICENSING
|
2357 |
|
|
|
2358 |
|
|
"Massive Multiauthor Collaboration Site" (or "MMC Site") means any
|
2359 |
|
|
World Wide Web server that publishes copyrightable works and also
|
2360 |
|
|
provides prominent facilities for anybody to edit those works. A
|
2361 |
|
|
public wiki that anybody can edit is an example of such a server.
|
2362 |
|
|
A "Massive Multiauthor Collaboration" (or "MMC") contained in the
|
2363 |
|
|
site means any set of copyrightable works thus published on the MMC
|
2364 |
|
|
site.
|
2365 |
|
|
|
2366 |
|
|
"CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
|
2367 |
|
|
license published by Creative Commons Corporation, a not-for-profit
|
2368 |
|
|
corporation with a principal place of business in San Francisco,
|
2369 |
|
|
California, as well as future copyleft versions of that license
|
2370 |
|
|
published by that same organization.
|
2371 |
|
|
|
2372 |
|
|
"Incorporate" means to publish or republish a Document, in whole or
|
2373 |
|
|
in part, as part of another Document.
|
2374 |
|
|
|
2375 |
|
|
An MMC is "eligible for relicensing" if it is licensed under this
|
2376 |
|
|
License, and if all works that were first published under this
|
2377 |
|
|
License somewhere other than this MMC, and subsequently
|
2378 |
|
|
incorporated in whole or in part into the MMC, (1) had no cover
|
2379 |
|
|
texts or invariant sections, and (2) were thus incorporated prior
|
2380 |
|
|
to November 1, 2008.
|
2381 |
|
|
|
2382 |
|
|
The operator of an MMC Site may republish an MMC contained in the
|
2383 |
|
|
site under CC-BY-SA on the same site at any time before August 1,
|
2384 |
|
|
2009, provided the MMC is eligible for relicensing.
|
2385 |
|
|
|
2386 |
|
|
|
2387 |
|
|
ADDENDUM: How to use this License for your documents
|
2388 |
|
|
====================================================
|
2389 |
|
|
|
2390 |
|
|
To use this License in a document you have written, include a copy of
|
2391 |
|
|
the License in the document and put the following copyright and license
|
2392 |
|
|
notices just after the title page:
|
2393 |
|
|
|
2394 |
|
|
Copyright (C) YEAR YOUR NAME.
|
2395 |
|
|
Permission is granted to copy, distribute and/or modify this document
|
2396 |
|
|
under the terms of the GNU Free Documentation License, Version 1.3
|
2397 |
|
|
or any later version published by the Free Software Foundation;
|
2398 |
|
|
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
|
2399 |
|
|
Texts. A copy of the license is included in the section entitled ``GNU
|
2400 |
|
|
Free Documentation License''.
|
2401 |
|
|
|
2402 |
|
|
If you have Invariant Sections, Front-Cover Texts and Back-Cover
|
2403 |
|
|
Texts, replace the "with...Texts." line with this:
|
2404 |
|
|
|
2405 |
|
|
with the Invariant Sections being LIST THEIR TITLES, with
|
2406 |
|
|
the Front-Cover Texts being LIST, and with the Back-Cover Texts
|
2407 |
|
|
being LIST.
|
2408 |
|
|
|
2409 |
|
|
If you have Invariant Sections without Cover Texts, or some other
|
2410 |
|
|
combination of the three, merge those two alternatives to suit the
|
2411 |
|
|
situation.
|
2412 |
|
|
|
2413 |
|
|
If your document contains nontrivial examples of program code, we
|
2414 |
|
|
recommend releasing these examples in parallel under your choice of
|
2415 |
|
|
free software license, such as the GNU General Public License, to
|
2416 |
|
|
permit their use in free software.
|
2417 |
|
|
|