Mercurial > hg > xemacs-beta
annotate tests/reproduce-crashes.el @ 5127:a9c41067dd88 ben-lisp-object
more cleanups, terminology clarification, lots of doc work
-------------------- ChangeLog entries follow: --------------------
man/ChangeLog addition:
2010-03-05 Ben Wing <ben@xemacs.org>
* internals/internals.texi (Introduction to Allocation):
* internals/internals.texi (Integers and Characters):
* internals/internals.texi (Allocation from Frob Blocks):
* internals/internals.texi (lrecords):
* internals/internals.texi (Low-level allocation):
Rewrite section on allocation of Lisp objects to reflect the new
reality. Remove references to nonexistent XSETINT and XSETCHAR.
modules/ChangeLog addition:
2010-03-05 Ben Wing <ben@xemacs.org>
* postgresql/postgresql.c (allocate_pgconn):
* postgresql/postgresql.c (allocate_pgresult):
* postgresql/postgresql.h (struct Lisp_PGconn):
* postgresql/postgresql.h (struct Lisp_PGresult):
* ldap/eldap.c (allocate_ldap):
* ldap/eldap.h (struct Lisp_LDAP):
Same changes as in src/ dir. See large log there in ChangeLog,
but basically:
ALLOC_LISP_OBJECT -> ALLOC_NORMAL_LISP_OBJECT
LISP_OBJECT_HEADER -> NORMAL_LISP_OBJECT_HEADER
../hlo/src/ChangeLog addition:
2010-03-05 Ben Wing <ben@xemacs.org>
* alloc.c:
* alloc.c (old_alloc_sized_lcrecord):
* alloc.c (very_old_free_lcrecord):
* alloc.c (copy_lisp_object):
* alloc.c (zero_sized_lisp_object):
* alloc.c (zero_nonsized_lisp_object):
* alloc.c (lisp_object_storage_size):
* alloc.c (free_normal_lisp_object):
* alloc.c (FREE_FIXED_TYPE_WHEN_NOT_IN_GC):
* alloc.c (ALLOC_FROB_BLOCK_LISP_OBJECT):
* alloc.c (Fcons):
* alloc.c (noseeum_cons):
* alloc.c (make_float):
* alloc.c (make_bignum):
* alloc.c (make_bignum_bg):
* alloc.c (make_ratio):
* alloc.c (make_ratio_bg):
* alloc.c (make_ratio_rt):
* alloc.c (make_bigfloat):
* alloc.c (make_bigfloat_bf):
* alloc.c (size_vector):
* alloc.c (make_compiled_function):
* alloc.c (Fmake_symbol):
* alloc.c (allocate_extent):
* alloc.c (allocate_event):
* alloc.c (make_key_data):
* alloc.c (make_button_data):
* alloc.c (make_motion_data):
* alloc.c (make_process_data):
* alloc.c (make_timeout_data):
* alloc.c (make_magic_data):
* alloc.c (make_magic_eval_data):
* alloc.c (make_eval_data):
* alloc.c (make_misc_user_data):
* alloc.c (Fmake_marker):
* alloc.c (noseeum_make_marker):
* alloc.c (size_string_direct_data):
* alloc.c (make_uninit_string):
* alloc.c (make_string_nocopy):
* alloc.c (mark_lcrecord_list):
* alloc.c (alloc_managed_lcrecord):
* alloc.c (free_managed_lcrecord):
* alloc.c (sweep_lcrecords_1):
* alloc.c (malloced_storage_size):
* buffer.c (allocate_buffer):
* buffer.c (compute_buffer_usage):
* buffer.c (DEFVAR_BUFFER_LOCAL_1):
* buffer.c (nuke_all_buffer_slots):
* buffer.c (common_init_complex_vars_of_buffer):
* buffer.h (struct buffer_text):
* buffer.h (struct buffer):
* bytecode.c:
* bytecode.c (make_compiled_function_args):
* bytecode.c (size_compiled_function_args):
* bytecode.h (struct compiled_function_args):
* casetab.c (allocate_case_table):
* casetab.h (struct Lisp_Case_Table):
* charset.h (struct Lisp_Charset):
* chartab.c (fill_char_table):
* chartab.c (Fmake_char_table):
* chartab.c (make_char_table_entry):
* chartab.c (copy_char_table_entry):
* chartab.c (Fcopy_char_table):
* chartab.c (put_char_table):
* chartab.h (struct Lisp_Char_Table_Entry):
* chartab.h (struct Lisp_Char_Table):
* console-gtk-impl.h (struct gtk_device):
* console-gtk-impl.h (struct gtk_frame):
* console-impl.h (struct console):
* console-msw-impl.h (struct Lisp_Devmode):
* console-msw-impl.h (struct mswindows_device):
* console-msw-impl.h (struct msprinter_device):
* console-msw-impl.h (struct mswindows_frame):
* console-msw-impl.h (struct mswindows_dialog_id):
* console-stream-impl.h (struct stream_console):
* console-stream.c (stream_init_console):
* console-tty-impl.h (struct tty_console):
* console-tty-impl.h (struct tty_device):
* console-tty.c (allocate_tty_console_struct):
* console-x-impl.h (struct x_device):
* console-x-impl.h (struct x_frame):
* console.c (allocate_console):
* console.c (nuke_all_console_slots):
* console.c (DEFVAR_CONSOLE_LOCAL_1):
* console.c (common_init_complex_vars_of_console):
* data.c (make_weak_list):
* data.c (make_weak_box):
* data.c (make_ephemeron):
* database.c:
* database.c (struct Lisp_Database):
* database.c (allocate_database):
* database.c (finalize_database):
* device-gtk.c (allocate_gtk_device_struct):
* device-impl.h (struct device):
* device-msw.c:
* device-msw.c (mswindows_init_device):
* device-msw.c (msprinter_init_device):
* device-msw.c (finalize_devmode):
* device-msw.c (allocate_devmode):
* device-tty.c (allocate_tty_device_struct):
* device-x.c (allocate_x_device_struct):
* device.c:
* device.c (nuke_all_device_slots):
* device.c (allocate_device):
* dialog-msw.c (handle_question_dialog_box):
* elhash.c:
* elhash.c (struct Lisp_Hash_Table):
* elhash.c (finalize_hash_table):
* elhash.c (make_general_lisp_hash_table):
* elhash.c (Fcopy_hash_table):
* elhash.h (htentry):
* emacs.c (main_1):
* eval.c:
* eval.c (size_multiple_value):
* event-stream.c (finalize_command_builder):
* event-stream.c (allocate_command_builder):
* event-stream.c (free_command_builder):
* event-stream.c (event_stream_generate_wakeup):
* event-stream.c (event_stream_resignal_wakeup):
* event-stream.c (event_stream_disable_wakeup):
* event-stream.c (event_stream_wakeup_pending_p):
* events.h (struct Lisp_Timeout):
* events.h (struct command_builder):
* extents-impl.h:
* extents-impl.h (struct extent_auxiliary):
* extents-impl.h (struct extent_info):
* extents-impl.h (set_extent_no_chase_aux_field):
* extents-impl.h (set_extent_no_chase_normal_field):
* extents.c:
* extents.c (gap_array_marker):
* extents.c (gap_array):
* extents.c (extent_list_marker):
* extents.c (extent_list):
* extents.c (stack_of_extents):
* extents.c (gap_array_make_marker):
* extents.c (extent_list_make_marker):
* extents.c (allocate_extent_list):
* extents.c (SLOT):
* extents.c (mark_extent_auxiliary):
* extents.c (allocate_extent_auxiliary):
* extents.c (attach_extent_auxiliary):
* extents.c (size_gap_array):
* extents.c (finalize_extent_info):
* extents.c (allocate_extent_info):
* extents.c (uninit_buffer_extents):
* extents.c (allocate_soe):
* extents.c (copy_extent):
* extents.c (vars_of_extents):
* extents.h:
* faces.c (allocate_face):
* faces.h (struct Lisp_Face):
* faces.h (struct face_cachel):
* file-coding.c:
* file-coding.c (finalize_coding_system):
* file-coding.c (sizeof_coding_system):
* file-coding.c (Fcopy_coding_system):
* file-coding.h (struct Lisp_Coding_System):
* file-coding.h (MARKED_SLOT):
* fns.c (size_bit_vector):
* font-mgr.c:
* font-mgr.c (finalize_fc_pattern):
* font-mgr.c (print_fc_pattern):
* font-mgr.c (Ffc_pattern_p):
* font-mgr.c (Ffc_pattern_create):
* font-mgr.c (Ffc_name_parse):
* font-mgr.c (Ffc_name_unparse):
* font-mgr.c (Ffc_pattern_duplicate):
* font-mgr.c (Ffc_pattern_add):
* font-mgr.c (Ffc_pattern_del):
* font-mgr.c (Ffc_pattern_get):
* font-mgr.c (fc_config_create_using):
* font-mgr.c (fc_strlist_to_lisp_using):
* font-mgr.c (fontset_to_list):
* font-mgr.c (Ffc_config_p):
* font-mgr.c (Ffc_config_up_to_date):
* font-mgr.c (Ffc_config_build_fonts):
* font-mgr.c (Ffc_config_get_cache):
* font-mgr.c (Ffc_config_get_fonts):
* font-mgr.c (Ffc_config_set_current):
* font-mgr.c (Ffc_config_get_blanks):
* font-mgr.c (Ffc_config_get_rescan_interval):
* font-mgr.c (Ffc_config_set_rescan_interval):
* font-mgr.c (Ffc_config_app_font_add_file):
* font-mgr.c (Ffc_config_app_font_add_dir):
* font-mgr.c (Ffc_config_app_font_clear):
* font-mgr.c (size):
* font-mgr.c (Ffc_config_substitute):
* font-mgr.c (Ffc_font_render_prepare):
* font-mgr.c (Ffc_font_match):
* font-mgr.c (Ffc_font_sort):
* font-mgr.c (finalize_fc_config):
* font-mgr.c (print_fc_config):
* font-mgr.h:
* font-mgr.h (struct fc_pattern):
* font-mgr.h (XFC_PATTERN):
* font-mgr.h (struct fc_config):
* font-mgr.h (XFC_CONFIG):
* frame-gtk.c (allocate_gtk_frame_struct):
* frame-impl.h (struct frame):
* frame-msw.c (mswindows_init_frame_1):
* frame-x.c (allocate_x_frame_struct):
* frame.c (nuke_all_frame_slots):
* frame.c (allocate_frame_core):
* gc.c:
* gc.c (GC_CHECK_NOT_FREE):
* glyphs.c (finalize_image_instance):
* glyphs.c (allocate_image_instance):
* glyphs.c (Fcolorize_image_instance):
* glyphs.c (allocate_glyph):
* glyphs.c (unmap_subwindow_instance_cache_mapper):
* glyphs.c (register_ignored_expose):
* glyphs.h (struct Lisp_Image_Instance):
* glyphs.h (struct Lisp_Glyph):
* glyphs.h (struct glyph_cachel):
* glyphs.h (struct expose_ignore):
* gui.c (allocate_gui_item):
* gui.h (struct Lisp_Gui_Item):
* keymap.c (struct Lisp_Keymap):
* keymap.c (make_keymap):
* lisp.h:
* lisp.h (struct Lisp_String_Direct_Data):
* lisp.h (struct Lisp_String_Indirect_Data):
* lisp.h (struct Lisp_Vector):
* lisp.h (struct Lisp_Bit_Vector):
* lisp.h (DECLARE_INLINE_LISP_BIT_VECTOR):
* lisp.h (struct weak_box):
* lisp.h (struct ephemeron):
* lisp.h (struct weak_list):
* lrecord.h:
* lrecord.h (struct lrecord_implementation):
* lrecord.h (MC_ALLOC_CALL_FINALIZER):
* lrecord.h (struct lcrecord_list):
* lstream.c (finalize_lstream):
* lstream.c (sizeof_lstream):
* lstream.c (Lstream_new):
* lstream.c (Lstream_delete):
* lstream.h (struct lstream):
* marker.c:
* marker.c (finalize_marker):
* marker.c (compute_buffer_marker_usage):
* mule-charset.c:
* mule-charset.c (make_charset):
* mule-charset.c (compute_charset_usage):
* objects-impl.h (struct Lisp_Color_Instance):
* objects-impl.h (struct Lisp_Font_Instance):
* objects-tty-impl.h (struct tty_color_instance_data):
* objects-tty-impl.h (struct tty_font_instance_data):
* objects-tty.c (tty_initialize_color_instance):
* objects-tty.c (tty_initialize_font_instance):
* objects.c (finalize_color_instance):
* objects.c (Fmake_color_instance):
* objects.c (finalize_font_instance):
* objects.c (Fmake_font_instance):
* objects.c (reinit_vars_of_objects):
* opaque.c:
* opaque.c (sizeof_opaque):
* opaque.c (make_opaque_ptr):
* opaque.c (free_opaque_ptr):
* opaque.h:
* opaque.h (Lisp_Opaque):
* opaque.h (Lisp_Opaque_Ptr):
* print.c (printing_unreadable_lcrecord):
* print.c (external_object_printer):
* print.c (debug_p4):
* process.c (finalize_process):
* process.c (make_process_internal):
* procimpl.h (struct Lisp_Process):
* rangetab.c (Fmake_range_table):
* rangetab.c (Fcopy_range_table):
* rangetab.h (struct Lisp_Range_Table):
* scrollbar.c:
* scrollbar.c (create_scrollbar_instance):
* scrollbar.c (compute_scrollbar_instance_usage):
* scrollbar.h (struct scrollbar_instance):
* specifier.c (finalize_specifier):
* specifier.c (sizeof_specifier):
* specifier.c (set_specifier_caching):
* specifier.h (struct Lisp_Specifier):
* specifier.h (struct specifier_caching):
* symeval.h:
* symeval.h (SYMBOL_VALUE_MAGIC_P):
* symeval.h (DEFVAR_SYMVAL_FWD):
* symsinit.h:
* syntax.c (init_buffer_syntax_cache):
* syntax.h (struct syntax_cache):
* toolbar.c:
* toolbar.c (allocate_toolbar_button):
* toolbar.c (update_toolbar_button):
* toolbar.h (struct toolbar_button):
* tooltalk.c (struct Lisp_Tooltalk_Message):
* tooltalk.c (make_tooltalk_message):
* tooltalk.c (struct Lisp_Tooltalk_Pattern):
* tooltalk.c (make_tooltalk_pattern):
* ui-gtk.c:
* ui-gtk.c (allocate_ffi_data):
* ui-gtk.c (emacs_gtk_object_finalizer):
* ui-gtk.c (allocate_emacs_gtk_object_data):
* ui-gtk.c (allocate_emacs_gtk_boxed_data):
* ui-gtk.h:
* window-impl.h (struct window):
* window-impl.h (struct window_mirror):
* window.c (finalize_window):
* window.c (allocate_window):
* window.c (new_window_mirror):
* window.c (mark_window_as_deleted):
* window.c (make_dummy_parent):
* window.c (compute_window_mirror_usage):
* window.c (compute_window_usage):
Overall point of this change and previous ones in this repository:
(1) Introduce new, clearer terminology: everything other than int
or char is a "record" object, which comes in two types: "normal
objects" and "frob-block objects". Fix up all places that
referred to frob-block objects as "simple", "basic", etc.
(2) Provide an advertised interface for doing operations on Lisp
objects, including creating new types, that is clean and
consistent in its naming, uses the above-referenced terms and
avoids referencing "lrecords", "old lcrecords", etc., which should
hide under the surface.
(3) Make the size_in_bytes and finalizer methods take a
Lisp_Object rather than a void * for consistency with other methods.
(4) Separate finalizer method into finalizer and disksaver, so
that normal finalize methods don't have to worry about disksaving.
Other specifics:
(1) Renaming:
LISP_OBJECT_HEADER -> NORMAL_LISP_OBJECT_HEADER
ALLOC_LISP_OBJECT -> ALLOC_NORMAL_LISP_OBJECT
implementation->basic_p -> implementation->frob_block_p
ALLOCATE_FIXED_TYPE_AND_SET_IMPL -> ALLOC_FROB_BLOCK_LISP_OBJECT
*FCCONFIG*, wrap_fcconfig -> *FC_CONFIG*, wrap_fc_config
*FCPATTERN*, wrap_fcpattern -> *FC_PATTERN*, wrap_fc_pattern
(the last two changes make the naming of these macros consistent
with the naming of all other macros, since the objects are named
fc-config and fc-pattern with a hyphen)
(2) Lots of documentation fixes in lrecord.h.
(3) Eliminate macros for copying, freeing, zeroing objects, getting
their storage size. Instead, new functions:
zero_sized_lisp_object()
zero_nonsized_lisp_object()
lisp_object_storage_size()
free_normal_lisp_object()
(copy_lisp_object() already exists)
LISP_OBJECT_FROB_BLOCK_P() (actually a macro)
Eliminated:
free_lrecord()
zero_lrecord()
copy_lrecord()
copy_sized_lrecord()
old_copy_lcrecord()
old_copy_sized_lcrecord()
old_zero_lcrecord()
old_zero_sized_lcrecord()
LISP_OBJECT_STORAGE_SIZE()
COPY_SIZED_LISP_OBJECT()
COPY_SIZED_LCRECORD()
COPY_LISP_OBJECT()
ZERO_LISP_OBJECT()
FREE_LISP_OBJECT()
(4) Catch the remaining places where lrecord stuff was used directly
and use the advertised interface, e.g. alloc_sized_lrecord() ->
ALLOC_SIZED_LISP_OBJECT().
(5) Make certain statically-declared pseudo-objects
(buffer_local_flags, console_local_flags) have their lheader
initialized correctly, so things like copy_lisp_object() can work
on them. Make extent_auxiliary_defaults a proper heap object
Vextent_auxiliary_defaults, and make extent auxiliaries dumpable
so that this object can be dumped. allocate_extent_auxiliary()
now just creates the object, and attach_extent_auxiliary()
creates an extent auxiliary and attaches to an extent, like the
old allocate_extent_auxiliary().
(6) Create EXTENT_AUXILIARY_SLOTS macro, similar to the foo-slots.h
files but in a macro instead of a file. The purpose is to avoid
duplication when iterating over all the slots in an extent auxiliary.
Use it.
(7) In lstream.c, don't zero out object after allocation because
allocation routines take care of this.
(8) In marker.c, fix a mistake in computing marker overhead.
(9) In print.c, clean up printing_unreadable_lcrecord(),
external_object_printer() to avoid lots of ifdef NEW_GC's.
(10) Separate toolbar-button allocation into a separate
allocate_toolbar_button() function for use in the example code
in lrecord.h.
author | Ben Wing <ben@xemacs.org> |
---|---|
date | Fri, 05 Mar 2010 04:08:17 -0600 |
parents | ae862598ee56 |
children | 8b2f75cecb89 |
rev | line source |
---|---|
4344
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
1 ;;; reproduce-bugs.el --- reproduce bugs in XEmacs |
428 | 2 |
3 ;; Copyright (C) 1997 Free Software Foundation, Inc. | |
4 ;; Copyright (C) 1997 Sun Microsystems, Inc. | |
5 | |
6 ;; Keywords: bugs, crash, burn, die, croak, munge | |
7 | |
8 ;; This file is part of XEmacs. | |
9 | |
10 ;; This file is free software; you can redistribute it and/or modify it | |
11 ;; under the terms of the GNU General Public License as published by | |
12 ;; the Free Software Foundation; either version 2, or (at your option) | |
13 ;; any later version. | |
14 | |
15 ;; XEmacs is distributed in the hope that it will be useful, but | |
16 ;; WITHOUT ANY WARRANTY; without even the implied warranty of | |
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
18 ;; General Public License for more details. | |
19 | |
20 ;; You should have received a copy of the GNU General Public License | |
21 ;; along with XEmacs; see the file COPYING. If not, write to the Free | |
22 ;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA | |
23 ;; 02111-1307, USA. | |
24 | |
25 ;;; Synched up with: Not in FSF. | |
26 | |
27 ;;; Commentary: | |
28 | |
4344
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
29 ;; Reproduce XEmacs crashes, so that they can get fixed. |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
30 ;; A table of bugs is created. You can list, describe, or reproduce bugs. |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
31 |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
32 ;; Non-crash bugs should not be in this file; they should be placed in |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
33 ;; an appropriate file in the tests/automated suite. |
428 | 34 ;; You may need to use a debug version of XEmacs to reproduce some of these. |
35 | |
36 ;; For XEmacs maintainers and other masochists. | |
37 ;; It's a bad idea to rely on code in this file continuing to work in | |
38 ;; the same way. :-) | |
39 | |
4344
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
40 ;; #### Bugs < 11 need to be tested and versions where they pass recorded. |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
41 ;; #### Fixed bugs should become regression tests, maybe? |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
42 ;; #### Non-crashes should be copied (not moved) to tests/automatic. |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
43 ;; #### `list-bugs' should optionally sort on status. |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
44 ;; #### Bugs that depend on features (eg, Mule) should check for them and |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
45 ;; document them. |
4321
98e54edf3ab2
Resuscitate reproduce-bugs.el.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
428
diff
changeset
|
46 |
428 | 47 ;;; Code: |
48 | |
4344
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
49 ;; UI entry points |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
50 |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
51 (defun reproduce-bug (number) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
52 "Reproduce XEmacs bugs, so that they can get fixed. |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
53 Especially, make XEmacs crash. |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
54 See reproduce-bugs.el for bug descriptions and bug numbers. |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
55 A debug version of XEmacs may be needed to reproduce some bugs." |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
56 (interactive "nBug Number: ") |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
57 (funcall (nth 0 (gethash number bug-hashtable)))) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
58 |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
59 (defun describe-bug (number &optional show-code) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
60 "Describe the bug with index NUMBER in a popup window. |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
61 If optional argument SHOW-CODE is non-nil, also display the reproduction code." |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
62 (interactive "nBug number: \ncShow code? [y/N] ") |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
63 (setq show-code (cond ((not (interactive-p)) show-code) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
64 ((member show-code '(?y ?Y)) t) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
65 (t nil))) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
66 (with-displaying-temp-buffer (format "Bug %d" number) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
67 (let ((bug (gethash number bug-hashtable))) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
68 (princ (format "Bug #%d is %s.\n%s\n\n%s" |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
69 number |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
70 (nth 1 bug) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
71 (nth 2 bug) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
72 (if show-code (pp-to-string (nth 0 bug)) "")))))) |
428 | 73 |
4344
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
74 (defun list-bugs () |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
75 "List bugs most recent first, each with brief description in a popup window. |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
76 Assumes a maximum of 999 bugs and a minimum of 80 column width window." |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
77 (interactive) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
78 (with-displaying-temp-buffer "*Bug list*" |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
79 (princ " # status description\n") |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
80 (let (buglist) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
81 (maphash (lambda (number bug) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
82 (push (format "%3d %-9s %s" |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
83 number |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
84 (nth 1 bug) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
85 (let ((description (nth 2 bug))) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
86 (save-match-data |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
87 (string-match "\\(.*\\)\\(\n\\|$\\)" |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
88 description) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
89 (match-string 1 description)))) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
90 buglist)) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
91 bug-hashtable) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
92 (setq buglist (sort buglist (lambda (b1 b2) (string< b2 b1)))) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
93 (while buglist |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
94 (let ((bug (pop buglist))) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
95 (princ (if (< (length bug) 79) bug (substring bug 0 78))) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
96 (terpri)))))) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
97 |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
98 ;; Database and utilities (internal) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
99 |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
100 (defvar bug-hashtable (make-hashtable 10) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
101 "Table of bugs, keyed by bug index number. |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
102 The value is a list (LAMBDA STATUS DOCSTRING), where LAMBDA is a lambda |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
103 expression reproducing the bug, and STATUS and DOCSTRING describe the bug. |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
104 For details, see `defbug'.") |
428 | 105 |
106 (put 'defbug 'lisp-indent-function 'defun) | |
4344
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
107 (defmacro defbug (bug-number status docstring &rest body) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
108 "Record a bug with key BUG-NUMBER and value (LAMBDA STATUS DOCSTRING). |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
109 LAMBDA is a lambda expression which when called executes BODY. |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
110 BUG-NUMBER is the bug's index number, a positive integer. |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
111 STATUS is the current status of the bug, one of |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
112 fixed The bug has been diagnosed and fixed. |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
113 diagnosed The bug has been localized but not fixed. |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
114 current The bug has been reported and reproduced but cause is unknown. |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
115 legacy The bug is undocumented but presumed fixed. |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
116 DOCSTRING should be a string describing the bug, including any relevant |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
117 descriptive information and references to archived mailing list traffic or |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
118 a BTS issue. |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
119 BODY is a sequence of expressions to execute to reproduce the bug." |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
120 (let ((body (if (stringp docstring) body (cons docstring body))) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
121 (docstring (if (stringp docstring) docstring "[docstring omitted]"))) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
122 `(puthash ,bug-number |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
123 '((lambda () ,@body) ,status ,docstring) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
124 bug-hashtable))) |
428 | 125 |
126 (defconst bug-buffer | |
127 (save-excursion | |
128 (set-buffer (get-buffer-create "*Bug*")) | |
129 (erase-buffer) | |
130 (current-buffer))) | |
131 | |
132 | |
4344
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
133 ;;; ------------------------------------------------------------------ |
428 | 134 ;;;; Bugs follow: |
135 | |
4746
ae862598ee56
Make test from Adam Sjogren's report.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4685
diff
changeset
|
136 (defbug 13 current |
ae862598ee56
Make test from Adam Sjogren's report.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4685
diff
changeset
|
137 "Crash when reading a message in Gnus, in sys_re_search_2 in regex.c. |
ae862598ee56
Make test from Adam Sjogren's report.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4685
diff
changeset
|
138 Reported by Adam Sjogren on xemacs-beta <87ocn5xt5a.fsf@topper.koldfront.dk>. |
ae862598ee56
Make test from Adam Sjogren's report.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4685
diff
changeset
|
139 issue630 on the tracker. |
ae862598ee56
Make test from Adam Sjogren's report.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4685
diff
changeset
|
140 Reproduced on Mac OS X 10.4.11 iBook G4 (PPC). |
ae862598ee56
Make test from Adam Sjogren's report.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4685
diff
changeset
|
141 Reproduced on Gentoo Linux 2.6.30 AMD (Opteron)." |
ae862598ee56
Make test from Adam Sjogren's report.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4685
diff
changeset
|
142 (string-match (base64-decode-string "\ |
ae862598ee56
Make test from Adam Sjogren's report.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4685
diff
changeset
|
143 WyAJXSo804DFgPOApHWAtXuApliArID5gLZVgLSA2oChRUwvQ4DDQoCrgNeAwoDggLJ7gL6A |
ae862598ee56
Make test from Adam Sjogren's report.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4685
diff
changeset
|
144 94CogOOAtlWAtIDagKFFgLCA6oC7gNqApFSAqICkgLZUgKmA9oC5gOqAsIDIgL6A3oCnQICh |
ae862598ee56
Make test from Adam Sjogren's report.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4685
diff
changeset
|
145 RUwvQ4C2fYCqgKyAw0KAq4DXgKWA04C9gNCAoUWAxXeAqoDvgLF6gKiA04C5cYChR4CigK+A |
ae862598ee56
Make test from Adam Sjogren's report.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4685
diff
changeset
|
146 ooC4gKKAtICigLctgKKAtICigLWAooC4LYCigK+AooCygKKAtIChRUwvQ4CrSIClgM6AqoCs |
ae862598ee56
Make test from Adam Sjogren's report.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4685
diff
changeset
|
147 gMNCgKuA14DFgNyApoDbgKWA0YC5QoClgM6AuIDqgKqA94ChRYCrSIClgM6AqoCsgLZ9gKqA |
ae862598ee56
Make test from Adam Sjogren's report.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4685
diff
changeset
|
148 rIDDQoCrgNeApYDTgL2A0IChRT4=") |
ae862598ee56
Make test from Adam Sjogren's report.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4685
diff
changeset
|
149 (base64-decode-string "\ |
ae862598ee56
Make test from Adam Sjogren's report.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4685
diff
changeset
|
150 XCKAqYDTgMWA84CkdYC1e4CmWICsgPmAtlWAtIDagKFFTC9DgMNCgKuA14DCgOCAsnuAvoD3 |
ae862598ee56
Make test from Adam Sjogren's report.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4685
diff
changeset
|
151 gKiA44C2VYC0gNqAoUWAsIDqgLuA2oCkVICogKSAtlSAqYD2gLmA6oCwgMiAvoDegKdAgKFF |
ae862598ee56
Make test from Adam Sjogren's report.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4685
diff
changeset
|
152 TC9DgLZ9gKqArIDDQoCrgNeApYDTgL2A0IChRYDFd4CqgO+AsXqAqIDTgLlxgKFHgKKAr4Ci |
ae862598ee56
Make test from Adam Sjogren's report.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4685
diff
changeset
|
153 gLiAooC0gKKAty2AooC0gKKAtYCigLgtgKKAr4CigLKAooC0gKFFTC9DgKtIgKWAzoCqgKyA |
ae862598ee56
Make test from Adam Sjogren's report.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4685
diff
changeset
|
154 w0KAq4DXgMWA3ICmgNuApYDRgLlCgKWAzoC4gOqAqoD3gKFFgKtIgKWAzoCqgKyAtn2AqoCs |
ae862598ee56
Make test from Adam Sjogren's report.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4685
diff
changeset
|
155 gMNCgKuA14ClgNOAvYDQgKFFXCIgPHRzZW5nLWNoaXVAdW1haWwu"))) |
ae862598ee56
Make test from Adam Sjogren's report.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4685
diff
changeset
|
156 |
4685
945247a8112f
Reproducer for menubar-x.c crash.
Jerry James <james@xemacs.org>
parents:
4346
diff
changeset
|
157 (defbug 12 current |
945247a8112f
Reproducer for menubar-x.c crash.
Jerry James <james@xemacs.org>
parents:
4346
diff
changeset
|
158 "Crash when clicking on the menubar, triggered by a Lisp error due to a |
945247a8112f
Reproducer for menubar-x.c crash.
Jerry James <james@xemacs.org>
parents:
4346
diff
changeset
|
159 version of truncate-string-to-width that does not take 5 parameters. |
945247a8112f
Reproducer for menubar-x.c crash.
Jerry James <james@xemacs.org>
parents:
4346
diff
changeset
|
160 Fatal error: assertion failed, file menubar-x.c, line 579, ABORT() |
945247a8112f
Reproducer for menubar-x.c crash.
Jerry James <james@xemacs.org>
parents:
4346
diff
changeset
|
161 Reported: https://bugzilla.redhat.com/show_bug.cgi?id=480845 |
945247a8112f
Reproducer for menubar-x.c crash.
Jerry James <james@xemacs.org>
parents:
4346
diff
changeset
|
162 <1251569781.4318.2.camel@mslap>" |
945247a8112f
Reproducer for menubar-x.c crash.
Jerry James <james@xemacs.org>
parents:
4346
diff
changeset
|
163 (fset 'truncate-string-to-width |
945247a8112f
Reproducer for menubar-x.c crash.
Jerry James <james@xemacs.org>
parents:
4346
diff
changeset
|
164 #'(lambda (str end-column &optional start-column padding) str)) |
945247a8112f
Reproducer for menubar-x.c crash.
Jerry James <james@xemacs.org>
parents:
4346
diff
changeset
|
165 (accelerate-menu)) |
945247a8112f
Reproducer for menubar-x.c crash.
Jerry James <james@xemacs.org>
parents:
4346
diff
changeset
|
166 |
4344
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
167 (defbug 11 fixed |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
168 "Crash in search due to backward movement. |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
169 Need Mule build with error checking in 21.5.28. |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
170 Fatal error: assertion failed, |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
171 file /Users/steve/Software/XEmacs/alioth/xemacs/src/search.c, line 1487, |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
172 (this_pos) > ((Bytebpos) 1) && this_pos <= ((buf)->text->z + 0) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
173 Reported: <475B104F.2070807@barco.com> |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
174 <87hcixwkh4.fsf@uwakimon.sk.tsukuba.ac.jp> |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
175 Fixed: <87hcixwkh4.fsf@uwakimon.sk.tsukuba.ac.jp>" |
4322
f70e56bb52a7
src/search.c (simple_search): Fix underrun in reverse search.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4321
diff
changeset
|
176 (switch-to-buffer (get-buffer-create "*crash me*")) |
4344
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
177 ;; doozy is the keystroke equivalent of the keyboard macro |
4322
f70e56bb52a7
src/search.c (simple_search): Fix underrun in reverse search.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4321
diff
changeset
|
178 ;; "IAI" C-b C-b C-s C-x |
f70e56bb52a7
src/search.c (simple_search): Fix underrun in reverse search.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4321
diff
changeset
|
179 (let ((doozy [;;(control ?x) ?b ?j ?u ?n ?k return |
f70e56bb52a7
src/search.c (simple_search): Fix underrun in reverse search.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4321
diff
changeset
|
180 ?I ?A ?I |
f70e56bb52a7
src/search.c (simple_search): Fix underrun in reverse search.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4321
diff
changeset
|
181 (control ?b) (control ?b) |
f70e56bb52a7
src/search.c (simple_search): Fix underrun in reverse search.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4321
diff
changeset
|
182 (control ?s) (control ?w)])) |
f70e56bb52a7
src/search.c (simple_search): Fix underrun in reverse search.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4321
diff
changeset
|
183 (execute-kbd-macro doozy))) |
f70e56bb52a7
src/search.c (simple_search): Fix underrun in reverse search.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4321
diff
changeset
|
184 |
f70e56bb52a7
src/search.c (simple_search): Fix underrun in reverse search.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4321
diff
changeset
|
185 |
4344
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
186 (defbug 10 current |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
187 "Crash on trace-function |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
188 Fatal error: assertion failed, file src/eval.c, line 1405, abort()" |
428 | 189 (trace-function 'record-buffer bug-buffer) |
190 (pop-to-buffer bug-buffer)) | |
191 | |
192 | |
4344
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
193 (defbug 9 current |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
194 "Crashes with stack overflow |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
195 Should give error via barf-if-buffer-read-only |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
196 Fatal error: assertion failed, file src/eval.c, line 1874, abort() |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
197 This bug has been fixed. -sb" |
428 | 198 (switch-to-buffer bug-buffer) |
199 ;; The following line should contain a number of eight-bit characters | |
200 (insert "²èÌÌËè¤Î°ÜÆ°¤Ï¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£º£Å٤ϡ¢²èÌ̤ÎÃæ¤Ç¡¢ÆÃÄê¤Î¾ì") | |
201 (setq buffer-read-only t) | |
202 (ignore-errors | |
203 (encode-coding-region (point-min) (point-max) 'euc-japan)) | |
204 (garbage-collect)) | |
205 | |
206 | |
4344
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
207 (defbug 8 current |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
208 "Crashes in debug version only |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
209 Fatal error: assertion failed, file src/objects.h, line 149, |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
210 RECORD_TYPEP (_obj, lrecord_font_instance) || MARKED_RECORD_P (_obj)" |
428 | 211 (let (glyph ext) |
212 (make-face 'adobe-symbol-face) | |
213 (set-face-font | |
214 'adobe-symbol-face | |
215 "-adobe-symbol-medium-r-normal--*-140-*-*-p-*-adobe-fontspecific") | |
216 (setq glyph (make-glyph (list (vector 'string | |
217 :data (char-to-string ?\xD3))))) | |
218 (set-glyph-face glyph 'adobe-symbol-face) | |
219 (setq ext (make-extent 14 18)) | |
220 (set-extent-property ext 'begin-glyph glyph))) | |
221 | |
222 | |
4344
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
223 (defbug 7 current |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
224 "(maybe?) crash koi8 |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
225 ACCL: Invalid command (c) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
226 With debugging on, crashes as follows: |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
227 Fatal error: assertion failed, file src/lisp.h, line 1227, INTP (obj)" |
428 | 228 ;;(load "cyrillic") |
229 ;;(load "cyrillic-hooks") | |
230 (princ (decode-coding-string "\xe1" 'koi8))) | |
231 | |
232 | |
4344
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
233 (defbug 6 current |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
234 "regexp crash |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
235 This doesn't crash for me. -sb" |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
236 (string-match "\\(\\s-\\|$\\)" "å")) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
237 |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
238 |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
239 (defbug 5 legacy |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
240 "`subst-char-in-region' moves point." |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
241 (interactive) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
242 (with-temp-buffer |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
243 (insert "abc") |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
244 (forward-char -1) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
245 (subst-char-in-region 1 4 ?b ?\344) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
246 (if (not (= (point) 3)) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
247 (message "Bug! point should equal 3 but is %d" (point))))) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
248 |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
249 |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
250 (defbug 4 legacy |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
251 "Infinite recursion crash - Segmentation Fault" |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
252 (switch-to-buffer bug-buffer) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
253 (insert "abcdefg") |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
254 (setq e (make-extent 1 4)) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
255 (set-extent-property e 'face 'bold) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
256 (set-extent-property e 'duplicable t) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
257 (set-extent-property e 'replicating t) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
258 (insert (buffer-string)) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
259 (delete-region 8 9)) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
260 |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
261 |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
262 (defbug 3 current |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
263 "Completely Uninterruptible hang in re-search-backward (Was: java-mode)" |
428 | 264 (switch-to-buffer bug-buffer) |
265 (insert "{ | |
266 public static void main(String[] args) throws java.io.IOException | |
267 { | |
268 } | |
269 } | |
270 ") | |
271 (goto-char (point-min)) | |
272 (search-forward "{" nil nil 2) | |
273 (backward-char) | |
274 (re-search-backward | |
275 "^\\s(\\|\\(^[ \t]*\\(\\(\\(public\\|protected\\|static\\)\\s-+\\)*\\(\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*[][_$.a-zA-Z0-9]+\\|[[a-zA-Z]\\)\\s-*\\)\\s-+\\)\\)?\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*\\s-+\\)\\s-*\\)?\\([_a-zA-Z][^][ \t:;.,{}()=]*\\|\\([_$a-zA-Z][_$.a-zA-Z0-9]*\\)\\)\\s-*\\(([^);{}]*)\\)?\\([] \t]*\\)\\(\\s-*\\<throws\\>\\s-*\\(\\([_$a-zA-Z][_$.a-zA-Z0-9]*\\)[, \t\n\r\f]*\\)+\\)?\\s-*\\)\\s(")) | |
276 | |
277 | |
4344
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
278 (defbug 2 legacy |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
279 "crash popup frames |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
280 FIXED |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
281 #### This bug is not understood, and may be incomplete. See source." |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
282 (lambda () |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
283 (let ((f (selected-frame))) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
284 (make-frame `(popup ,(selected-frame))) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
285 (make-frame) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
286 (sit-for 0) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
287 (delete-frame f) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
288 ;; #### Check whether this is needed. |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
289 ;; (save-buffers-kill-emacs5) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
290 ))) |
428 | 291 |
292 | |
4344
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
293 (defbug 1 legacy |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
294 "crash on delete-frame-hook |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
295 FIXED! |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
296 #### This bug is not understood, and seems to be incomplete. See source." |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
297 (lambda () |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
298 ;; #### Should this be add-hook instead of setq? |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
299 (setq delete-frame-hook |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
300 (lambda (frame) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
301 (select-frame frame) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
302 (kill-buffer (window-buffer (frame-selected-window frame))) |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
303 ;; #### Do we need to delete a frame here or something? |
2511b50f39c6
Refactor reproduce-bugs.el to usable state.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4322
diff
changeset
|
304 )))) |
428 | 305 |
306 ;;; reproduce-bugs.el ends here |