delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1998/03/05/09:08:56

Message-ID: <34FECC72.2575@CGSTE.MQ>
Date: Thu, 05 Mar 1998 10:01:54 -0600
From: HANRIGOU Philippe <HANRIGOU AT cgste DOT mq>
Reply-To: HANRIGOU AT cgste DOT mq
Organization: CONSEIL GENERAL DE LA MARTINIQUE / DGA2
MIME-Version: 1.0
To: Eli Zaretskii <eliz AT is DOT elta DOT co DOT il>
CC: djgpp AT delorie DOT com
Subject: Re: Problem with bash

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 <stdio.h>



 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.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019