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>
