Date: Mon, 2 Feb 2004 17:45:18 +0100 From: "Walter C. Pelissero" <walter@pelissero.de> To: freebsd-questions@freebsd.org, freebsd-emulation@freebsd.org Subject: Re: Acu Cobol 6.0 for Linux Message-ID: <16414.32414.975014.398336@hyde.home.loc> In-Reply-To: <200401291747.i0THlLL04725@clunix.cl.msu.edu> References: <16409.17392.62258.191839@hyde.home.loc> <200401291747.i0THlLL04725@clunix.cl.msu.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
I realised that the ktrace log was rubbish; most of the syscalls names were not properly mapped. I tried to track down the exact spot were the Linux executable gets the SEGV signal, running strace on a Debian system and comparing the values passed to the system calls. Here is an extract: rt_sigaction(SIGTSTP, {0x8072ce0, [TSTP], SA_RESTART|0x4000000}, {SIG_IGN}, 8) = 0 rt_sigaction(SIGHUP, {0x8072ca0, [HUP], SA_RESTART|0x4000000}, {SIG_DFL}, 8) = 0 rt_sigaction(SIGTERM, {0x8072bf0, [TERM], SA_RESTART|0x4000000}, {SIG_DFL}, 8) = 0 rt_sigaction(SIGFPE, {0x804f910, [FPE], SA_RESTART|0x4000000}, {SIG_DFL}, 8) = 0 rt_sigaction(SIGBUS, {0x804f940, [BUS], SA_RESTART|0x4000000}, {SIG_DFL}, 8) = 0 rt_sigaction(SIGSEGV, {0x804f910, [SEGV], SA_RESTART|0x4000000}, {SIG_DFL}, 8) = 0 rt_sigaction(SIGILL, {0x804f910, [ILL], SA_RESTART|0x4000000}, {SIG_DFL}, 8) = 0 rt_sigaction(SIGSYS, {0x804f910, [SYS], SA_RESTART|0x4000000}, {SIG_DFL}, 8) = 0 rt_sigaction(SIGPIPE, {SIG_IGN}, {SIG_DFL}, 8) = 0 rt_sigaction(SIGALRM, NULL, {SIG_DFL}, 8) = 0 rt_sigaction(SIGALRM, {SIG_DFL}, NULL, 8) = 0 brk(0x81c2000) = 0x81c2000 ^^^^^^^^^^^^^^--- SEGV on FreeBSD! brk(0x81c3000) = 0x81c3000 brk(0x81c4000) = 0x81c4000 brk(0x81c5000) = 0x81c5000 brk(0x81c6000) = 0x81c6000 So it was rt_sigaction() and not pwrite(); brk() and not ktrace(). Does this shed a new light? -- walter pelissero http://www.pelissero.de
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?16414.32414.975014.398336>