Hi,
after making world of a CURRENT cvsupped yesterday, one of my
applications stopped working because of a Segmentation fault.
The C procedure where the problem pops has about 64k local variables.
here's the assembly output of the procedure's beginning:
0x805bb60 <transaction_read_objects>: pushl %ebp
0x805bb61 <transaction_read_objects+1>: movl %esp,%ebp
0x805bb63 <transaction_read_objects+3>: subl $0x1000c,%esp
0x805bb69 <transaction_read_objects+9>: pushl %edi
The Segmentation fault happens when the process tries to push %edi in
the stack, which has been just decreased by 0x1000c.
here's the stack in the beginning of main():
esp 0xbfbfd744
ss 0x27
and after the fault:
esp 0xbfacae68
ss 0x27
If I decrease the size of the local vars, it goes ok.
It's interesting, because I made a simple test using 640k local vars,
and it worked!
void ab() {
char buf[655360];
buf[0] = 0;
buff[655359] = 0;
}
main () {
ab();
}
--iani
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message