2005-01-15 Andrew Cagney <cagney@gnu.org>
[external/binutils.git] / gdb / ChangeLog
1 2005-01-15  Andrew Cagney  <cagney@gnu.org>
2
3         * exceptions.c (do_captured_command)
4         (struct captured_command_args): Delete.
5         (catch_command_errors): Simplify by inlining call to catch_errors.
6
7         * exceptions.c (struct catcher): Delete field print_message.
8         (catcher_init): Delete print_message parameter.
9         (catch_exception, catch_exceptions_with_msg, catch_errors): Update.
10         (throw_it): Delete prefix parameter.
11         (throw_verror, throw_vfatal, throw_error): Update.
12
13 2005-01-14  Andrew Cagney  <cagney@gnu.org>
14
15         * exceptions.c (print_and_throw): Delete, replaced by throw_it.
16         (throw_reason): Leave the exception's message field blank.
17         (throw_it): New function, create the exception and throw it.
18         (throw_verror, throw_vfatal, throw_error): Call throw_it.
19         (print_any_exception): New function.
20         (catch_errors, catch_exceptions_with_msg): Call
21         print_any_exception.
22         (throw_exception): Move code calling annotate_error and
23         annotate_quit from here ...
24         (print_exception): ... to here.
25
26         * exceptions.c (exception_fprintf, exception_print): Move printing
27         of \n from here ...
28         (print_exception): ... to here.
29         (print_flush): New function.
30         (exception_print, exception_fprintf): Replace duplicated flush and
31         wrap code with call to print_flush.
32         (print_and_throw): Simplify, by using xstrvprintf, print_flush,
33         and print_exception.
34         (do_write): Delete.
35
36         * remote-sds.c (interrupt_query): Call throw_reason instead of
37         throw_exception.
38         * remote-mips.c (mips_error, mips_kill): Ditto
39         * ocd.c (interrupt_query): Ditto.
40         * nto-procfs.c (interrupt_query): Ditto.
41         * monitor.c (monitor_interrupt_query): Ditto.
42
43 2005-01-14  Jeff Johnston  <jjohnstn@redhat.com>
44
45         * ia64-linux-nat.c: Include "ia64-tdep.h" to get register definitions.
46
47 2005-01-14  Andrew Cagney  <cagney@gnu.org>
48
49         * exceptions.h (catch_exceptions): Delete errstring parameter.
50         (catch_exceptions_with_msg): Ditto.
51         * exceptions.c (catch_exceptions_with_msg): Update.
52         (catch_exceptions): Update.
53         * symfile-mem.c (add_vsyscall_page): Update.
54         * frame.c (get_current_frame): Update.
55         * wrapper.c (gdb_value_struct_elt): Update.
56         * exceptions.c (catch_exceptions): Update.
57         * thread.c (gdb_list_thread_ids, gdb_thread_select): Update.
58         * breakpoint.c (gdb_breakpoint_query, gdb_breakpoint): Update.
59         * remote-fileio.c (remote_fileio_request): Update.
60         
61         * exceptions.h (exception_fprintf): Declare.
62         (exception_print): Drop pre_print parameter.
63         * mi/mi-main.c (mi_execute_command): Update exception_print call.
64         * cli/cli-interp.c (safe_execute_command): Update exception_print
65         call.
66         * remote.c (remote_open_1): Instead of passing an error prefix to
67         catch_exceptions, use catch_exceptions and exception_fprintf.
68         (remote_start_remote): Change return type to void.
69         * breakpoint.c (insert_bp_location): Instead of passing an error
70         prefix to catch_exceptions, use catch_exceptions and
71         exception_fprintf.
72         (insert_catchpoint): Change return type to void.
73         (break_command_1): Update exception_print call.
74         * exceptions.c (exception_fprintf): New function.
75         (print_exception): New function.
76         (exception_print): Use print_exception.
77         
78         * utils.c (error_output_message): Delete function.
79         * defs.h (error_output_message): Delete declaration.
80
81         * linespec.c (symtab_from_filename, decode_variable): Use
82         throw_error instead of error_silent.
83         * breakpoint.c (do_captured_parse_breakpoint): Change return type
84         to void.
85         (break_command_1): Use catch_exception and check the error return
86         status.
87         * exceptions.c (throw_error): New function.
88         (throw_vsilent): Delete function.
89         * exceptions.h (throw_error): Declare.
90         (throw_vsilent): Delete declaration.
91         * utils.c (error_silent): Delete function.
92         * defs.h (error_silent): Delete declaration.
93         
94         * mi/mi-main.c (mi_execute_command): Print the exception.
95         * cli/cli-interp.c (safe_execute_command): Print the exception.
96         * exceptions.h (exception_print): Declare.
97         * exceptions.c (struct catcher): Add field print_message.
98         (catcher_init): Add parameter print_message, store in the catcher
99         struct.
100         (print_and_throw): Only print the message when print_message.
101         (catch_exceptions_with_msg, catch_errors): Pass print_message=1 to
102         catcher_init.
103         (catch_exception): Pass print_message=0 to catcher_init.
104
105         * varobj.c (varobj_create): Add missing \n.
106
107 2005-01-13  Michael Snyder  <msnyder@redhat.com>
108
109         * cli/cli-decode.h: Whitespace tweaks.
110         * wince.c: Whitespace tweaks.
111         * uw-thread.c: Whitespace tweaks.
112         * utils.c: Whitespace tweaks.
113         * tracepoint.[ch]: Whitespace tweaks.
114         * solist.h: Whitespace tweaks.
115
116 2005-01-13  Andrew Cagney  <cagney@gnu.org>
117
118         * exceptions.h (struct exception): Make message const.
119         * mi/mi-main.c (mi_execute_command): Pass result.message directly
120         to fputstr_unfiltered.
121
122 2005-01-13  Michael Snyder  <msnyder@redhat.com>
123
124         * stack.c: Whitespace tweaks.
125         * somsolib.[ch]: Whitespace tweaks.
126         * solib-aix.c: Whitespace tweaks.
127         * solib.c: Whitespace tweaks.
128         * solib-frv.c: Whitespace tweaks.
129         * solib.h: Whitespace tweaks.
130         * solib-irix.c: Whitespace tweaks.
131         * solib-som.c: Whitespace tweaks.
132         * solib-sunos.c: Whitespace tweaks.
133         * solib-svr4.[ch]: Whitespace tweaks.
134         * ser-tcp.c: Whitespace tweaks.
135         * ser-unix.c: Whitespace tweaks.
136         * serial.h: Whitespace tweaks.
137         * scm-valprint.c: Whitespace tweaks.
138         * rs6000-tdep.c: Whitespace tweaks.
139         * rs6000-nat.c: Whitespace tweaks.
140         * remote.c: Whitespace tweaks.
141
142 2005-01-13  Andrew Cagney  <cagney@gnu.org>
143
144         * defs.h (error_last_message, error_init): Delete declaration.
145         * utils.c (fatal, vfatal): Call throw_vfatal.
146         (error, verror): Call throw_verror;
147         (do_write, error_stream_1): Delete function.
148         (error_stream): Simplify, call error.
149         (error_last_message, error_init, gdb_lasterr): Delete.
150         (error_silent): Simplify, call throw_vsilent.
151         * mi/mi-interp.c (mi_cmd_interpreter_exec): Dup the message.
152         * main.c (captured_main): Delete call to error_init.
153         * exceptions.c (throw_verror, throw_verror)
154         (throw_vsilent): New functions.
155         (do_write, print_and_throw): New functions.
156         (last_message): New global.
157         (throw_reason): Replace error_last_message with last_message.
158         (catch_exceptions_with_msg): Dup the message.
159         * exceptions.h (throw_verror, throw_vfatal, throw_vsilent):
160         Declare.
161
162 2005-01-13  Michael Snyder  <msnyder@redhat.com>
163
164         * remote-st.c: Whitespace tweaks.
165         * remote-sim.c: Whitespace tweaks.
166         * remote-mips.c: Whitespace tweaks.
167         * pa64solib.[ch]: Whitespace tweaks.
168         * mdebugread.c: Whitespace tweaks.
169         * main.c: Whitespace tweaks.
170         * interps.c: Whitespace tweaks.
171         * infrun.c: Whitespace tweaks.
172         * infcmd.c: Whitespace tweaks.
173         * hpux-thread.c: Whitespace tweaks.
174         * hppa-hpux-tdep.c: Whitespace tweaks.
175         * gdbcore.h: Whitespace tweaks.
176         * gdbcmd.h: Whitespace tweaks.
177         * gdb-events[.c, .h, .sh]: Whitespace tweaks.
178         * corefile.c: Whitespace tweaks.
179         * completer.c: Whitespace tweaks.
180         * coff-solib.c: Whitespace tweaks.
181         * coff-solib.h: Whitespace tweaks.
182         * cli-out.c: Whitespace tweaks.
183         * breakpoint.c: Whitespace tweaks.
184         * cli/cli-interp.c: Tweak comments, per coding standard.
185
186 2005-01-13  Andrew Cagney  <cagney@gnu.org>
187
188         * breakpoint.c (gdb_breakpoint_query): Update, use
189         catch_exceptions_with_msg.
190         (do_captured_breakpoint): Add uiout parameter.
191         (gdb_breakpoint): Update, use catch_exceptions_with_msg.
192         * mi/mi-main.c (mi_cmd_thread_select): Pass mi_error_message to
193         gdb_thread_select.  Return MI_CMD_ERROR instead of
194         MI_CMD_CAUGHT_ERROR.
195         (mi_cmd_thread_list_ids): Ditto for gdb_list_thread_ids.
196         (enum captured_mi_execute_command_actions): Delete
197         EXECUTE_COMMAND_DISPLAY_ERROR.
198         (captured_mi_execute_command): Delete code handling
199         MI_CMD_CAUGHT_ERROR.
200         (mi_execute_command): Don't check for
201         EXECUTE_COMMAND_DISPLAY_ERROR.
202         * mi/mi-cmd-break.c (breakpoint_notify): Update call to
203         gdb_breakpoint_query.
204         (mi_cmd_break_insert): Pass mi_error_message to gdb_breakpoint.
205         * mi/mi-cmds.h (enum mi_cmd_result): Delete MI_CMD_CAUGHT_ERROR.
206         * gdb.h (gdb_thread_select, gdb_list_thread_ids)
207         (gdb_breakpoint, gdb_breakpoint_query): Add error_message
208         parameter.
209         * thread.c (thread_command): Update call.
210         (gdb_thread_select, gdb_list_thread_ids): Update, call
211         catch_exceptions_with_msg.
212
213         * mi/mi-main.c (mi_execute_command): Use catch_exception,
214         eliminate call to error_last_message.
215         (captured_mi_execute_command): Change return type to void.
216
217 2005-01-12  Andrew Cagney  <cagney@gnu.org>
218
219         * exceptions.c (exception_none): New variable.
220         * Makefile.in: Update dependencies.
221         * interps.c: Include "exceptions.h".
222         (interpreter_exec_cmd, interp_exec): Update to return "struct
223         exception"
224         * exceptions.h (no_exception): Declare.
225         * tui/tui-interp.c (tui_exec): Update to return "struct exception"
226         * mi/mi-interp.c: Include "exceptions.h".
227         (mi_cmd_interpreter_exec, mi_interpreter_exec): Update to return
228         'struct exception".
229         * cli/cli-interp.c (cli_interpreter_exec, safe_execute_command) 
230         (do_captured_execute_command): Update to use catch_exception.
231         * interps.h: Include "exceptions.h".
232         (interp_exec_ftype, interp_exec): Return "struct exception".
233
234         * exceptions.h (throw_reason): Rename throw_exception.
235         (enum errors, struct exception): Define.
236         (catch_exception_ftype): Define.
237         (catch_exception, throw_exception): Declare.
238         * exceptions.c (throw_exception): Rewrite.
239         (throw_reason): New function.
240         (struct catcher, catcher_state_machine): Replace "reason" with
241         "exception", delete "gdberrmsg".
242         (catch_exception): New function.
243         (catcher_init): Replace "gdberrmsg" parameter with "exception".
244         (catch_errors, catch_exceptions_with_msg): Re-implement passing
245         exception to catcher_init.
246         * utils.c (error_silent, error_stream_1): Use throw_reason.
247         (internal_verror, quit): Ditto.
248         * breakpoint.c (insert_catchpoint, break_command_1): Ditto.
249         * remote-fileio.c (remote_fileio_ctrl_c_signal_handler): Ditto.
250         * remote.c (remote_open_1, interrupt_query): Ditto.
251
252 2005-01-12  Mark Kettenis  <kettenis@gnu.org>
253
254         * i386fbsd-tdep.c: Update copyright year.  Include "gdbcore.h",
255         "regcache.h", "gdb_assert.h" and "bsd-uthread.h".
256         (i386fbsd_jmp_buf_reg_offset): New variable.
257         (i386fbsd_supply_uthread, i386fbsd_collect_uthread): New
258         functions.
259         (i386fbsdaout_init_abi): Set supply_uthread and collect_uthread.
260         * Makefile.in (i386fbsd-tdep.o): Update dependency.
261         * config/i386/fbsd.mt (TDEPFILES): Add bsd-uthread.o.
262
263         * bsd-uthread.h: New file.
264         * bsd-uthread.c: New file.
265         * Makefile.in (bsd_uthread_h): New variable.
266         (ALLDEPFILES): Add bsd-uthread.c.
267         (bsd-uthread.o): New dependency.
268
269         * solib.h Update copyright year.
270         (struct so_list): Forward declaration.
271         (solib_read_symbols): New prototype.
272         * solib.c (solib_read_symbols): New function.
273         (solib_add): Call solib_read_symbols to read in symbols.
274         (update_solib_list): Call observer_notify_solib_loaded.
275
276         * i386bsd-nat.c: Update copyright year.  Don't include
277         <sys/param.h> and <sys/user.h>.
278         (register_u_addr, kernel_u_size): Remove functions.
279         * config/i386/obsd.mh (NAT_FILE): Remove.
280         * config/i386/obsdaout.mh (NAT_FILE): Set to solib.h.
281         * config/i386/nm-obsd.h: Remove file.
282
283 2005-01-12  Andrew Cagney  <cagney@gnu.org>
284
285         * exceptions.c: Include "gdb_string.h".
286         (enum catcher_state, struct catcher): Define.
287         (current_catcher): New global, replaces catch_return;
288         (catch_return): Delete.
289         (throw_exception): Use current_catcher->buf;
290         (catcher_init, catcher_pop, catcher_state_machine): New functions.
291         (catcher): Delete.
292         (struct catch_errors_args): Delete.
293         (do_catch_errors): Delete.
294         (catch_exceptions): Replace body with call to
295         catch_exceptions_with_msg.
296         (catcher): Delete.
297         (catch_exceptions_with_msg, catch_errors): Re-implement using
298         catcher_state_machine.
299
300         * exceptions.h (enum return_reason, RETURN_MASK)
301         (RETURN_MASK_QUIT, RETURN_MASK_ERROR, RETURN_MASK_ALL)
302         (return_mask, throw_exception, catch_exceptions_ftype)
303         (catch_exceptions_with_msg, catch_errors_ftype, catch_errors)
304         (catch_command_errors_ftype, catch_command_errors): Move to
305         exceptions.h.
306         * exceptions.c, exceptions.h: New files.
307         * top.c: Do not include <setjmp.h>.
308         (SIGJMP_BUF, SIGSETJMP, SIGLONGJMP, catch_return)
309         (throw_exception, catcher, catch_exceptions)
310         (catch_exceptions_with_msg, struct catch_errors_args)
311         (do_catch_errors, catch_errors, struct captured_command_args)
312         (do_captured_command, catch_command_errors): Move to exceptions.c.
313         * wrapper.c, wince.c, win32-nat.c, utils.c: Include "exceptions.h".
314         * tui/tui-interp.c, top.c, thread.c, symmisc.c: Ditto.
315         * symfile-mem.c, stack.c, solib.c, rs6000-nat.c: Ditto.
316         * remote-sds.c, remote-mips.c, remote-fileio.c: Ditto.
317         * remote-e7000.c, objc-lang.c, ocd.c: Ditto.
318         * remote.c, nto-procfs.c, monitor.c, mi/mi-main.c: Ditto.
319         * main.c, m32r-rom.c, infrun.c, inf-loop.c: Ditto.
320         * hppa-hpux-tdep.c, frame.c, event-top.c, event-loop.c: Ditto.
321         * corelow.c, corefile.c, cli/cli-interp.c, breakpoint.c: Ditto.
322         * ada-valprint.c, ada-lang.c: Ditto.
323         * Makefile.in (HFILES_NO_SRCDIR, COMMON_OBS): Add exceptions.h and
324         exceptions.o.  Update all dependencies.
325         
326 2005-01-11  Mark Kettenis  <kettenis@gnu.org>
327
328         * config/i386/nm-fbsd.h: Update copyright year.
329         Don't include "config/nm-bsd.h".
330         (KERNEL_U_SIZE): Remove macro.
331         (kernel_u_size): Remove prototype.
332
333         * config/vax/nbsdaout.mh (NAT_FILE): Remove.
334         * config/vax/nm-nbsdaout.h: Remove file.
335
336 2005-01-10  Elena Zannoni  <ezannoni@redhat.com>
337
338         * MAINTAINERS: Remove self from sh/sh64 maintainership.
339
340 2005-01-10  Andrew Cagney  <cagney@gnu.org>
341
342         * MAINTAINERS: List Andrew Cagney and Kevin Buettner as can commit
343         changes to PowerPC, and Andrew Cagney as lead PowerPC GNU/Linux
344         maintainer.
345
346         * MAINTAINERS: Hans-Peter Nilsson and Orjan Friberg can commit
347         changes to CRIS.
348
349         * MAINTAINERS: Remove "Maintenance Only".  Spell out that CAN
350         COMMIT means can approve).
351
352 2005-01-10  Mark Kettenis  <kettenis@gnu.org>
353
354         * vax-nat.c: Update copyright year.  Include "inf-ptrace.h".
355         (vax_register_u_offset): Make statuc.
356         (_initialize_vax_nat): Construct and add target vector.
357         * config/vax/vax.mh (NATDEPFILES): Remove infptrace.o and
358         inftarg.o.  Add inf-ptrace.o.
359         * Makefile.in (vax-nat.o): Update dependencies.
360
361         * inf-ptrace.h: Update copyright year.  Sync comment with
362         inf-ptrace.c.
363         (inf_ptrace_trad_target): New prototype.
364         * inf-ptrace.c: Update copyright year.  Include "regcache.h" and
365         "gdb_assert.h"
366         (inf_ptrace_target): Add comment.
367         (inf_ptrace+register_u_offset): New variable.
368         (inf_ptrace_fetch_register, inf_ptrace_fetch_registers)
369         (inf_ptrace_store_register, inf_ptrace_store_registers)
370         (inf_ptrace_trad_target): New functions.
371         * Makefile.in (inf-ptrace.o): Update dependencies.
372
373 2005-01-09  Mark Kettenis  <kettenis@gnu.org>
374
375         * configure.ac: Provide prerequisite headers when checking
376         <link.h>, <sys/proc.h> and <sys/user.h>.
377         * configure: Regenerate.
378
379 2005-01-08  Mark Kettenis  <kettenis@gnu.org>
380
381         * config/powerpc/obsd.mt (DEPRECATED_TM_FILE): Set to
382         tm-ppc-eabi.h instead of the removed tm-nbsd.h.
383
384 2005-01-07  Mark Kettenis  <kettenis@gnu.org>
385
386         * config/ia64/tm-linux.h: Tweak comment.  Update copyright year.
387         Don't include "tm-ia64.h".
388         * config/ia64/ia64.mt (DEPRECATED_TM_FILE): Remove.
389         * config/ia64/tm-ia64.h: Remove.  Move contents ...
390         * ia64-tdep.h: ... here.  Update copyright year.
391
392 2005-01-07  Andrew Cagney  <cagney@gnu.org>
393
394         * configure.ac: Rename configure.in, require autoconf 2.59.
395         * configure: Re-generate.
396
397         * configure.tgt: Disable arm*-*-*, thumb*-*-*, strongarm*-*-*,
398         xscale-*-* and i[34567]86-*-netware* code adding rdi-share or nlm
399         to configdirs.
400
401         * configure.in: Replace configdirs with multiple references to
402         AC_CONFIG_SUBDIRS.
403         * configure: Re-generate.
404         
405 2005-01-05  Andreas Schwab  <schwab@suse.de>
406
407         * ia64-tdep.c: Include "osabi.h".
408         (native_find_global_pointer): Delete.
409         (ia64_find_global_pointer): Renamed from
410         generic_elf_find_global_pointer.
411         (FIND_GLOBAL_POINTER): Delete.  Change all users to call
412         ia64_find_global_pointer instead.
413         (ia64_gdbarch_init): Call gdbarch_init_osabi.  Remove references
414         to ia64_linux_sigcontext_register_address and
415         ia64_linux_write_pc.  Don't set tdep->find_global_pointer.
416         (_initialize_ia64_tdep): Call gdbarch_register instead of
417         deprecated register_gdbarch_init.
418         (struct gdbarch_tdep): Remove find_global_pointer field and move
419         to ...
420         * ia64-tdep.h (struct gdbarch_tdep): ... here.
421         (ia64_linux_sigcontext_register_address): Remove declaration.
422         (ia64_linux_getunwind_table): Likewise.
423         (ia64_linux_write_pc): Likewise.
424         * ia64-linux-tdep.c: Include "osabi.h".
425         (ia64_linux_sigcontext_register_address): Make static.
426         (ia64_linux_write_pc): Likewise.
427         (ia64_linux_init_abi): New.
428         (_initialize_ia64_linux_tdep): New.
429         * Makefile.in (ia64-tdep.o, ia64-linux-tdep.o): Depend on
430         $(osabi_h).
431
432 2005-01-05  Kevin Buettner  <kevinb@redhat.com>
433
434         * ia64-tdep.c (ia64_gdbarch_init): Eliminate dependency on 
435         functions in ia64-aix-tdep.c.
436         * ia64-tdep.h (ia64_aix_sigcontext_register_address): Remove
437         function defined in ia64-aix-tdep.c.
438         * ia64-aix-tdep.c: Remove file.
439         * config/ia64/linux.mt (TDEPFILES): Remove ia64-aix-tdep.o from
440         this list.
441         * Makefile.in (ia64-aix-tdep.o): Delete.
442
443 2005-01-05  Baurjan Ismagulov  <ibr@ata.cs.hun.edu.tr>
444
445         Committed by Andrew Cagney.
446         * ada-valprint.c, aix-thread.c, alpha-nat.c: I18n markup.
447         * alphabsd-nat.c, alphanbsd-tdep.c, amd64-linux-nat.c: I18n markup.
448         * amd64-tdep.c, amd64bsd-nat.c, amd64fbsd-nat.c: I18n markup.
449         * arch-utils.c, arm-linux-nat.c, arm-tdep.c: I18n markup.
450         * armnbsd-nat.c, armnbsd-tdep.c, auxv.c, avr-tdep.c: I18n markup.
451         * aix-thread.c (_initialize_aix_thread): Get rid of the
452         deprecated_add_show_from_set call.
453         * alpha-tdep.c (_initialize_alpha_tdep): Ditto.
454         * arm-tdep.c (_initialize_arm_tdep): Ditto.
455         * command.h (add_setshow_enum_cmd): Add arguments for returning
456         new list elements.
457         * cli/cli-decode.c (add_setshow_enum_cmd): Ditto.
458         * mips-tdep.c (_initialize_mips_tdep): Modify calls to
459         add_setshow_enum_cmd.
460
461 2005-01-04  Mark Kettenis  <kettenis@gnu.org>
462
463         * configure.host (ia64-*-aix*): Remove.
464         * configure.tgt (ia64-*-aix*): Remove.
465         * config/ia64/aix.mh: Remove file.
466         * config/ia64/aix.mt: Remove file.
467         * config/ia64/tm-aix.h: Remove file.
468         * ia64-aix-nat.c: Remove file.
469         * Makefile.in (ia64-aix-nat.o): Remove dependency.
470
471         * config/m88k/obsd.mh (NATDEPFILES): Really remove inf-child.o.
472         Add back inf-ptrace.o.
473
474 2005-01-04  Andrew Cagney  <cagney@gnu.org>
475
476         * version.in: Change format from 6.3.50_2005-01-04-cvs to
477         6.3.50.20050104-cvs.
478
479 2005-01-04  Andreas Schwab  <schwab@suse.de>
480
481         * breakpoint.c (break_command_1): Always free err_msg before
482         returning when an exception was caught.
483
484 2005-01-01  Joel Brobecker  <brobecker@gnat.com>
485
486         * hppa-tdep.c (prologue_inst_adjust_sp): Fix small confusion
487         in register number for addil instruction.
488
489 For older changes see ChangeLog-2004.
490 \f
491 Local Variables:
492 mode: change-log
493 left-margin: 8
494 fill-column: 74
495 version-control: never
496 End: