Hi! Yes, I am returning a SEXP from the functions called from R, and the problem occurs before (thousands of iterations before) the return point. In fact I runned valgrind into R and when I call ".Call(...) " I got many errors like: ==4324== Use of uninitialised value of size 8 ==4324== at 0x1CB0766D: tnls_ (gencan.f:4101) ==4324== by 0x1CB01962: gencan_ (gencan.f:1876) ==4324== by 0x1CAFECA5: easygencan_ (gencan.f:440) ==4324== by 0x1CB0B47D: algencan_ (algencan.f:517) ==4324== by 0x1CB09E74: easyalgencan_ (algencan.f:76) ==4324== by 0x1CAFE5B3: main (algencanma.c:808) what does not happens when I compile the algencanma as a regular program (not a library) and run it from shell. Valgrind does not find anything wrong when I run the program directly, except 2 missing free() calls. Do you have any ideas where the problem lies (R .Call function or C program)? By the way I am using a debian linux with kernel 2.6.
Thanks Ricardo On 8/26/05, Byron Ellis <[EMAIL PROTECTED]> wrote: > Are you returning a SEXP? .Call (unlike .C) expects a SEXP return > value. It sounds like you're returning garbage and R is choking on > that when it tries to use the address as a SEXP. > > On Aug 26, 2005, at 3:19 PM, Ricardo Luiz Andrade Abrantes wrote: > > > Hello to everyone! > > I use .Call to call a C function without arguments wich calls a > > fortran optimization package. My C function uses others C and Fortran > > functions and it works fine when I call it from a main() in a C > > program. But when I call it from R with > > .Call("name_of_the_c_function"), R gives me some weird output. > > This weird output is a worng answer to my optimization problem > > (sometimes after thousands iteractions, what does not occur when > > called from C) or a segmentation fault error. The kind of output > > depends on the machine I am using. At home I got a segmentation faul, > > in university I got those wrong values. > > I tried a memcheck in C and Fortran binaries, but everything seems > > allright except by 2 missing free() calls (wich I don`t think might be > > causing this error). > > I compiled my C and Fortran files with R CMD SHARED and then linked > > all the .o with the same command. I also tried compiling all the > > needed object files with -fPIC and -shared and then using R CMD SHARED > > to link everything, but I got the same problem. > > The only thing I do in R is the following: > > > > dyn.load("mylib.so") > > .Call("name_of_the_c_function") > > > > Can someone hellp me with this? > > > > > > Thanks! > > > > > > Ricardo > > > > ______________________________________________ > > R-devel@r-project.org mailing list > > https://stat.ethz.ch/mailman/listinfo/r-devel > > > > --- > Byron Ellis ([EMAIL PROTECTED]) > "Oook" -- The Librarian > > ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel