Message-ID: <34FECC72.2575@CGSTE.MQ> Date: Thu, 05 Mar 1998 10:01:54 -0600 From: HANRIGOU Philippe Reply-To: HANRIGOU AT cgste DOT mq Organization: CONSEIL GENERAL DE LA MARTINIQUE / DGA2 MIME-Version: 1.0 To: Eli Zaretskii CC: djgpp AT delorie DOT com Subject: Re: Problem with bash Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Precedence: bulk Eli Zaretskii wrote: > I can confirm that Bash works flawlessly for me on Windows 95. So lucky!!! :) > Somebody reported a very similar problem a few weeks ago, but he didn't > follow up after I asked to check several things. I attach my two > messages in that thread below; please see if your case is similar enough, > and if so, please try to run the tests I was suggesting then and report > the results. Yes, definitely, my case is very similar. I've got exactly the same problems and behaviours. Here is the result of a few tests you suggested. > Did you set LFN=y in the environment? If not, try setting it and see if > that helps. I've tried to run bash setting LFN=y (launching it with -norc and -noprofile options). But everything's the same! > Please tell exactly what version of Windows is that. It is > definitely something specific to your configuration or the variety of > Windows 95 that you use (the other guy told me he had version 4.00.950B); > my version is 4.00.950-r7. I've seen Control Panel's "System General" tab and run the 'ver' command: It seams that my version is 4.00.950. I've got no beta version or release indication (as "-r7"). Is it simply because this is the first release or should I look for this information somewhere else? > Please post the traceback which is printed after CTRL-BREAK. The other > guy posted a traceback which clearly showed a terrible mess (see below). Here is a log of a 'classic' session (bash freezed after displaying the second 'bash$' prompt and then I typed CTRL+BREAK): C:\djgpp>bash bash$ ls bin gnu lib readme.1st zip-picker.cgi copying.dj include manifest share zoneinfo djgpp.env info pipo.c tmp faq lang pipo.exe tutorial bash$ Exiting due to signal SIGSEGV General Protection Fault at eip=000420e5 eax=000010ae ebx=00000024 ecx=00000002 edx=0003ffe8 esi=00000222 edi=00067414 ebp=00168040 esp=00000fec program=C:\DJGPP\BIN\BASH.EXE cs: sel=00a7 base=82ad2000 limit=ffe99fff ds: sel=0000 es: sel=00b7 base=82ad2000 limit=ffe99fff fs: sel=00bf base=00000000 limit=ffffffff gs: sel=00bf base=00000000 limit=ffffffff ss: sel=0183 invalid Call frame traceback EIPs: 0x000420e5 C:\djgpp> End of log. As you can see the traceback is very similar to Eric Kidd's one: DS is trash and SS is invalid. What a mess! > > (Eric Kidd wrote:) To freeze the terminal, I must launch > > an external command--a blank command line or a shell built-in such as 'set' > > won't cause the problem. These facts appear to indicate a problem with > > starting the new process, or setting up its I/O. > > Does this happen only with DJGPP-compiled programs, or *any* external > program will do that? How about XCOPY or some other program DOS which > comes with Windows? > No. There is no problem if I run only DOS programs that comes with windows, blank command line, or 'set' shell built-in. I've been able to launch as many dos commands as I wanted (xcopy, edit, debug, label, mem, chkdsk, ...) without any freezing. > The DOS box is screwed up also? So maybe it's the Windows' fault? > Please try booting into plain DOS (no Windows) and see if the same > problem happens there as well. I've tried but I've got no DPMI server! Should I get csdpmi*b.zip as suggested in the error message, and install it? > Please write a simple program which reads from stdin using `getc' ot > `scanf', run it, and if it hangs also, press Ctrl-BREAK and hit > [Enter]. Then post the traceback after running `symify' on it, > together with the test program's source. I've made two programs from the same source code. The first one, named foo.exe has been compiled with gcc (version 2.7.2.1, from DJGPP utilities). The second one, named bar.exe, has been compiled with Borland C++ 3.1 (Don't laugth, I had no other C compiler...). Here is the source code of these programs: #include int main(int argc, char *argv[]) { int c; while ((c = getc(stdin)) != EOF) putc(c, stdout); return 0; } End of source code. Then I've tried to run a few "echo hello | foo" and "echo hello | bar" commands. And you know what? I can run as many "echo hello | bar" commands as I want (compiled with Borland C++ 3.1). But as soon as I run a "echo hello | bar" command, bash freezes. Here is the log of a session of this kind (as usual bash freezed after the second bash$ prompt and then I typed CTRL+BREAK) : C:\djgpp>bash bash$ echo hello | foo hello bash$ Exiting due to signal SIGSEGV General Protection Fault at eip=000420e5 eax=000010ae ebx=0000002e ecx=00000002 edx=0003ffe8 esi=00000222 edi=00067414 ebp=00168040 esp=00000fec program=C:\DJGPP\BIN\BASH.EXE cs: sel=00a7 base=82ad2000 limit=ffeacfff ds: sel=0000 es: sel=00b7 base=82ad2000 limit=ffeacfff fs: sel=00bf base=00000000 limit=ffffffff gs: sel=00bf base=00000000 limit=ffffffff ss: sel=0133 invalid Call frame traceback EIPs: 0x000420e5 End of log. Note that, of course, "echo hello | foo" works perfectly from the dos shell. I haven't run 'symify' on this traceback (as you asked me). Indeed, if I've well understood the FAQS about symify (not so sure!), I would need a 'bash.exe' program compiled with '-g' option to do so (as bash display a prompt before freezing, we are not in foo.exe code. Moreover the call frame traceback has only one entry which should be bash main entry point ( That's what I suppose). I've dowloaded bash sources, but the problem is that I haven't suceeded yet in compiling it. Maybe I could download a 'ready to test' version of bash compiled with "-g" option. Do you know where I could find that?. Thanks a lot for your help and excuse me for my poor english (You know, the french have no talent for foreign languages). Philippe.