]>
Commit | Line | Data |
---|---|---|
7b4ac7e1 | 1 | Fri Jan 15 05:09:18 1988 Richard Stallman (rms at frosted-flakes) |
2 | ||
3 | * valprint.c [IEEE_FLOAT]: New function `is_nan' checks | |
4 | whether a double is a nan. | |
5 | ||
6 | * printcmd.c (print_formatted) [IEEE_FLOAT]: | |
7 | Detect nans and print specially. | |
8 | * valprint.c (val_print) [IEEE_FLOAT]: Same thing. | |
9 | ||
10 | * m68k-pinsn.c (convert_{to,from}_68881): Hand-assemble | |
11 | all the assembler code. | |
12 | ||
13 | * m-newsinit.h, m-news800.h: Two new files. | |
14 | ||
15 | Thu Jan 7 22:25:16 1988 Richard Stallman (rms at frosted-flakes) | |
16 | ||
17 | * valops.c (value_assign): Don't coerce the arg being stored in. | |
18 | Coercion is not right either for an array or for an enum. | |
19 | ||
20 | Tue Jan 5 00:59:29 1988 Richard Stallman (rms at frosted-flakes) | |
21 | ||
22 | * symtab.c (decode_line_1): Don't complain about no symtabs loaded | |
23 | until after trying the misc function table. | |
24 | ||
25 | Sat Jan 2 13:16:08 1988 Richard Stallman (rms at frosted-flakes) | |
26 | ||
27 | * stack.c (record_selected_frame): New fn to access | |
28 | the selected frame and its level. | |
29 | * infcmd.c (run_stack_dummy): Save and restore the selected | |
30 | frame and its level. | |
31 | ||
32 | Wed Dec 30 18:44:41 1987 Richard Stallman (rms at frosted-flakes) | |
33 | ||
34 | * valprint.c (type_print_varspec_prefix): | |
35 | Treat arrays just like functions. | |
36 | * valprint.c (type_print_varspec_{prefix,suffix}): | |
37 | When passed_a_ptr is handled, pass 0 for it in the recursive call. | |
38 | ||
39 | Fri Dec 18 10:24:14 1987 Richard Stallman (rms at frosted-flakes) | |
40 | ||
41 | * findvar.c (read_var_value): Share code between values really | |
42 | in registers and values in saved registers. | |
43 | Register short on a big-endian machine needs a VALUE_OFFSET. | |
44 | ||
45 | * findvar.c (locate_var_value): Offset the address of a | |
46 | saved register variable that's shorter than the register. | |
47 | ||
48 | Thu Dec 17 08:26:31 1987 Richard Stallman (rms at lucky-charms) | |
49 | ||
50 | * valprint.c (type_print_base): Print nameless bit fields | |
51 | to indicate gaps before bit fields. | |
52 | ||
53 | * source.c (select_source_symtab): Ignore .h files. | |
54 | Also, if a function `main' exists, make the default listing line | |
55 | the beginning of `main'. | |
56 | ||
57 | * breakpoint.c ({get,set}_breakpoint_commands): | |
58 | Commands to examine or set the pending breakpoint-commands. | |
59 | ||
60 | * infcmd.c (run_stack_dummy): Save and restore the breakpoint | |
61 | commands around the function call. | |
62 | ||
63 | * stack.c (return_command): Don't query or print if not interactive. | |
64 | ||
65 | * value.h (COERCE_ENUM): New macro: if arg is enum, convert to int. | |
66 | * value.h (COERCE_ARRAY): Do that, as well as old job. | |
67 | ||
68 | * valarith.c (value_binop, value_neg, value_lognot): | |
69 | Use COERCE_ENUM on the arguments. | |
70 | * valops.c (value_arg_coerce): Likewise. | |
71 | * valops.c (value_cast): AVOID coercing enums when arrays are. | |
72 | ||
73 | * eval.c (evaluate_subexp): In the BINOP_SUB case, | |
74 | use evaluate_subexp_with_coercion. | |
75 | ||
76 | * inflow.c (terminal_ours_1, terminal_inferior): | |
77 | Ignore inferior_thisrun_terminal since our terminal | |
78 | is the inferior's controlling terminal regardless. | |
79 | ||
80 | * m-sun3.h: Fix assembler syntax for kdb macros. | |
81 | ||
82 | * infcmd.c ({attach,detach}_command): New functions from Dave Taylor. | |
83 | * inflow.c (attach, detach): New functions from Dave Taylor. | |
84 | * infrun.c (attach_process): New function, middle-level. | |
85 | Does all the work of attaching a process, assuming there is no | |
86 | inferior yet, except for printing and querying. | |
87 | ||
88 | * infrun.c (clear_proceed_status): Clear `stop_after_attach'. | |
89 | * infrun.c (wait_for_inferior): Handle `stop_after_attach'. | |
90 | ||
91 | Sat Dec 12 04:36:39 1987 Richard Stallman (rms at corn-chex) | |
92 | ||
93 | * dbxread.c (end_symtab): The free_code for a symseg got | |
94 | from a file should be free_linetable. | |
95 | ||
96 | * dbxread.c: Allocate blockvector, blocks, symbols and symbol names | |
97 | from the symbol-obstack, and use free_linetable for all files. | |
98 | The typevector is still malloc'd, so put it in the free_ptr | |
99 | to get it freed. | |
100 | ||
101 | * symmisc.c (free_symtab): Always free the `free_ptr' if nonzero. | |
102 | `free_explicit' therefore now the same as `free_nothing'. | |
103 | ||
104 | * dbxread.c (define_symbol): Handle defn code 'c', used by | |
105 | fortran, which defines integer and real constant symbols. | |
106 | ||
107 | * symseg.h: Define LOC_CONST_BYTES for constants longer than a | |
108 | word. New `bytes' alternative for the value of a symbol. | |
109 | ||
110 | * symtab.h (SYMBOL_VALUE_BYTES): Macro to access `bytes'. | |
111 | ||
112 | * findvar.c ({read,locate}_var_value): Handle LOC_CONST_BYTES. | |
113 | * printcmd.c (address_info): Handle LOC_CONST_BYTES. | |
114 | * symmisc.c (print_symbol): Handle LOC_CONST_BYTES. | |
115 | ||
116 | Tue Dec 8 20:26:37 1987 Richard Stallman (rms at frosted-flakes) | |
117 | ||
118 | * symtab.c (find_line_pc_range): Detection of last line in file | |
119 | was erroneous. | |
120 | ||
121 | Fri Dec 4 21:52:52 1987 Richard Stallman (rms at frosted-flakes) | |
122 | ||
123 | * dbxread.c (read_range_type): Accept the typenums as argument. | |
124 | Use read_type_number to read the subrange-of type. | |
125 | A type defined as a subrange of itself is void. | |
126 | ||
127 | Thu Dec 3 12:45:10 1987 Richard Stallman (rms at frosted-flakes) | |
128 | ||
129 | * inflow.c ({fetch,store}_inferior_registers): Support UMAX_PTRACE. | |
130 | ||
131 | * m-umax.h: New file, for Encore machines. | |
132 | ||
133 | * core.c (exec_file_command, etc): Decode COFF files. | |
134 | * core.c (core_file_command): Support UMAX_CORE format. | |
135 | * core.c (validate_files, exec_file_command): | |
136 | Set exec_mtime in exec_file_command so that COFF vs non-COFF | |
137 | differences appear all in one place. | |
138 | ||
139 | * coffread.c: New file from Dave Johnson. | |
140 | ||
141 | * core.c (specify_exec_file_hook): New function to specify | |
142 | a hook to be called by exec_file_command. Last #ifdef X_WINDOWS gone. | |
143 | * xgdb.c (initialize): Specify a hook. | |
144 | ||
145 | * infrun.c, inferior.h: Replace stop_r0 and stop_r1 with an array | |
146 | `stop_registers' that will hold ALL the registers. | |
147 | * infcmd.c (run_stack_dummy): Get the value from `stop_registers' | |
148 | and copy all of that into BUFFER. | |
149 | * infcmd.c (finish_command): Specify `stop_registers' | |
150 | to `value_being_returned'. | |
151 | * values.c (value_being_returned): Use the new EXTRACT... macros. | |
152 | * values.c (set_return_value): Use new STORE_RETURN_VALUE macro. | |
153 | * valops.c (call_function): Allocate retbuf long enough for all regs. | |
154 | * m-*.h: New macros EXTRACT_RETURN_VALUE, STORE_RETURN_VALUE and | |
155 | EXTRACT_STRUCT_VALUE_ADDRESS that express machine-dependencies | |
156 | in where return values are stored. | |
157 | ||
158 | * valops.c (call_function): Flush default for CALL_DUMMY_START_OFFSET. | |
159 | Assume it is defined. | |
160 | * m-vax.h: Define CALL_DUMMY_START_OFFSET. | |
161 | ||
162 | * ns32k-pinsn.c (ns32k-localcount): Fix decoding of `enter' insn. | |
163 | * ns32k-pinsn.c (n32k_get_enter_addr): New fn used from m-umax.h. | |
164 | ||
165 | * m-*.h: Change INVALID_FLOAT to accept 2nd arg which is length | |
166 | of the float. | |
167 | * values.c (unpack_double): Pass the 2nd arg. | |
168 | * vax-pinsn.c (print_insn_arg): Pass the 2nd arg. | |
169 | * infcmd.c (registers_info): Pass the 2nd arg. | |
170 | ||
171 | Wed Nov 25 15:06:55 1987 Richard Stallman (rms at frosted-flakes) | |
172 | ||
173 | * Bug fixes by David Johnson (ddj%cs.brown.edu@relay.cs.net). | |
174 | ||
175 | * symtab.c (list_symbols): Print typedef names, and don't call | |
176 | them `static'. | |
177 | ||
178 | * symmisc.c (print_symtabs): Allow immediate quit, and close the | |
179 | output file if that happens. | |
180 | ||
181 | * stack.c (frame_command): Declare args `unsigned' so a negative | |
182 | number is a frame address, not a level number. | |
183 | ||
184 | * source.c: Check for error-return from calls to `getwd'. | |
185 | ||
186 | * printcmd.c (address_info): Fix error in case of a function name. | |
187 | ||
188 | * inflow.c (create_inferior): Return the inferior pid properly. | |
189 | ||
190 | * inferior.h: Define `inferior_io_terminal'. | |
191 | * infrun.c (tty_command): New command to specify inferior_io_terminal. | |
192 | * inflow.c (new_tty): Open specified terminal for the inferior. | |
193 | * inflow.c (terminal_{ours,inferior}): Do nothing if inferior was | |
194 | started with its own terminal. | |
195 | * main.c (main): -t switch calls `tty_command'. | |
196 | ||
197 | * expread.y (rule for `block'): `copy_name' was called in wrong | |
198 | place and with wrong args. | |
199 | ||
200 | * dbxread.c: Entire file #ifdef READ_DBX_FORMAT. | |
201 | * m-*.h: Define READ_DBX_FORMAT. | |
202 | ||
203 | * breakpoint.c (initialize): Error in doc string of `info breakpoints'. | |
204 | ||
205 | Wed Nov 11 12:57:28 1987 Richard Stallman (rms at frosted-flakes) | |
206 | ||
207 | * ns32k-opcode.h, ns32k-pinsn.c: Two new files. | |
208 | * m-merlin.h: New file, for one 32000 box. | |
209 | ||
210 | Mon Nov 9 10:31:42 1987 Brian Fox (bfox at sugar-smacks) | |
211 | ||
212 | * eval.c (evaluate_subexp): Made the case of OP_FUNCALL use | |
213 | evaluate_subexp_with_coercion, so that array references would | |
214 | get converted into pointer references. | |
215 | ||
216 | Mon Nov 9 05:50:24 1987 Richard Stallman (rms at sugar-smacks) | |
217 | ||
218 | * breakpoint.c (ignore_command): Error if no arg. | |
219 | ||
220 | Sat Nov 7 13:57:40 1987 Richard Stallman (rms at frosted-flakes) | |
221 | ||
222 | * main.c (quit_command): Get rid of execfile before the kill_inferior. | |
223 | ||
224 | * xgdb.c: New file, interface to X windows. | |
225 | ||
226 | * main.c (main): Look for flag arguments before | |
227 | calling the initialization functions. -nw switch sets | |
228 | `inhibit_windows' which xgdb.c looks at. | |
229 | * main.c (command_loop): Call the window hook function, if any. | |
230 | ||
231 | * source.c (get_filename_and_charpos): New function | |
232 | that interfaces to find_source_lines. | |
233 | * source.c (source_line_charpos, source_charpos_line): | |
234 | New functions translate source line number to char pos and vice versa. | |
235 | ||
236 | * breakpoint.c (describe_other_breakpoints): New subroutine | |
237 | to list all breakpoints at PC in a message about "other | |
238 | breakpoints". | |
239 | * breakpoint.c (break_command_1): Use describe_other_breakpoints. | |
240 | * breakpoint.c (set_breakpoint): Like break_command_1 | |
241 | but takes arg predecoded into symtab and line. | |
242 | ||
243 | * core.c (exec_file_command): Call xgdb_display_exec_file. | |
244 | ||
245 | * valprint.c (type_print_base): For struct bitfields, | |
246 | print the bit size. | |
247 | ||
248 | Thu Aug 20 02:46:47 1987 Richard M. Stallman (rms at prep) | |
249 | ||
250 | * Version 2.4. | |
251 | ||
252 | * m68k-pinsn.c (print_insn_arg): Implement place = '3'. | |
253 | ||
254 | * findvar.c (write_register_bytes): Arg to | |
255 | store_inferior_registers should be -1: write all registers. | |
256 | ||
257 | * dbxread.c (symbol_file_command): If no arg, | |
258 | just discard all symbols. | |
259 | ||
260 | * core.c (myread): Flush the 4th arg (filename). | |
261 | * source.c (find_source_lines): Don't pass 4th arg. | |
262 | * symmisc.c (read_symsegs): Ditto. | |
263 | ||
264 | * dbxread.c (process_one_symbol): One call to `define_symbol' | |
265 | lacked 3rd arg. | |
266 | ||
267 | * inflow.c (write_inferior_memory): On failure, return the errno value. | |
268 | * core.c (write_memory): ditto. | |
269 | * breakpoint.c ({insert,remove}_breakpoints): ditto. | |
270 | * utils.c (print_sys_errmsg): Like perror_with_name but don't | |
271 | signal an error; also, the error code is an arg instead of from | |
272 | `errno'. | |
273 | * infrun.c : Save the value from insert_breakpoints and pass it to | |
274 | print_sys_errmsg. | |
275 | ||
276 | * main.c (input_from_terminal_p): Put in omitted `return'. | |
277 | ||
278 | * Makefile (expread.o): Use $(CC). | |
279 | ||
280 | Sun Jun 7 04:42:51 1987 Richard M. Stallman (rms at prep) | |
281 | ||
282 | * version.c: Version 2.3. | |
283 | ||
284 | * inflow.c (terminal_ours): Save fcntl flags correctly. | |
285 | * inflow.c (term_status_command): | |
286 | Print the tchars and ltchars structures, byte by byte. | |
287 | ||
288 | Mon May 25 14:37:14 1987 Richard M. Stallman (rms at prep) | |
289 | ||
290 | * version.c: Version 2.2. | |
291 | ||
292 | * breakpoint.c (do_breakpoint_commands): | |
293 | Advance breakpoint_commands before executing the command, | |
294 | in case command is `cont' and it hits another bpt with commands. | |
295 | ||
296 | Sun May 24 20:45:04 1987 Richard M. Stallman (rms at prep) | |
297 | ||
298 | * value.h: Declare `contents' long and cast its address to char *. | |
299 | ||
300 | * expread.y (prefixify_expression): Don't call alloca among the decls. | |
301 | ||
302 | * printcmd.c (print_variable_value): Flush unused local `space'. | |
303 | ||
304 | * main.c (execute_command): Barf on "user" like other class names. | |
305 | ||
306 | Fri May 22 01:34:37 1987 Richard M. Stallman (rms at prep) | |
307 | ||
308 | * m68k-pinsn.c (fetch_arg): New arg position 'j', for movec. | |
309 | (print_insn_arg): New arg syntax 'J', for movec. | |
310 | * m68k-opcode.h: movec uses 'Jj'. Everything reformatted. | |
311 | bf... and cas... insns were corrected. | |
312 | ||
313 | * inflow.c (create_inferior): Fork and exec with given args and env. | |
314 | Call close_exec_file. | |
315 | (inferior_died): Record the fact that the inferior no longer exists. | |
316 | Call reopen_exec_file. | |
317 | ||
318 | * core.c (close_exec_file): New fn: Close the execchan if it's open. | |
319 | (reopen_exec_file): New fn: Reopen execchan if not currently open. | |
320 | ||
321 | * infrun.c (wait_for_inferior): Call inferior_died if it exits. | |
322 | ||
323 | * infcmd.c (run_command): Don't fork and exec; call create_inferior. | |
324 | ||
325 | * findvar.c (read_var_value): For reg var in a convertable reg, | |
326 | fetch reg in its own virtual type and then cast to variable's type. | |
327 | ||
328 | * symtab.h: Declare xmalloc to return char *. | |
329 | ||
330 | * dbxread.c (read_dbx_symtab): Record static text syms as | |
331 | misc-functions. But if an assembler symbol supplies the address | |
332 | for a debugger symbol, don't record it as a misc-function. | |
333 | ||
334 | * utils.c (query): Do clearerr (stdin) frequently in case of C-d. | |
335 | ||
336 | * dbxread.c (process_one_symbol, define_symbol): | |
337 | Pass the stab's DESC down to define_symbol. | |
338 | DESC = 0 means GCC output: if type is "short", believe it. | |
339 | ||
340 | * dbxread.c (read_enum_type): Don't allocate the type here; | |
341 | take it as an argument. (Like read_struct_type.) | |
342 | (read_type)): Before call to read_enum_type, allocate the type | |
343 | or get the one already allocated. | |
344 | ||
345 | * printcmd.c (print_frame_args): Print a comma before | |
346 | every arg except the first. | |
347 | ||
348 | Wed May 13 00:36:00 1987 Richard M. Stallman (rms at prep) | |
349 | ||
350 | * m68k-pinsn.c (convert_{to,from}_68881): | |
351 | Hand-assemble the fmoved and fmovex insns. | |
352 | ||
353 | * dbxread.c (define_symbol): For case 'p', a parameter, | |
354 | if specified type is short or char, change it to int. | |
355 | This is for how PCC handles arguments. | |
356 | Define new case 'P' that does what 'p' used to do. | |
357 | Maybe GCC will use this. | |
358 | ||
359 | Mon May 4 21:52:44 1987 Richard M. Stallman (rms at prep) | |
360 | ||
361 | * main.c (main): If SET_STACK_LIMIT_HUGE, set the | |
362 | run-time stack limit as high as it can go. | |
363 | * m-sun3.h, m-vax.h: define SET_STACK_LIMIT_HUGE. | |
364 | ||
365 | Sun May 3 08:46:23 1987 Richard Mlynarik (mly at prep) | |
366 | ||
367 | * command.c, expread.y, findvar.c, infcmd.c, inflow.c, utils.c, | |
368 | values.c, defs.h: Various ANSI C compatibility changes | |
369 | (fouts@wilbur.arpa <8705010117.AA13112@wilbur.arpa>) | |
370 | ||
371 | * core.c, inflow.c: Fix calls to supply_register. | |
372 | * findvar.c (supply_register): Instead of register value as int, | |
373 | pass address of buffer in core containing contents in raw form. | |
374 | ||
375 | Sat Apr 18 17:09:42 1987 Richard Mlynarik (mly at prep) | |
376 | ||
377 | * main.c (command_loop): | |
378 | Do any cleanups made by a executing a command each time around. | |
379 | ||
380 | * source.c (directory_command): | |
381 | make_cleanup (free, dirname), not | |
382 | make_cleanup (free_current_contents, &dirname) | |
383 | (rlk <8704180416.AA29572@PARIS.MIT.EDU>) | |
384 | ||
385 | Mon Apr 13 20:28:26 1987 Leonard H. Tower Jr. (tower at prep) | |
386 | ||
387 | * gdb.1: fixed typo and italicization errors. | |
388 | (<kgk%cs.brown.edu@RELAY.CS.NET> id AA16470;Sun,12 Apr 87 14:30:07 EST) | |
389 | ||
390 | Sat Apr 11 15:41:01 1987 Richard Mlynarik (mly at prep) | |
391 | ||
392 | * dbxread.c (read_dbx_symtab): | |
393 | No name for symbol => "" not 0 (avoid referencing memory 0) | |
394 | (tower <8704081854.AA00135@buit3.bu.edu>) | |
395 | ||
396 | Mon Mar 30 22:24:07 1987 Leonard H. Tower Jr. (tower at prep) | |
397 | ||
398 | * gdb.1: Unix style manual page pointing at internal gdb | |
399 | documentation, and info sub-system in GNU Emacs. | |
400 | ||
401 | Fri Mar 20 12:07:15 1987 Richard M. Stallman (rms at prep) | |
402 | ||
403 | * COPYING: Clarifications about distribution fees and mixing. | |
404 | * main.c (copying_info): Same changes. | |
405 | ||
406 | Tue Mar 17 17:40:14 1987 Richard M. Stallman (rms at prep) | |
407 | ||
408 | * values.c (unpack_field_as_long): Avoid >>= operator | |
409 | since ISI compiler has a bug. | |
410 | ||
411 | Sat Mar 7 12:19:35 1987 Richard M. Stallman (rms at prep) | |
412 | ||
413 | * GDB version 2.1. | |
414 | ||
415 | * values.c (unpack-field-as-long): Tests for endianness were broken. | |
416 | * findvar.c (read_var_value): | |
417 | Now we initialize the union as an int and test it as a char. | |
418 | ||
419 | Sun Mar 1 16:16:20 1987 Richard M. Stallman (rms at prep) | |
420 | ||
421 | * main.c (define_command): Command class symbols | |
422 | must be cast to int. | |
423 | ||
424 | Mon Feb 23 02:47:44 1987 Richard M. Stallman (rms at prep) | |
425 | ||
426 | * source.c (list_command): Reword error messages. | |
427 | New message for case of first arg not just a line-number | |
428 | and no symtab specified by it. | |
429 | ||
430 | Sun Feb 22 21:15:19 1987 Richard M. Stallman (rms at prep) | |
431 | ||
432 | * dbxread.c (compare_misc_functions): | |
433 | Compare the addresses as unsigned numbers. | |
434 | ||
435 | Sun Feb 22 13:11:45 1987 Richard Mlynarik (mly at prep) | |
436 | ||
437 | * main.c (define_command, document_command): | |
438 | Stuff was being unnecessarily malloced (-and- not freed!) | |
439 | ||
440 | * main.c (execute_command): | |
441 | User-defined commands don't take args. | |
442 | Don't confuse empty user command with no command. | |
443 | Replace bogus `etext' test with a comparison against | |
444 | class_user. | |
445 | ||
446 | * main.c (define_command): | |
447 | If the command of the specified name is built-in, note that when | |
448 | asking whether to redefine it (this is suppressed for class_alias | |
449 | -- should it not be?) | |
450 | ||
451 | * main.c (define_command): | |
452 | If command was previously built-in, don't preserve its | |
453 | documentation (otherwise could get error later when trying to free | |
454 | the non-malloced text of built-in documentation strings) | |
455 | ||
456 | Tue Feb 17 16:23:57 1987 Richard Mlynarik (mly at prep) | |
457 | ||
458 | * main.c (echo_command): Don't die if not given any arg. | |
459 | * main.c (cd_command): Echo new cwd if interactive. | |
460 | ||
461 | Thu Feb 12 11:22:56 1987 Richard M. Stallman (rms at prep) | |
462 | ||
463 | * stack.c (initialize): "bt" now appears in help aliases. | |
464 | ||
465 | * Version 2.0 released. | |
466 | ||
467 | Wed Feb 11 17:45:45 1987 Richard M. Stallman (rms at prep) | |
468 | ||
469 | * m68k-opcode.h: Errors corrected in several instructions | |
470 | and reordering done for assembler's sake. | |
471 | ||
472 | * m-vax.h (POP_FRAME): End with call to set_current_frame. | |
473 | ||
474 | Tue Feb 10 15:06:07 1987 Richard M. Stallman (rms at prep) | |
475 | ||
476 | * infrun.c (wait_for_inferior): Set stop_print_frame to 1 | |
477 | after checking breakpoint condition. | |
478 | ||
479 | * infcmd.c (run_stack_dummy): Save many flags. | |
480 | ||
481 | Thu Feb 5 07:12:20 1987 Richard Mlynarik (mly at prep) | |
482 | ||
483 | * source.c (directory_command): | |
484 | Step over `:' | |
485 | ||
486 | Mon Feb 2 23:40:32 1987 Richard M. Stallman (rms at prep) | |
487 | ||
488 | * infcmd.c (set_environment_command): Fix stupid error | |
489 | for case where no "=" appears in the string. | |
490 | ||
491 | Mon Jan 26 13:46:52 1987 Richard M. Stallman (rms at prep) | |
492 | ||
493 | * printcmd.c (print_frame_args): Round end-of-arg offset | |
494 | up rather than down to multiple of int. | |
495 | ||
496 | Fri Jan 23 15:11:50 1987 Richard M. Stallman (rms at prep) | |
497 | ||
498 | * source.c (directory_command): If dir is not added cause already | |
499 | present, print explanation. | |
500 | ||
501 | * infrun.c (proceed): Use read_pc (), not stop_pc, | |
502 | to get current pc to think about. stop_pc could have been | |
503 | clobbered by call_function. | |
504 | ||
505 | Fri Jan 23 15:00:55 1987 Richard Mlynarik (mly at prep) | |
506 | ||
507 | * source.c (directory_command): | |
508 | If dir is already in source_path, don't append another copy of it. | |
509 | ||
510 | Thu Jan 22 00:31:03 1987 Richard M. Stallman (rms at prep) | |
511 | ||
512 | * Version 2.0. | |
513 | ||
514 | * blockframe.c (get_pc_function_start): | |
515 | Understand misc functions. | |
516 | ||
517 | * core.c (core_file_command): | |
518 | Copy all register contents into the array `registers' | |
519 | Save a.out header of executable file in core_aouthdr. | |
520 | Print name of executable file that was running, if we know | |
521 | where to find it. | |
522 | ||
523 | * core.c (exec_file_command): | |
524 | Save a.out header in exec_aouthdr and file's mtime | |
525 | in exec_mtime. | |
526 | ||
527 | * core.c (validate_files): Check that core file's a.out hdr | |
528 | matches exec file's. | |
529 | ||
530 | * New handling of registers: | |
531 | Now all registers are fetched once when the program stops or | |
532 | when a core file is selected. Their contents are kept in | |
533 | `registers', an array of bytes. This is done by | |
534 | `fetch_inferior_registers'. `read_register', etc., just look | |
535 | there. Writing a register works through | |
536 | `store_inferior_registers' which writes one or all registers | |
537 | from `registers' back to the inferior. | |
538 | ||
539 | A register now can have a "raw" data format and a "virtual" | |
540 | data format, which may require conversion or even be different sizes. | |
541 | The conversion can be different for different registers. | |
542 | For example, the 68000 cpu registers need no conversion | |
543 | and both raw and virtual size is 4, but the 68881 floating point | |
544 | registers have raw size 12 (for extended fmt) and virtual size 8 | |
545 | (for double). Macros in the m- file such as REGISTER_BYTES, | |
546 | REGISTER_BYTE, REGISTER_{RAW,VIRTUAL}_SIZE, and | |
547 | REGISTER_CONVERT_TO_{RAW,VIRTUAL} control these things. | |
548 | ||
549 | `read_register' and `write_register' are usable only on registers | |
550 | which hold an int and need no conversion (raw fmt = virtual fmt). | |
551 | For other registers, `read_register_bytes' is used, or | |
552 | `read_relative_register_raw_bytes'. | |
553 | ||
554 | * m-sun3.h: Define the 68881 fp registers. | |
555 | Know how to recognize insns that save them. | |
556 | Make dummy frames save them. | |
557 | ||
558 | * core.c (read_register, write_registers): Functions deleted. | |
559 | * findvar.c (read_register, write_registers): New functions, | |
560 | not the same as the old ones of the same name. | |
561 | ||
562 | * findvar.c (supply_register): Function used by | |
563 | fetch_inferior_registers, etc., to install the register | |
564 | values fetched from the inferior. | |
565 | ||
566 | * findvar.c (read_register_bytes, write_register_bytes): | |
567 | Read spec'd number of bytes from the byte-array `registers'. | |
568 | ||
569 | * findvar.c (read_relative_register_raw_bytes): | |
570 | Replaces old function `read_relative_register'; accepts | |
571 | address of where to store the contents; # bytes stored is size | |
572 | of the specified register in raw format. | |
573 | ||
574 | * findvar.c (value_of_register, read_var_value): | |
575 | Convert register values and values of register variables | |
576 | from raw format to virtual format. | |
577 | ||
578 | * findvar.c (locate_var_value): Like `read_var_value' but | |
579 | returns value for variable's address. | |
580 | ||
581 | * value.h: Add new field VALUE_REGNO to each value. It holds | |
582 | register number to control virtual-to-raw conversion | |
583 | for assignments to the value. | |
584 | ||
585 | * valops.c (value_assign): Convert data from virtual to raw format | |
586 | if value came from a register variable. | |
587 | Use read_register_bytes and write_register_bytes. | |
588 | ||
589 | ||
590 | * infcmd.c (continue_command): Subtract 1 from arg | |
591 | before setting breakpoint's ignore-count. | |
592 | ||
593 | * infcmd.c (jump_command): Query if spec'd line is outside | |
594 | of the current function. | |
595 | ||
596 | * infcmd.c (finish_command): Now finish the selected frame, | |
597 | and no arg required. | |
598 | ||
599 | * infcmd.c (set_environment_command): Allow space to separate | |
600 | varname and value. | |
601 | ||
602 | * infcmd.c (registers_info): Print both raw and virtual data | |
603 | format if they differ. Allow register name as arg. | |
604 | Ask for a Newline each 16 registers. | |
605 | ||
606 | * inflow.c (kill_inferior): call mark_breakpoints_out. | |
607 | * inflow.c ({fetch,store}_inferior_registers for Sun): | |
608 | Get the fp registers and store them in right places in | |
609 | `registers'. | |
610 | * inflow.c ({read,write}_inferior_register): Deleted. | |
611 | ||
612 | * infrun.c (wait_for_inferior): Single-stepping is not considered | |
613 | to have hit a breakpoint unless the pc before the step matches the | |
614 | address of the breakpoint. Necessary on machines where | |
615 | breakpoints leave the pc incremented. | |
616 | ||
617 | If shell gets SIGSEGV, pass the signal silently to it. | |
618 | ||
619 | * m68k-pinsn.c, m68k-opcode.h: | |
620 | Add the 68881 instructions. New operand codes `F', `I', `s' | |
621 | and `k' are needed for them. New place codes `78tcik'. | |
622 | NEXTBYTE now skips a word but fetches just a byte. | |
623 | Explicit sign-extension removed from NEXTBYTE and NEXTWORD. | |
624 | NEXTSINGLE, NEXTDOUBLE, NEXTEXTEND and NEXTPACKED defined. | |
625 | Various changes to implement the new operand and place codes. | |
626 | print_index changed because displacement-size codes for | |
627 | word and long displacement were interchanged. | |
628 | ||
629 | * m68k-pinsn.c (convert_{from,to}_68881): Functions added | |
630 | to support REGISTER_CONVERT_TO_{RAW,VIRTUAL} on 68000. | |
631 | ||
632 | * main.c (main): Move around calls to setjmp. | |
633 | * main.c (define_command, document_command): | |
634 | Accept a from_tty argument instead of calling input_from_terminal_p. | |
635 | ||
636 | * printcmd.c (address_info): Print info on class and address | |
637 | of a specified symbol. For register symbols, gives name of register. | |
638 | ||
639 | * printcmd.c (print_command): Remember explicitly whether | |
640 | `make_cleanup' was called. | |
641 | ||
642 | * printcmd.c (print_frame_args): Know how arg-addresses vary with | |
643 | data type on big-endian machines. | |
644 | ||
645 | * source.c (directory_command): Detect `:' in arg and reject it. | |
646 | Free the old directory-path. Simplify things like `/.' in | |
647 | dirname. | |
648 | ||
649 | * source.c (openp): Simplify `./' in specified name. | |
650 | ||
651 | * source.c (find_source_lines): Compare source mtime against | |
652 | `exec_mtime' and warn if source is newer. | |
653 | ||
654 | * source.c (line_info): No arg means use last line listed | |
655 | or line following last one this command was used on. | |
656 | If from tty, clear out argument so Return is like `i li' without | |
657 | arg. | |
658 | ||
659 | * stack.c (frame_info): Print addresses registers are saved at. | |
660 | ||
661 | * stack.c (return_command): When asking for confirmation, give | |
662 | name of function that will be made to return. | |
663 | ||
664 | * valops.c (call_function): If function type is | |
665 | pointer-to-function, dereference it to compute return type. | |
666 | If pointer-to-object, assume function returns int. | |
667 | If char, assume that the value's address is the function address | |
668 | (because it's a misc functon). If int, the value itself is the | |
669 | function address. | |
670 | ||
671 | * dbxread.c (compare_symbols): Sort register symbols | |
672 | before all others. | |
673 | ||
674 | * eval.c (evaluate_subexp_for_address): New function like | |
675 | `evaluate_subexp' but returns a value for the address where | |
676 | the subexpression's value would be located. | |
677 | ||
678 | * eval.c (evaluate_subexp_for_sizeof): New function like | |
679 | `evaluate_subexp' but returns a value for the size of the subexp. | |
680 | ||
681 | * eval.c (evaluate_subexp_with_coercion): Like `evaluate_subexp' | |
682 | but coerces arrays to pointers (without taking the time to | |
683 | read the array contents). | |
684 | ||
685 | * eval.c (evaluate_subexp): Use the three new functions above | |
686 | when appropriate instead of calling self recursively. | |
687 | ||
688 | Wed Jan 14 17:00:03 1987 Richard Mlynarik (mly at prep) | |
689 | ||
690 | * core.c (core_file_command): | |
691 | Use correct file in calls to perror_with_name | |
692 | ||
693 | Mon Jan 12 03:34:35 1987 Richard Mlynarik (mly at prep) | |
694 | ||
695 | * breakpoint.c (map_breakpoint_numbers): | |
696 | Err if no args not supplied, otherwise would get mpv. | |
697 | ||
698 | * main.c (main): | |
699 | Command-line arg "-d dir" adds dir to source-file directory | |
700 | search-list. | |
701 | ||
702 | Sun Jan 11 19:19:52 1987 Richard Mlynarik (mly at prep) | |
703 | ||
704 | * symmisc.c (free_all_symtabs): | |
705 | Don't call free on 0. | |
706 | ||
707 | * core.c (exec_file_command): | |
708 | Use correct name in call to perror_with_name. | |
709 | Record absolute pathname. | |
710 | Don't savestring an arg to concat. | |
711 | ||
712 | * dbxread.c (symbol_file_command): | |
713 | Record absolute name of pathname opened. | |
714 | Print a message if file doesn't have a symbol-table. | |
715 | Don't savestring an arg to concat. | |
716 | ||
717 | * source.c (openp): | |
718 | Add new arg filename_opened, which if non-zero will be set to a | |
719 | malloced string of the absolute name of the actual filename opened. | |
720 | ||
721 | * breakpoint.c (clear_command): | |
722 | If from_tty or cleared more than one breakpoint at location, | |
723 | print which bpts were deleted. | |
724 | ||
725 | * breakpoint.c (break_command_1, break_command, tbreak_command): | |
726 | If from_tty, mention any other breakpoints set at same location. | |
727 | ||
728 | * symtab.c (decode_line_1): | |
729 | If no symtabs, err mentioning `symbol-file' command rather than | |
730 | saying "function foo not defined" | |
731 | ||
732 | Fri Jan 9 01:25:19 1987 Richard Mlynarik (mly at prep) | |
733 | ||
734 | * main.c (set_prompt_command): | |
735 | Add support command "set-prompt" | |
736 | ||
737 | * printcmd.c (undisplay_command): | |
738 | Fix paren error to make "undisplay <number>" work. | |
739 | ||
740 | Wed Jan 7 12:06:09 1987 Richard Mlynarik (mly at prep) | |
741 | ||
742 | * main.c (print_gdb_version, gdb_version_info): | |
743 | Add command "info version" to report the version | |
744 | of gdb for use in bug reports. | |
745 | ||
746 | * infcmd.c: | |
747 | Ensure inferior_args always points to string starting with a space | |
748 | and is never 0. | |
749 | ||
750 | * printcmd.c: (clear_displays, undisplay_command): | |
751 | Fix bug in clear_displays which led to looping. | |
752 | Make undisplay_command call it instead of wrong-looking code which | |
753 | looked at (display->number == 0) instead of (display == 0) to | |
754 | determine if it were at the end of the chain. | |
755 | ||
756 | Mon Dec 15 20:57:06 1986 Richard M. Stallman (rms at prep) | |
757 | ||
758 | * utils.c (query): Don't ignore a second line if given a null line. | |
759 | ||
760 | * infrun.c (normal_stop): Print "bug in shell" message | |
761 | only for a segmentation fault. | |
762 | ||
763 | * main.c (main): Read init file from home directory if any, | |
764 | before init file from current directory. | |
765 | ||
766 | Thu Dec 4 09:05:35 1986 Richard M. Stallman (rms at prep) | |
767 | ||
768 | * source.c (select_source_symtab): Don't ref thru arg if null. | |
769 | ||
770 | * m68k.opcode.h: For trap instruction code, use type T. | |
771 | * m68k-pinsn.c (print_insn_arg): Recognize new arg-code T | |
772 | and print the trap vector properly. | |
773 | ||
774 | * m-sun[23].h (FRAME_FIND_SAVED_REGS): Recognize a movl REG,-(sp) | |
775 | as a way to save one register. Recognize clrw -(sp); movw -(sp) | |
776 | after saving regs as a way to save the PS register. Adjust the | |
777 | way to find the starting pc of a stack dummy frame for the fact | |
778 | that these frames now save the PS. | |
779 | ||
780 | * m-sun[23].h (POP_FRAME): Restore PS register if frame saved it. | |
781 | ||
782 | * m-sun[23].h (PUSH_DUMMY_FRAME): Push the old PS register. | |
783 | ||
784 | * m-sun[23].h (CALL_DUMMY, etc.): Fix erroneous binary code for | |
785 | the addl #nnn,sp instruction. Insert clrw -(sp); movw -(sp) | |
786 | to indicate that the PS has been saved. | |
787 | ||
788 | * infrun.c (wait_for_inferior): If inferior exits, call | |
789 | mark_breakpoints_out so it works to delete breakpoints afterward. | |
790 | ||
791 | * infrun.c (normal_stop): After popping a stack dummy frame, | |
792 | select the frame that we get to. | |
793 | ||
794 | * dbxread.c (process_one_symbol): Store new `depth' field | |
795 | in all context_stack elements created. For N_RBRAC, test | |
796 | that depth matches that in the context_stack; if not, error. | |
797 | ||
798 | * dbxread.c (all callers of error): Make all error messages | |
799 | start "Invalid symbol data: " and end with value of symnum. | |
800 | Also change a few aborts to errors. | |
801 | ||
802 | Mon Dec 1 20:20:37 1986 Richard M. Stallman (rms at prep) | |
803 | ||
804 | * version.c: Version 1.11. | |
805 | ||
806 | * breakpoint.c (condition_command): If no condition spec'd, | |
807 | print "breakpoint N now unconditional". | |
808 | ||
809 | * breakpoint.c (commands_command): Give different error messages | |
810 | for cases of args not containing a breakpoint number | |
811 | and args containing anything after the breakpoint number. | |
812 | ||
813 | * commands.c (lookup_command): Don't store a zero in *p | |
814 | if have an undefined subcommand that is not an error. | |
815 | ||
816 | * commands.c (lookup_command): For recursive call, | |
817 | pass subcommand list properly. Was passing the address | |
818 | of the word containing the list. | |
819 | ||
820 | * core.c ({core,exec}_file_name): If no arg, tell user | |
821 | what the effect is. | |
822 | ||
823 | * dbxread.c (define_symbol): Accept class code 'v' | |
824 | for static variable within a function. | |
825 | ||
826 | * dbxread.c (read_type): Now allow any plain number or | |
827 | pair of numbers in parens, with no code letter. This means | |
828 | define new type same as type with specified number, or define | |
829 | it as void if specified number's type is not yet mentioned. | |
830 | ||
831 | * m68k-pinsn.c (print_insn_arg): Case of general operand | |
832 | in byte insn that happened to be immediate used wrong arg-size. | |
833 | ||
834 | * printcmd.c (set_next_address): Set next_address from arg | |
835 | and also set value of `$_' from it. | |
836 | ||
837 | * printcmd.c (do_examine): Save address in last_examine_address | |
838 | and value fetched to examine in last_examine_value. | |
839 | ||
840 | * printcmd.c (x_command): Copy last_examine_{address,value} | |
841 | into values of `$_' and `$__'. Change `x' documentation string. | |
842 | ||
843 | * source.c (directory_command): Query when no args now says | |
844 | what new value it wants use for the path. | |
845 | ||
846 | * source.c (list_command): Don't die in cases like `list ,+30'. | |
847 | ||
848 | * source.c (line_info): Call `set_next_address' to make `x' | |
849 | display the text of the line. Change `info list' doc string. | |
850 | ||
851 | Sat Nov 29 07:59:29 1986 Richard M. Stallman (rms at prep) | |
852 | ||
853 | * printcmd.c (undisplay_command): If get no arg, | |
854 | rather than crashing, query and then delete undisplay everything. | |
855 | ||
856 | Fri Nov 28 15:43:52 1986 Richard M. Stallman (rms at prep) | |
857 | ||
858 | * dbxread.c (process_one_symbol): If N_LBRAC sym | |
859 | has a greater value that N_RBRAC, ignore the | |
860 | N_LBRAC value and give the block zero length. | |
861 | ||
862 | Tue Nov 25 03:10:12 1986 Richard M. Stallman (rms at prep) | |
863 | ||
864 | * dbxread.c (process_one_symbol): Ignore N_NSYMS symbols | |
865 | that appear in Ultrix. | |
866 | ||
867 | Sat Nov 22 22:49:06 1986 Richard M. Stallman (rms at prep) | |
868 | ||
869 | * version.c: version 1.10. | |
870 | ||
871 | * valprint.c (type_print*): | |
872 | SHOW < 0 now means abbreviate struct/union members | |
873 | or enum values with `...'. SHOW now decremented on | |
874 | each recursion in type_print_base. Several places | |
875 | that used to check !show now check show <= 0. | |
876 | ||
877 | * valprint.c (val_print): Pass -1 for SHOW to type_print | |
878 | when printing typename inside parens or braces. | |
879 | ||
880 | * printcmd.c (print_command): If no value specified to print, | |
881 | print the value of $. | |
882 | ||
883 | * expression.h, expread.y, eval.c, expprint.c: | |
884 | OP_MEMVAL renamed UNOP_MEMVAL | |
885 | and now allows any expression, not just an integer address. | |
886 | It now has same format as UNOP_CAST and works almost like it. | |
887 | Each place that referred to it has been rewritten | |
888 | starting with a copy of the code that handles UNOP_CAST. | |
889 | Doc for `print' command changed for this. | |
890 | ||
891 | * source.c (init_source_path): | |
892 | Free and zero out any line_charpos's saved in source symtabs. | |
893 | ||
894 | * breakpoint.c (condition_command): | |
895 | Parse the condition in the environment of the code where the | |
896 | breakpoint is set. This requires finding the breakpoint | |
897 | before parsing, so code is rearranged. | |
898 | ||
899 | * dbxread.c (dbx_alloc_type): | |
900 | New function given typenums returns the type for those typenums | |
901 | or allocates a new, empty type for those typenums and returns it. | |
902 | ||
903 | * symtab.c (smash_type_to_{pointer,function}): | |
904 | New functions modify an already-allocated type object | |
905 | to be a pointer to or function returning some given type. | |
906 | ||
907 | * dbxread.c (read_type): Uses dbx_alloc_type in many cases. | |
908 | Reading a pointer or function type now works by doing that, | |
909 | then reading the value type or type pointed to, then smashing | |
910 | it into the type already allocated. This makes some fwd refs win. | |
911 | Likewise for structs and unions. | |
912 | ||
913 | * dbxread.c (read_struct_type): Now receives the type object | |
914 | as args. Used to get typenums as args and look up the type | |
915 | itself. | |
916 | ||
917 | * dbxread.c (symbol_file_command): | |
918 | At very end, clear out any type name that `char *' has received. | |
919 | ||
920 | Thu Nov 20 16:43:53 1986 Richard M. Stallman (rms at prep) | |
921 | ||
922 | * m-sun2.h, m-sun3.h (FIND_FRAME_SAVED_REGS): | |
923 | Was incrementing address even for regs not saved. | |
924 | ||
925 | Sun Nov 16 14:59:07 1986 Richard M. Stallman (rms at prep) | |
926 | ||
927 | * values.c (value_field): Was adding in byte offset | |
928 | before calling unpack_field_as_long, which itself | |
929 | adds in the offset. Now pass addr of start of structure. | |
930 | ||
931 | * infrun.c (normal_stop): Clean up inferior_pid conditionals: | |
932 | just return early if no inferior. | |
933 | ||
934 | Thu Nov 13 15:45:50 1986 Richard M. Stallman (rms at prep) | |
935 | ||
936 | * dbxread.c (struct header_file): add new field .instance | |
937 | to distinguish the various entries for one header file. | |
938 | ||
939 | * dbxread.c (process_one_symbol): Use the `value' of | |
940 | a N_BINCL or N_EXCL as the instance code for the header file. | |
941 | ||
942 | * dbxread.c (add_{new,old}_header_file): | |
943 | Accept an instance code as arg and treat it as if it were | |
944 | part of the file name for distinguishing and finding entries. | |
945 | ||
946 | * dbxread.c (add_new_header_file, read_type): | |
947 | Turn off the header_file_prev_index feature with #if 0. | |
948 | ||
949 | * values.c (unpack_field_as_long, modify_field): | |
950 | Run-time test to distinguish big and little endian machines | |
951 | and do shifting accordingly. | |
952 | ||
953 | Tue Nov 11 00:31:18 1986 Richard M. Stallman (rms at prep) | |
954 | ||
955 | * version.c: version 1.9. | |
956 | ||
957 | * breakpoint.c (delete_command): | |
958 | Don't query if 2nd arg is zero. | |
959 | ||
960 | * breakpoint.c (clear_breakpoints): | |
961 | Pass 2nd arg of zero to delete_command. | |
962 | ||
963 | Sat Nov 8 23:29:19 1986 Richard M. Stallman (rms at prep) | |
964 | ||
965 | * breakpoint.c (delete_command): | |
966 | Ask for confirmation when used with no arg (delete all). | |
967 | ||
968 | Fri Nov 7 11:23:09 1986 Richard M. Stallman (rms at prep) | |
969 | ||
970 | * infrun.c (start_inferior, wait_for_inferior): | |
971 | Eliminate `stop_in_shell' which was not being maintained right. | |
972 | New variable `running_in_shell' is set to 1 or 0 when the | |
973 | expected SIGTRAPs happen, and is simply examined at other times. | |
974 | ||
975 | * infrun.c (wait_for_inferior): | |
976 | If get SIGSEGV with running_in_shell == 1, it is sh | |
977 | allocating memory. Pass the signal silently to the shell. | |
978 | ||
979 | * core.c (exec_file_command): | |
980 | data_{start,end} are adjusted unconditionally when an | |
981 | exec file is opened, so closing counter-adjustment is | |
982 | now unconditional as well. | |
983 | ||
984 | * printcmd.c (x_command): | |
985 | Don't erase the expression from the calling args | |
986 | if cllaed noninteractively (used to be clobbering | |
987 | definitions of user-defined commands). | |
988 | ||
989 | * source.c (list_command): likewise. | |
990 | ||
991 | Wed Nov 5 09:41:00 1986 Richard M. Stallman (rms at prep) | |
992 | ||
993 | * Makefile: New variable OBSTACK1 that people can use | |
994 | to make obstack.o a dependency of gdb. | |
995 | ||
996 | * breakpoint.c (initialize): | |
997 | Define new aliases "br", "bre" and "brea" for "break". | |
998 | ||
999 | Sun Nov 2 21:16:06 1986 Richard Mlynarik (mly at prep) | |
1000 | ||
1001 | * symmisc.c (read_symsegs): | |
1002 | Add an extra protection against invalid symbol-file | |
1003 | ||
1004 | * m-vax.h: | |
1005 | Set KERNEL_U_ADDR and STACK_END_ADDR non-4.2-specifically | |
1006 | ||
1007 | Tue Oct 21 13:34:14 1986 Richard Mlynarik (mly at prep) | |
1008 | ||
1009 | * breakpoints.c (initialize): | |
1010 | Delet reference to non-existent command "tenable" from doc of "enable" | |
1011 | ||
1012 | Tue Oct 14 19:58:27 1986 Richard Mlynarik (mly at prep) | |
1013 | ||
1014 | * printcmd.c (display_command, undisplay_command): | |
1015 | * infcmd.c (run_command): | |
1016 | Call dont_repeat. | |
1017 | ||
1018 | \f | |
1019 | Local Variables: | |
1020 | mode: indented-text | |
1021 | eval: (auto-fill-mode 1) | |
1022 | left-margin: 8 | |
1023 | fill-column: 74 | |
1024 | version-control: never | |
1025 | End: |