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