[gnu.emacs.bug] Problems with emacs

bytheway@CS.UTAH.EDU (Sidney G Bytheway) (01/20/90)

--------------------------
I sent this message to you earlier this week but have since discoverd that
mail is not comming back to the site I asked you to send the reply to.
So I am re-sending this message from a machine that I know can receive mail.
--------------------------

I have a copy of emacs-dist-18.55 on my IBM PS/2 running AIX 1.2.  When I
try to make emacs the command "./temacs -batch -l inc-vers" core dumps on a
segmentation fault on line 1249 of file regex.c.  I looked in the PROBLEMS
listing and cannot find my problem there.  To make sure I have the most
recent version of emacs I ftped to prep.ai.mit.edu and could not find a newer
version, nor could I see any additional problem files.

Could you help me out here?  I have included a dbx session where I ran the
failing command tracing the variable that caused the segmentation fault.
I listed the code that received the segmentation fault, and the code where
the variable received it's bad value.

Thank You,
Sid Bytheway (bytheway@cs.utah.edu)
University of Utah Super Computing Institute

-----------------------------------------------------------------------------

Script started on Tue Jan 16 09:51:03 1990
1 bumps>dbx temacs
dbx version 1.1 of AIX.
Type 'help' for help.
reading symbolic information ...
[using memory image in core]
re_match_2(pbufp = (nil), string1 = "text", size1 = 1, string2 = (nil), size2 = 0, pos = 0, regs = (nil), mstop = 0), line 1249 in "regex.c"


(dbx) trace regex.re_match_2.p
[1] trace regex.re_match_2.p in re_match_2


(dbx) run -batch -l inc-vers
Loading inc-vers...
initially (at line 1158 in "regex.c"):	regex.re_match_2.p = "^A^Oemacs-version "^E\n"
after line 1249 in "regex.c":	regex.re_match_2.p = "^Oemacs-version "^E\n"
after line 1566 in "regex.c":	regex.re_match_2.p = "emacs-version "^E\n"
after line 1572 in "regex.c":	regex.re_match_2.p = "macs-version "^E\n"
after line 1572 in "regex.c":	regex.re_match_2.p = "acs-version "^E\n"
after line 1057 in "regex.c":	regex.re_match_2.p = "^A^Oemacs-version "^E\n"
after line 1249 in "regex.c":	regex.re_match_2.p = "^Oemacs-version "^E\n"
after line 1566 in "regex.c":	regex.re_match_2.p = "emacs-version "^E\n"
after line 1572 in "regex.c":	regex.re_match_2.p = "macs-version "^E\n"
after line 1572 in "regex.c":	regex.re_match_2.p = "acs-version "^E\n"
after line 1057 in "regex.c":	regex.re_match_2.p = "^A^Oemacs-version "^E\n"
after line 1249 in "regex.c":	regex.re_match_2.p = "^Oemacs-version "^E\n"
after line 1566 in "regex.c":	regex.re_match_2.p = "emacs-version "^E\n"
after line 1572 in "regex.c":	regex.re_match_2.p = "macs-version "^E\n"
after line 1572 in "regex.c":	regex.re_match_2.p = "acs-version "^E\n"
.
.
.
after line 1057 in "regex.c":	regex.re_match_2.p = "^A^Oemacs-version "^E\n"
after line 1249 in "regex.c":	regex.re_match_2.p = "^Oemacs-version "^E\n"
after line 1566 in "regex.c":	regex.re_match_2.p = "emacs-version "^E\n"
after line 1572 in "regex.c":	regex.re_match_2.p = "macs-version "^E\n"
after line 1572 in "regex.c":	regex.re_match_2.p = "acs-version "^E\n"
after line 1572 in "regex.c":	regex.re_match_2.p = "cs-version "^E\n"
after line 1572 in "regex.c":	regex.re_match_2.p = "s-version "^E\n"
after line 1572 in "regex.c":	regex.re_match_2.p = "-version "^E\n"
after line 1572 in "regex.c":	regex.re_match_2.p = "version "^E\n"
after line 1057 in "regex.c":	regex.re_match_2.p = "^A^Oemacs-version "^E\n"
after line 1249 in "regex.c":	regex.re_match_2.p = "^Oemacs-version "^E\n"
after line 1566 in "regex.c":	regex.re_match_2.p = "emacs-version "^E\n"
after line 1572 in "regex.c":	regex.re_match_2.p = "macs-version "^E\n"
after line 1572 in "regex.c":	regex.re_match_2.p = "acs-version "^E\n"
after line 1057 in "regex.c":	regex.re_match_2.p = "^A^Oemacs-version "^E\n"
after line 1249 in "regex.c":	regex.re_match_2.p = "^Oemacs-version "^E\n"
after line 1566 in "regex.c":	regex.re_match_2.p = "emacs-version "^E\n"
after line 1572 in "regex.c":	regex.re_match_2.p = "macs-version "^E\n"
after line 1572 in "regex.c":	regex.re_match_2.p = "acs-version "^E\n"
after line 1057 in "regex.c":	regex.re_match_2.p = "^A^Oemacs-version "^E\n"
after line 1249 in "regex.c":	regex.re_match_2.p = "^Oemacs-version "^E\n"
after line 1566 in "regex.c":	regex.re_match_2.p = "emacs-version "^E\n"
after line 1572 in "regex.c":	regex.re_match_2.p = "macs-version "^E\n"
after line 1572 in "regex.c":	regex.re_match_2.p = "acs-version "^E\n"
after line 1572 in "regex.c":	regex.re_match_2.p = "cs-version "^E\n"
after line 1572 in "regex.c":	regex.re_match_2.p = "s-version "^E\n"
after line 1572 in "regex.c":	regex.re_match_2.p = "-version "^E\n"
after line 1572 in "regex.c":	regex.re_match_2.p = "version "^E\n"
after line 1572 in "regex.c":	regex.re_match_2.p = "ersion "^E\n"
after line 1572 in "regex.c":	regex.re_match_2.p = "rsion "^E\n"
after line 1572 in "regex.c":	regex.re_match_2.p = "sion "^E\n"
after line 1572 in "regex.c":	regex.re_match_2.p = "ion "^E\n"
after line 1572 in "regex.c":	regex.re_match_2.p = "on "^E\n"
after line 1572 in "regex.c":	regex.re_match_2.p = "n "^E\n"
after line 1572 in "regex.c":	regex.re_match_2.p = " "^E\n"
after line 1572 in "regex.c":	regex.re_match_2.p = ""^E\n"
after line 1572 in "regex.c":	regex.re_match_2.p = "^E\n"
after line 1249 in "regex.c":	regex.re_match_2.p = "\n"
after line 1381 in "regex.c":	regex.re_match_2.p = ""
after line 1383 in "regex.c":	regex.re_match_2.p = "^K^E"
after line 1249 in "regex.c":	regex.re_match_2.p = "^E"
after line 1335 in "regex.c":	regex.re_match_2.p = "^G\0363\0377^H^C"
after line 1249 in "regex.c":	regex.re_match_2.p = "\0363\0377^H^C"
after line 1392 in "regex.c":	regex.re_match_2.p = "\0377^H^C"
after line 1394 in "regex.c":	regex.re_match_2.p = "^H^C"
after line 1422 in "regex.c":	regex.re_match_2.p = "\0363\0377^H^C"
after line 1438 in "regex.c":	regex.re_match_2.p = "\0377^H^C"
after line 1440 in "regex.c":	regex.re_match_2.p = (invalid char ptr (0x859599))

