From: JAY <jay...@ya...> - 2013-03-30 07:34:49
|
I use c. I have inserted here a code which is a short version of a larger one. I intend to copy all the bytes of a file(bmp) into an array. The code executes without any error if the file is small(195894 bytes) but when the file is large(9318414 bytes), while debugging it gives the error:No source available for "__chkstk_ms() at 0x401bf3",in eclipse, when the line "unsigned char b[s];" is executed (debugging in code blocks hangs at the same line). code: #include <stdio.h> #include <math.h> int main(void){ FILE *fp; fp=fopen("D:/1.bmp","rb"); int s,i; i=0; s=0; while(i<4){ fseek(fp,2+i,SEEK_SET); s=s+getc(fp)*pow(256,i); i++; } unsigned char b[s]; fclose(fp); return(0); } i also initialized b manually: b[1000000]/*(1 million)*/:-no error , b[10000000]/*(10 million)*/:(same)error(the debugger not even enters the "main()" modified code: int main(void){ unsigned char b[10000000]; return(0); } I hope someone will help me soon. Thank you |
From: Eli Z. <el...@gn...> - 2013-03-30 08:37:13
|
> From: JAY <jay...@ya...> > Date: Sat, 30 Mar 2013 07:31:55 +0000 (UTC) > > I use c. > I have inserted here a code which is a short version of a larger one. > I intend to copy all the bytes of a file(bmp) into an array. The code executes > without any error if the file is small(195894 bytes) but when the file is > large(9318414 bytes), while debugging it gives the error:No source available for > "__chkstk_ms() at 0x401bf3",in eclipse, when the line "unsigned char b[s];" is > executed (debugging in code blocks hangs at the same line). You are asking for too much stack space, since the array b[] is allocated on the stack. The default stack is 2MB, AFAIR, so anything beyond that will blow up. You requested 9MB. You should allocate such large arrays on the heap, using malloc. |
From: Peter R. <p.r...@sh...> - 2013-03-30 09:53:14
|
On 30/03/13 08:36, Eli Zaretskii wrote: >> From: JAY <jay...@ya...> >> Date: Sat, 30 Mar 2013 07:31:55 +0000 (UTC) >> >> I use c. >> I have inserted here a code which is a short version of a larger one. >> I intend to copy all the bytes of a file(bmp) into an array. The code executes >> without any error if the file is small(195894 bytes) but when the file is >> large(9318414 bytes), while debugging it gives the error:No source available for >> "__chkstk_ms() at 0x401bf3",in eclipse, when the line "unsigned char b[s];" is >> executed (debugging in code blocks hangs at the same line). > You are asking for too much stack space, since the array b[] is > allocated on the stack. The default stack is 2MB, AFAIR, so anything > beyond that will blow up. You requested 9MB. > > You should allocate such large arrays on the heap, using malloc. > > Or use the linker's --stack xxx option to increase the allocated stack space above the default 2MB. (see http://sourceware.org/binutils/docs-2.23.1/ld/Options.html#Options). You can pass this via the gcc command line. P. |
From: JAY <jay...@ya...> - 2013-04-01 10:50:10
|
Peter Rockett <p.rockett@...> writes: > > On 30/03/13 08:36, Eli Zaretskii wrote: > >> From: JAY <jay_v_thakar@...> > >> Date: Sat, 30 Mar 2013 07:31:55 +0000 (UTC) > >> > >> I use c. > >> I have inserted here a code which is a short version of a larger one. > >> I intend to copy all the bytes of a file(bmp) into an array. The code executes > >> without any error if the file is small(195894 bytes) but when the file is > >> large(9318414 bytes), while debugging it gives the error:No source available for > >> "__chkstk_ms() at 0x401bf3",in eclipse, when the line "unsigned char b[s];" is > >> executed (debugging in code blocks hangs at the same line). > > You are asking for too much stack space, since the array b[] is > > allocated on the stack. The default stack is 2MB, AFAIR, so anything > > beyond that will blow up. You requested 9MB. > > > > You should allocate such large arrays on the heap, using malloc. > > > > > Or use the linker's --stack xxx option to increase the allocated stack > space above the default 2MB. (see > http://sourceware.org/binutils/docs-2.23.1/ld/Options.html#Options). You > can pass this via the gcc command line. > > P. > > ------------------------------------------------------------------------------ Thanks to you both. @Eli Zaretskii: I know about malloc and i have used it as work around, but special care needs to be taken with malloc and it also makes the program slower. @Peter Rockett: as i am new to gcc i didn't know about its linker. I was looking for command in the gcc manual but didn't find it. Your link proved to be useful. i used --stack with the linker command and the program ran without error but while debugging the error occurs. is there any command which can be used to increase stack size with compiler/debugger and not linker? i looked in the gcc command option but didn't find one. please reply asap once again thanks to both of you. |
From: Peter R. <p.r...@sh...> - 2013-04-01 12:08:36
|
On 01/04/13 11:49, JAY wrote: > Peter Rockett <p.rockett@...> writes: > >> On 30/03/13 08:36, Eli Zaretskii wrote: >>>> From: JAY <jay_v_thakar@...> >>>> Date: Sat, 30 Mar 2013 07:31:55 +0000 (UTC) >>>> >>>> I use c. >>>> I have inserted here a code which is a short version of a larger one. >>>> I intend to copy all the bytes of a file(bmp) into an array. The code > executes >>>> without any error if the file is small(195894 bytes) but when the file is >>>> large(9318414 bytes), while debugging it gives the error:No source > available for >>>> "__chkstk_ms() at 0x401bf3",in eclipse, when the line "unsigned char > b[s];" is >>>> executed (debugging in code blocks hangs at the same line). >>> You are asking for too much stack space, since the array b[] is >>> allocated on the stack. The default stack is 2MB, AFAIR, so anything >>> beyond that will blow up. You requested 9MB. >>> >>> You should allocate such large arrays on the heap, using malloc. >>> >>> >> Or use the linker's --stack xxx option to increase the allocated stack >> space above the default 2MB. (see >> http://sourceware.org/binutils/docs-2.23.1/ld/Options.html#Options). You >> can pass this via the gcc command line. >> >> P. >> >> ------------------------------------------------------------------------------ > Thanks to you both. > @Eli Zaretskii: I know about malloc and i have used it as work around, but > special care needs to be taken with malloc and it also makes the program slower. > @Peter Rockett: as i am new to gcc i didn't know about its linker. I was looking > for command in the gcc manual but didn't find it. Your link proved to be useful. > i used --stack with the linker command and the program ran without error but > while debugging the error occurs. is there any command which can be used to > increase stack size with compiler/debugger and not linker? i looked in the gcc > command option but didn't find one. The stack (size) is allocated by the linker which is why it's a linker command and not a compiler command. Did you build a separate debug version (-g) and forget the --stack option? P. > please reply asap > once again thanks to both of you. > > > > ------------------------------------------------------------------------------ > Own the Future-Intel® Level Up Game Demo Contest 2013 > Rise to greatness in Intel's independent game demo contest. > Compete for recognition, cash, and the chance to get your game > on Steam. $5K grand prize plus 10 genre and skill prizes. > Submit your demo by 6/6/13. http://p.sf.net/sfu/intel_levelupd2d > _______________________________________________ > MinGW-users mailing list > Min...@li... > > This list observes the Etiquette found at > http://www.mingw.org/Mailing_Lists. > We ask that you be polite and do the same. Disregard for the list etiquette may cause your account to be moderated. > > _______________________________________________ > You may change your MinGW Account Options or unsubscribe at: > https://lists.sourceforge.net/lists/listinfo/mingw-users > Also: mailto:min...@li...?subject=unsubscribe |
From: JAY <jay...@ya...> - 2013-04-02 05:58:28
|
> Did you build a separate debug version (-g) and forget the --stack option? > > P. Yes I exactly did that. Sorry for the foolishness. Problem is solved. Thanks once again |