I am data warehouse consultant who
has been working at a large insurance company
for 18 months. On my first week
of work, I downloaded, configured and compiled
emacs for several of the AIX boxes
here. I have been using emacs on one particular
server quite productively for the
last 18 months without any problems. Up until
Thursday of last week.
I took off Friday to attend my 30th
high school reunion and returned to work this
morning. The box had been
booted during my absence: a pre-meditated re-boot so
that a particular software package
(Ab Initio) could be upgraded. Now, emacs no
longer works. In fact, it dies
a horrible death at start-up like this:
tlmitnu1:ddahl> emacs Segmentation
fault(coredump) tlmitnu1:ddahl> ls -l core -rw-r----- 1
ddahl abinitio 11360307 Oct 17 12:33
core
If you can provide me any clues or
ideas about things to investigate, I would be
very appreciative. Here is some
additional information.
OS particulars:
tlmitnu1:ddahl> uname -rv 1
5 tlmitnu1:ddahl> uname -a AIX tlmitnu1 1 5
0029334A4C00 tlmitnu1:ddahl> cat
/etc/motd ******************************************************************************* *
* *
* * Welcome to AIX Version
5.1!
* *
* *
* * Please see the README file in /usr/lpp/bos for information
pertinent to * * this release of the AIX Operating
System.
* *
* *
* ******************************************************************************* DEOS
Infrastructure Version 2002-Q2-aix installed (08/13/2003) DEOS
v2002-3-aixuvscan (09/23/2002) deos_unix_ECCmstagt_prod_s-2003.1 installed
on 10/14/2003 DEOS Infrastructure Version v2004-3-alerts installed
(09/14/2004)
I've run emacs under the debugger and
single-stepped my way to the general area
where the signal happens. In rough
outline, there is a variable (__malloc_hook) found
in src/gmalloc.c and this is supposed to
contain the address of a function. But when
the program attempts to execute code at this
derefeneced address, it finds unreadable
instructions:
tlmitnu1:emacs-21.3> dbx
src/emacs Type 'help' for help. reading symbolic information
... (dbx) stop in main [1] stop in main (dbx) run [1] stopped in
main at line 714 in file "src/emacs.c" ($t1)
714 int skip_args = 0; (dbx) step stopped in
main at line 737 in file "src/emacs.c" ($t1)
737 sort_args (argc, argv); (dbx) step stopped
in sort_args at line 1651 in file "src/emacs.c"
($t1) 1651 char **new = (char **) xmalloc
(sizeof (char *) * argc); (dbx) step stopped in xmalloc at line 519 in
file "src/alloc.c" ($t1) 519
BLOCK_INPUT; (dbx) step stopped in xmalloc at line 520 in file
"src/alloc.c" ($t1) 520 val = (POINTER_TYPE
*) malloc (size); (dbx) step stopped in gmalloc.malloc at line 891 in
file "src/gmalloc.c" ($t1) 891 if
(!__malloc_initialized && !__malloc_initialize ()) (dbx)
step stopped in gmalloc.malloc at line 894 in file "src/gmalloc.c"
($t1) 894 return (__malloc_hook != NULL ?
*__malloc_hook : _malloc_internal) (size); (dbx) print
__malloc_hook 0x200e0b9c (dbx) print *__malloc_hook 0x2c030000
(dbx) step Unreadable instruction at address 0x2c030000 (dbx)
where ptrgl.$PTRGL(??, ??, ??, ??, ??, ??, ??, ??, ??, ??, ??, ??, ??, ??,
??, ??, ??, ??, ??, ??, ) at 0x100adf64 gmalloc.malloc(size = 0), line 894
in "gmalloc.c" xmalloc(size = 0), line 520 in "alloc.c" sort_args(argc =
42308, argv = 0x000c0002), line 1651 in "emacs.c" main(argc = 0, argv =
(nil), envp = (nil)), line 737 in "emacs.c" (dbx)
quit
The version of emacs that
I've been using is 21-3. In desperation, I downloaded, configured
and
compiled a new emacs.21-3 but this
newly compiled version failed in the same way as the original.
Thanks in advance for any help that
you might be able to provide!
-Denny Dahl
|