segmentation violation in re_match_2 at line 1249 in file "regex.c"
 1249         switch ((int) ((enum regexpcode) *p++))




(dbx) list 1230,1260
 1230   		    }
 1231    		  if (regstart_seg1[mcnt])
 1232   		    regs->start[mcnt] = regstart[mcnt] - string1;
 1233   		  else
 1234   		    regs->start[mcnt] = regstart[mcnt] - string2 + size1;
 1235    		  if (regend_seg1[mcnt])
 1236   		    regs->end[mcnt] = regend[mcnt] - string1;
 1237   		  else
 1238   		    regs->end[mcnt] = regend[mcnt] - string2 + size1;
 1239   		}
 1240   	    }
 1241    	  if (dend == end_match_1)
 1242   	    return (d - string1 - pos);
 1243   	  else
 1244   	    return d - string2 + size1 - pos;
 1245   	}
 1246   
 1247         /* Otherwise match next pattern command */
 1248   #ifdef SWITCH_ENUM_BUG
 1249         switch ((int) ((enum regexpcode) *p++))
 1250   #else
 1251         switch ((enum regexpcode) *p++)
 1252   #endif
 1253   	{
 1254   
 1255   	/* \( is represented by a start_memory, \) by a stop_memory.
 1256   	    Both of those commands contain a "register number" argument.
 1257   	    The text matched within the \( and \) is recorded under that number.
 1258   	    Then, \<digit> turns into a `duplicate' command which
 1259   	    is followed by the numeric value of <digit> as the register number. */
 1260   




(dbx) list 1430,1450
 1430   	   back to the start, where another failure point will be made
 1431   	   which will point after all the repetitions found so far. */
 1432   
 1433   	case finalize_jump:
 1434   	  stackp -= 2;
 1435   
 1436   	case jump:
 1437   	nofinalize:
 1438   	  mcnt = *p++ & 0377;
 1439   	  mcnt += SIGN_EXTEND_CHAR (*(char *)p) << 8;
 1440   	  p += mcnt + 1;	/* The 1 compensates for missing ++ above */
 1441   	  break;
 1442   
 1443   	case dummy_failure_jump:
 1444   	  if (stackp == stacke)
 1445   	    {
 1446   	      unsigned char **stackx
 1447   		= (unsigned char **) alloca (2 * (stacke - stackb)
 1448   					     * sizeof (char *));
 1449   	      bcopy (stackb, stackx, (stacke - stackb) * sizeof (char *));
 1450   	      stackp = stackx + (stackp - stackb);
(dbx) quit
2 bumps>exit
3 bumps>
script done on Tue Jan 16 09:56:12 1990