karl@osu-eddie.UUCP (Karl Kleinpaste) (04/04/85)
A bug has been uncovered in the splitting and reformatting of horizontally-split windows in GNU emacs (installed here as gnumacs). It seems that, when horizontally splitting windows repeatedly, gnumacs gets a fatal error, which it catches, followed by dropping core and exiting as gracefully as it can. Specifically, I was working on a vt102 in 132 column mode. I used ^X5 to split horizontally several times. After three, I got a beep because it would not split again. Then I made the current window slightly larger using ^U^X}, and attempted to ^X5 again. The minibuf showed `Fatal error,' there was a pause, and then gnumacs exited with a core dump. This is easily repeatable. We are running unmodified gnumacs with the exception that the max screen dimensions have been altered to 100 lines by 150 chars, and TrmVT100.c has been altered to recognize terminal names analogously to TrmC100.c (in order to understand strings like vt102-w-r, for wide [132-col] vt102 in reverse-video mode.) It seems to be possible to cause the core dump when trying to execute the ^U^X} as well. I don't know the relationship. The following is the stack trace left in the core dump, as shown by dbx (standard dbx, not the one distributed with gnumacs): dbx version of 1/2/85 13:35 (osu-eddie). Type 'help' for help. reading symbolic information ... (dbx) where etext at 0x7ffff075 get_display_line(0x0, 0xe) at 0x11e6 display_text_line(0x63c84, 0x1, 0x0, 0xe) at 0x2f40 try_window(0x14063c84, 0x1) at 0x274e redisplay_window(0x14063c84, 0x0) at 0x25a3 redisplay_windows(0x14063c84) at 0x2238 redisplay_window(0x14063484, 0x0) at 0x22c4 redisplay_windows(0x14063484) at 0x2238 redisplay_all_windows at 0x2223 DoDsp(0x0) at 0x2075 get_char(0x1) at 0xb463 read_key_sequence(0x7fffeb6e, 0x1e, 0x0) at 0xb937 command_loop_1 at 0xaffb internal_condition_case(0xaf64, 0x10668e4, 0xac98) at 0x22077 command_loop(0x1066808) at 0xac19 internal_catch(0x10668d0, 0xabd2, 0x1066808) at 0x21ca1 Frecursive_edit at 0xaad7 main(0x1, 0x7fffed38, 0x7fffed40) at 0xa472 start1 at 0x43 start(0x7fffea78, 0x7fffea78, 0x7fffea78, 0x7fffea78, 0x7fffea78, 0x7fffea78, 0x7fffea78, 0x7fffea78, 0x7fffea78, 0x7fffea78, 0x7fffea78, 0x7fffea78, 0x7fffea78, 0x7fffea78, 0x7fffea78, 0x7fffea78, 0x7fffea78, 0x7fffea78, 0x7fffea78, 0x7fffea78) at 0x9 etext( (dbx) quit Anybody out there with the time (and the strength of heart) to track this one down? -- Karl Kleinpaste @ Ohio State University osu-eddie!karl