dosemu consistantly segfaults on one of my machines. i'm using version 1.1.3.7 with the experimental sound patches under vanilla 2.4.20. machine arch is AMD athlon 1st generation 1.4 GHz with a 1st generation ATI radeon.
the machine didn't oops. backtrace is follows: lucifer# gdb /usr/local/bin/dos-debug (gdb) run Starting program: /usr/local/bin/dos-debug Linux kernel 2.4.19; CPU speed is 1300264000 Hz Dosemu-1.1.3.7 Running on CPU=586, FPU=1 Program received signal SIGSEGV, Segmentation fault. 0x080aeda4 in real_yylex (yylval=0x4d003b) at lexer.l:707 707 yylval->s_value = strdup(&yytext[1]); (gdb) bt #0 0x080aeda4 in real_yylex (yylval=0x4d003b) at lexer.l:707 #1 0x08107251 in _IO_stdin_used () the area of code: (gdb) l 707 702 {STRQUOTELESS} MAY_BEFORME { 703 yylval->s_value = strdup(yytext); 704 EXPRTYPE(yylval->s_value) = TYPE_STRQUOTELESS; 705 return(STRING); } 706 ${IDENT} MAY_BE { 707 yylval->s_value = strdup(&yytext[1]); 708 EXPRTYPE(yylval->s_value) = TYPE_STRQUOTELESS; 709 return(VARIABLE); 710 } 711 $${IDENT} MAY_BE { enter_macrofile(&yytext[2]);} (gdb) printf "%s", &yytext[1] _DOSEMU_ORIG_PATH(gdb) (gdb) printf "%s", strdup(&yytext[1]) _DOSEMU_ORIG_PATH(gdb) (gdb) printf "%s", yylval->s_value Cannot access memory at address 0x4d003b (gdb) printf "%s", yylval->s_value Cannot access memory at address 0x4d003b (gdb) ptype yylval->s_value type = char * (gdb) p yylval->s_value = strdup(&yytext[1]) Cannot access memory at address 0x4d003b i'm a bit confused at this point. it looks like the address returned by strdup is no good, but i have no idea how that can be. strace provides no help: write(2, "Linux kernel 2.4.19; CPU speed i"..., 48) = 48 write(2, "Dosemu-1.1.3.7 Running on CPU=58"..., 41) = 41 brk(0x832d000) = 0x832d000 --- SIGSEGV (Segmentation fault) --- +++ killed by SIGSEGV +++ ltrace output pretty much confirms what the backtrace said: strcmp("parser_version_3", "h_lucifer") = 8 strcmp("parser_version_3", "c_all") = 13 strcmp("parser_version_3", "parser_version_3") = 0 strchr(""/etc/dosemu.conf"", '\n') = NULL __strdup(0x08329490, 10, 0, 0x080aa782, 0x08107251) = 0x0832cb78 --- SIGSEGV (Segmentation fault) --- +++ killed by SIGSEGV +++ dosemu works fine on my other machines. this seems to be a problem with this machine only, but nothing about this looks arch dependent to me. any suggestions? pete -- Fingerprint: B9F1 6CF3 47C4 7CD8 D33E 70A9 A3B9 1945 67EA 951D - To unsubscribe from this list: send the line "unsubscribe linux-msdos" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html