[R] RGui (Windows) crashes after use of a Salford Fortran DLL
Duncan Murdoch
dmurdoch at pair.com
Wed Feb 11 15:11:34 CET 2004
On Wed, 11 Feb 2004 11:30:35 +0000, "Steve Roberts"
<steve.roberts at man.ac.uk> wrote :
>Anybody out there successfully using the Salford Fortran compilers
>with R?
>
>I have created a DLL using the Salford FTN95 compiler and it works
>in as far I can dyn.load it, run the routines and get the right
>answers back. Unfortunately subsequently, sometime later, the
>Rgui crashes (access violation I think from the DrWatson log). The
>crashes depend on whether or not I paste the code as one big
>chunk, or as little chunks, and sometimes I can do a few things
>before it crashes and other times not - but if I do exactly the same
>things the crashes are reproducible. The crashes are sometimes in
>the DLL and sometimes in pure R code. R1.7.1 and 1.8.1 seem to
>behave identically. Windows 2000 Pro.
>
>I do get the dyn.load warning about the DLL changing the FPU
>control word.
>
>Does this ring any bells with anyone?
A reproducible crash sometime later sounds to me like memory
corruption. I'd guess the crash occurs at the next garbage
collection; something has happened to mess up the internal memory
structures, so R goes down.
You can call gc() to trigger a garbage collection just after your call
to your DLL; that's likely to trigger the crash if my guess is right.
Fixing it will be harder: you need to find why your DLL is writing in
someone else's memory space. Perhaps make your arrays larger than
necessary, and check that values that weren't supposed to be touched
stay untouched?
Regarding the FPU control word: general instructions to fix this bug
in your DLL are given on my web page
<http://www.stats.uwo.ca/faculty/murdoch/software/compilingDLLs/>. If
there's anything special about the Salford compiler that needs
mentioning there, please write it up and send it to me.
Duncan Murdoch
More information about the R-help
mailing list