On 9/13/19, Jose Isaias Cabrera wrote: > > Achim Gratz, on Friday, September 13, 2019 02:39 PM, wrote... >> >> Blair, Charles E III writes: >> > My apologies for failing to reply on-list. I don't know how :( >> > >> > My machine is 64 bit, and I hope I installed the correct version of >> > cygwin. >> > >> > This program: >> > >> > #include<stdio.h> >> > int main(){char *a[50][8192]; >> > return 0;} >> > >> > compiles with gcc (no special options) but gives "Segmentation fault". >> >> You are creating an automatic variable that's larger than the default >> stack. You need to enlarge the stack, either during link time or later >> e.g. via >> >> peflags -x0x800000 a.out > > This is great! Thanks. > > But, let's talk about this a bit... Shouldn't the compiler provide some > warning, and also, it should never blow up with a "Segmentation fault". I > believe there should be some type of Out Of Memory error, or something like > it. But now just blow up. Anyone thinks like me? Just my 102 Dominican > cents ($1 = $51 Dominican). :-)
Yes, it would be nice if you got an error message. But once you notice a .stackdump file has magically appeared, then $ gcc -o a.exe starray.c $ ./a Segmentation fault (core dumped) $ cat a.exe.stackdump Exception: STATUS_STACK_OVERFLOW at rip=001004010C6 <.. snip ..> Search for "cygwin STATUS_STACK_OVERFLOW" and find https://github.com/OpenFAST/openfast/issues/144 which gives you $ gcc -o a.exe -Wl,--stack,0x1000000 starray.c $ ./a $ peflags -x a.exe a.exe: stack reserve size : 16777216 (0x1000000) bytes Regards, Lee -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple