Richard,

in order to track this down, please start R64, type

Sys.getpid()

and note down the number. Then in a separate window open Terminal and type

gdb

Then on the gdb console (it will just say "(gdb)") type

attach n

where n is the number from above. It will do something for a while and when it comes back in the console, type

c

Then do your work in R until you get a crash. Once you do, you will see something happening in the gdb console. Then type

bt

and copy/paste everything that gdb printed since you typed "c" and send it to me.

Thanks,
Simon

-----

Practical example -- in R:

> Sys.getpid()
[1] 19381

in Terminal:

ginaz:~$ gdb
GNU gdb 6.3.50-20050815 (Apple version gdb-962) (Sat Jul 26 08:14:40 UTC 2008)
[...]
This GDB was configured as "i386-apple-darwin".
(gdb) attach 19381
Attaching to process 19381.
Reading symbols for shared libraries . done
[...]
0x9428a6fa in select$DARWIN_EXTSN ()
(gdb) c
Continuing.

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_PROTECTION_FAILURE at address: 0x00000003
0x00412d09 in SET_SYMVALUE (x=0x1007110, v=0x0) at ../../../../R-2.10- branch/src/main/memory.c:2809 2809 void (SET_SYMVALUE)(SEXP x, SEXP v) { CHECK_OLD_TO_NEW(x, v); SYMVALUE(x) = v; }
(gdb) bt
#0 0x00412d09 in SET_SYMVALUE (x=0x1007110, v=0x0) at ../../../../ R-2.10-branch/src/main/memory.c:2809 #1 0x0041068e in Rf_ReplIteration (rho=0x1023c38, savestack=0, browselevel=0, state=0xbfffe53c) at ../../../../R-2.10-branch/src/main/ main.c:263 #2 0x00410a40 in R_ReplConsole (rho=0x1023c38, savestack=0, browselevel=0) at ../../../../R-2.10-branch/src/main/main.c:311 #3 0x0041129b in run_Rmainloop () at ../../../../R-2.10-branch/src/ main/main.c:964 #4 0x00001ff0 in main (ac=1, av=0xbffff5c8) at ../../../../R-2.10- branch/src/main/Rmain.c:33
(gdb) q
The program is running.  Quit anyway (and detach it)? (y or n) y
Detaching from process 19381 thread 0x613.


On Nov 18, 2009, at 14:39 , Richard R. Liu wrote:

I am experiencing a curious error running R64 (2009-11-18 r50482) on a MacBook Pro 17" Unibody early 2009 with 8GB RAM. In the console excerpt below sentences.1000.clustered is a dataframe consisting of two vectors, sent and cluster. sent is a vector of 1000 sentences chosen at random from over 3 million, and cluster is a vector of integers denoting to which of 5 clusters the sentence belongs. For each cluster I want to display the sentences that belong to it as follows:


R version 2.10.0 Patched (2009-11-18 r50482)
Copyright (C) 2009 The R Foundation for Statistical Computing
ISBN 3-900051-07-0

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

 Natural language support but running in an English locale

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

[R.app GUI 1.30 (5521) x86_64-apple-darwin9.8.0]

[Workspace restored from /Users/richard/.RData]

> library(filehash)
filehash: Simple key-value database (2.0-1 2008-12-19)
> db <- dbInit("/Volumes/Work on RDR Test Documents/R Databases/ DB_TXT", type = "RDS")
> dbLoad(db)
>
> sent.clust <- sentences.1000.clustered
> i.clust.2 <- which(sent.clust$cluster == 2)
> attributes(sent.clust)
$names
[1] "sent"    "cluster"

$row.names
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
...
[987] 987 988 989 990 991 992 993 994 995 996 997 998 999 1000

$class
[1] "data.frame"

> i.clust.2 <- which(sent.clust$cluster == 2)
> nchar(sent.clust$sent[i.clust.2])
[1] 232 419 787 1010 1926 357 2865 657 560 213 2175 2363 1300 359 331 965 581 732 398 245 1650 25893 1289 510 [25] 1714 524 747 2378 465 651 2253 215 460 253 2475 554 1130 529 261 1413 418 2168 1569 1538 301 2506 1163 3036 [49] 1445 199 1231 370 1307 371 379 232 1297 500 409 481 2187 314 730 1634 971 860 362 506 1606 394 145 480 [73] 1582 1471 1269 308 1113 444 990 298 1644 445 357 1204 322 638 2182 805 1545 368 1461 1347 649 399 1094 1624
[97] 14605  1637   269   503   502  2145  1398   481   122  2248
> sent.clust$sent[i.clust.2]
[1] "(patient continuing ...) ______________________________________________________________________________________________________________________________________ Investigator text for Adverse Events encoded using MedDRA version 11.0. "
 [2]
*** caught bus error ***
address 0x114382544, cause 'non-existent physical address'

Possible actions:
1: abort (with core dump, if enabled)
2: normal R exit
3: exit R without saving workspace
4: exit R saving workspace
Selection:

The point of

> i.clust.2 <- which(sent.clust$cluster == 2)
> nchar(sent.clust$sent[i.clust.2])

is to try to isolate the problem. Indeed, the more compact sent.clust$sent[which(sent.clust$cluster == 2)] work when I start R in 32-bit mode. In 64-bit mode, attempting to display the sentences in cluster 5 also fails, whereas for clusters 1, 3, 4 it succeeds. In 32-bit mode, I have experienced no such problem.

Does anybody have any ideas about what is wrong?

Regards,
Richard

_______________________________________________
R-SIG-Mac mailing list
R-SIG-Mac@stat.math.ethz.ch
https://stat.ethz.ch/mailman/listinfo/r-sig-mac

_______________________________________________
R-SIG-Mac mailing list
R-SIG-Mac@stat.math.ethz.ch
https://stat.ethz.ch/mailman/listinfo/r-sig-mac

Reply via email to