ugh, i have been trying to debug this problem for hours! i didn't realize you
had to break at _abort().
andy, please be careful with things like this.
here's a backtrace. it always crashes while processing xemacs-beta.xpm in
msw-glyphs.el.
abort address 0x011663f0
malloc(unsigned int 65536) line 671 + 25 bytes
xrealloc(void * 0x00000000, unsigned int 65536) line 287 + 36 bytes
Lstream_read_more(lstream * 0x01b3e200) line 528 + 82 bytes
Lstream_read(lstream * 0x01b3e200, void * 0x01eed000, unsigned int 65536) line
573 + 9 bytes
decoding_reader(lstream * 0x01b05380, unsigned char * 0x01eed000, unsigned int
65536) line 2188 + 20 bytes
Lstream_raw_read(lstream * 0x01b05380, unsigned char * 0x01eed000, unsigned int
65536) line 511 + 21 bytes
Lstream_read_more(lstream * 0x01b05380) line 529 + 20 bytes
Lstream_read(lstream * 0x01b05380, void * 0x00823e20, unsigned int 32768) line
573 + 9 bytes
Finsert_file_contents_internal(long 30772868, long 28360708, long 3, long 6003,
long 28360708, long 28523724, long 31768308) line 2982 + 33 bytes
Feval(long 31533804) line 3200 + 471 bytes
Fsetq(long 31533792) line 1079 + 9 bytes
Feval(long 31533780) line 3173 + 13 bytes
Fprogn(long 31533768) line 866 + 9 bytes
Fif(long 31533492) line 784 + 9 bytes
Feval(long 31533456) line 3173 + 13 bytes
Fprogn(long 31533180) line 866 + 9 bytes
Feval(long 31533096) line 3173 + 13 bytes
condition_case_1(long 31534440, long (long)* 0x0106a160 Feval(long), long
31533096, long (long, long)* 0x01067852 run_condition_case_handlers(long, long),
long 30588852) line 1750 + 7 bytes
condition_case_3(long 31533096, long 30588852, long 31534440) line 1834 + 27
bytes
Fcondition_case(long 31533084) line 1877 + 17 bytes
Feval(long 31533072) line 3173 + 13 bytes
Fprogn(long 31534452) line 866 + 9 bytes
Flet(long 31533060) line 1031 + 9 bytes
Feval(long 31537100) line 3173 + 13 bytes
Fprogn(long 31537040) line 866 + 9 bytes
funcall_lambda(long 31617064, int 4, long * 0x0082ca30) line 3728 + 9 bytes
Feval(long 31731800) line 3306 + 20 bytes
Fprogn(long 31731860) line 866 + 9 bytes
Flet(long 31731788) line 1031 + 9 bytes
Feval(long 31731716) line 3173 + 13 bytes
Fprogn(long 31772632) line 866 + 9 bytes
Fsave_excursion(long 31772632) line 403 + 9 bytes
Feval(long 31772572) line 3173 + 13 bytes
For(long 31772560) line 742 + 9 bytes
Feval(long 31772488) line 3173 + 13 bytes
Fprogn(long 31732064) line 866 + 9 bytes
Flet(long 31772476) line 1031 + 9 bytes
Feval(long 31772332) line 3173 + 13 bytes
Feval(long 31772272) line 3188 + 12 bytes
Fprogn(long 31732088) line 866 + 9 bytes
Fif(long 31772092) line 784 + 9 bytes
Feval(long 31771756) line 3173 + 13 bytes
Fprogn(long 31732100) line 866 + 9 bytes
Fif(long 31771624) line 784 + 9 bytes
Feval(long 31771612) line 3173 + 13 bytes
Fprogn(long 31732112) line 866 + 9 bytes
FletX(long 31771600) line 965 + 9 bytes
Feval(long 31771396) line 3173 + 13 bytes
Fprogn(long 31771384) line 866 + 9 bytes
funcall_lambda(long 31536512, int 1, long * 0x0082da54) line 3728 + 9 bytes
Feval(long 28969900) line 3306 + 20 bytes
Fprog1(long 28969924) line 888 + 21 bytes
Feval(long 28969888) line 3173 + 13 bytes
Fif(long 28969876) line 782 + 9 bytes
Feval(long 28969864) line 3173 + 13 bytes
Fprogn(long 28970056) line 866 + 9 bytes
Flet(long 28969852) line 1031 + 9 bytes
Feval(long 28969600) line 3173 + 13 bytes
Fprogn(long 28970068) line 866 + 9 bytes
funcall_lambda(long 28965588, int 1, long * 0x0082e184) line 3728 + 9 bytes
Feval(long 28970320) line 3306 + 20 bytes
Fif(long 31979776) line 781 + 9 bytes
Feval(long 31979824) line 3173 + 13 bytes
Feval(long 28970308) line 3280 + 34 bytes
Fprogn(long 28970428) line 866 + 9 bytes
Fwhile(long 28970296) line 1048 + 9 bytes
Feval(long 28970224) line 3173 + 13 bytes
Fprogn(long 28970512) line 866 + 9 bytes
Flet(long 28970212) line 1031 + 9 bytes
Feval(long 28970152) line 3173 + 13 bytes
Fprogn(long 28972452) line 866 + 9 bytes
funcall_lambda(long 28971924, int 0, long * 0x0082eae4) line 3728 + 9 bytes
Ffuncall(int 1, long * 0x0082eae0) line 3443 + 17 bytes
Fcall_with_condition_handler(int 2, long * 0x0082eadc) line 1913 + 19 bytes
Feval(long 28971876) line 3227 + 20 bytes
Fprogn(long 28970944) line 866 + 9 bytes
Flet(long 28971864) line 1031 + 9 bytes
Feval(long 28971816) line 3173 + 13 bytes
readevalloop(long 28566400, long 29064980, long (long)* 0x0106a160 Feval(long),
int 0) line 1448 + 7 bytes
Fload_internal(long 29064980, long 28360708, long 28360708, long 28360708, long
28360708, long 28360708) line 736 + 23 bytes
Feval(long 28971336) line 3200 + 385 bytes
Fprogn(long 28971360) line 866 + 9 bytes
Flet(long 28971324) line 1031 + 9 bytes
Feval(long 28971240) line 3173 + 13 bytes
readevalloop(long 28566272, long 29064660, long (long)* 0x0106a160 Feval(long),
int 0) line 1448 + 7 bytes
Fload_internal(long 29064660, long 28360708, long 28360708, long 28360708, long
28360708, long 28360708) line 736 + 23 bytes
Feval(long 28974992) line 3200 + 385 bytes
Fprogn(long 28974980) line 866 + 9 bytes
Feval(long 28974752) line 3173 + 13 bytes
Fif(long 28974740) line 782 + 9 bytes
Feval(long 28974728) line 3173 + 13 bytes
readevalloop(long 28566528, long 28624100, long (long)* 0x0106a160 Feval(long),
int 0) line 1448 + 7 bytes
Fload_internal(long 28624100, long 28360708, long 28360708, long 28360708, long
28360708, long 28360708) line 736 + 23 bytes
Feval(long 28592076) line 3200 + 385 bytes
condition_case_1(long 28360804, long (long)* 0x0106a160 Feval(long), long
28592076, long (long, long)* 0x01049ce0 cmd_error(long, long), long 28360708)
line 1750 + 7 bytes
top_level_1(long 28360708) line 202 + 35 bytes
internal_catch(long 28438532, long (long)* 0x01049c80 top_level_1(long), long
28360708, int * 0x00000000, long * 0x00000000) line 1407 + 7 bytes
initial_command_loop(long 28624100) line 281 + 27 bytes
STACK_TRACE_EYE_CATCHER(int 4, char * * 0x01b05000, char * * 0x01b05f80, int 0)
line 1873 + 9 bytes
main(int 4, char * * 0x01b05000, char * * 0x01b05f80) line 2230 + 19 bytes
mainCRTStartup + 211 bytes
_start() line 183
KERNEL32! 77e9bc52()
Kirill 'Big K' Katsnelson wrote:
Andy, below is a small fix which reverts to "standard"
xemacs assertion.
I am not sure if it is correct - it turns *off* error checking if
ERROR_CHECK_MALLOC is not defined. Maybe just leave asserts always on,
so that they work in any debug build? Calling abort() without including
lisp.h is not correct because there is special xemacsoid version of abort().
I am constantly getting an assertion in line 673, near the end of malloc().
Do you understand this code to tell what does it mean? xemacs basically
does not work for me, I get it every so often.
Big K
--- gmalloc.c 2000/04/06 21:57:50 1.12.2.4
+++ gmalloc.c 2000/04/07 02:58:21
@@ -4,8 +4,10 @@
/* Get the configuration files if we're being compiled for Emacs. */
#ifdef emacs
# include <config.h>
-#ifdef ERROR_CHECK_MALLOC
-# define assert(x) ((x) ? (void) 0 : (void) abort ())
+# include <lisp.h>
+#ifndef ERROR_CHECK_MALLOC
+# undef assert(x)
+# define assert(x)
#endif
# include "getpagesize.h"
# ifndef HAVE_CONFIG_H
Some time ago, Andy Piper wrote...
>This fixes gui-item parsing which was doing the wrong thing for widgets but
>it seems to tickle an extant bug which I am having trouble tracking down in
>my cygwin environment. This, for me, causes Edit->Search to crash XEmacs.
>If anyone has purify and uses athena and can do a quick run I would be
>sincerely grateful.
>
>andy
>
>2000-04-06 Andy Piper <andy(a)xemacs.org>
>
> * gmalloc.c (malloc): add error checking.
> (malloc): ditto.
> (free): ditto.
> (realloc): ditto.
[snip]
--
Ben
In order to save my hands, I am cutting back on my mail. I also write
as succinctly as possible -- please don't be offended. If you send me
mail, you _will_ get a response, but please be patient, especially for
XEmacs-related mail. If you need an immediate response and it is not
apparent in your message, please say so. Thanks for your understanding.
See also
http://www.666.com/ben/typing.html.