[Rd] R on Solaris 10 x64

Greg Nakhimovsky Greg.Nakhimovsky at Sun.COM
Sat Apr 14 00:01:29 CEST 2007


> Hmm, and can you see "both ends" of tgath_buf and buf (in particular 
> tgath_but[curr_len - 1] and buf[curr_len-1])?

(dbx) p tgath_buf[curr_len - 1]
tgath_buf[curr_len-1] = '\0'
(dbx) p buf[curr_len-1]
dbx: cannot access address 0x9f7f6ff
(dbx) p tgath_buf[curr_len - 2]
tgath_buf[curr_len-2] = '\0'
(dbx) p buf[curr_len-2]
dbx: cannot access address 0x9f7f6fe
(dbx)

Something is definitely wrong with this memcpy() operation. I 
suppose we'll need some help from the HDF5 folks to figure out 
what the buf memory buffer is supposed contain in this case.

> If only to "eliminate from our inquiries", I'd try running CPP over the 
> code and see if the full macro expansion (including that from memcpy to 
> _memcpy) is working as intended.

After the macro expansion, this code looks like this:

         for(curr_seq=0; curr_seq<nseq; curr_seq++) {
             curr_len=len[curr_seq];
              memcpy ( ( char * ) ( tgath_buf ) , ( const char * 
) ( buf + off [curr_seq ] ) , curr_len );
             tgath_buf+=curr_len;
         }
> I take it that you've already tried compiling the module at maximal 
> warning level?

No. We can try that, as well as lint.

Thanks.

-Greg



More information about the R-devel mailing list