KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I am interested in profiling some Rcpp code under OS X (Mountain Lion 10.8.2), but the profiler crashes when being run. Toy example, using inline , just designed to take enough time for a profiler to notice. library(Rcpp) library(inline) src.cpp <- " RNGScope scope; int n = as<int>(n_); double x = 0.0; for ( int i = 0; i < n; i++ ) x += (unif_rand()-.5); return wrap(x);" src.c <- " int i, n = INTEGER(n_)[0]; double x = 0.0; GetRNGstate(); for ( i = 0; i < n; i++ ) x += (unif_rand()-.5); PutRNGstate(); return ScalarReal(x);" f.cpp <- cxxfunction(signature(n_="integer"), src.cpp, plugin="Rcpp") f.c <- cfunction(signature(n_="integer"), src.c) If I use either the GUI Instruments (in Xcode, version 4.5 (4523)) or the command line sample , both crash: Instruments crashes straight away, while sample completes processing samples before crashing: # (in R) set.seed(1) f.cpp(200000000L) # (in a separate terminal window) ~ ยป sample R # this invokes the profiler Sampling process 81337 for 10 seconds with 1 millisecond of run time between samples Sampling completed, processing symbols... [1] 81654 segmentation fault sample 81337 If I do the same process but with the C version (i.e., f.c(200000000L) ) both Instruments and sample work fine, and produce output like Call graph: 1832 Thread_6890779 DispatchQueue_1: com.apple.main-thread (serial) 1832 start (in R) + 52 [0x100000e74] 1832 main (in R) + 27 [0x100000eeb] 1832 run_Rmainloop (in libR.dylib) + 80 [0x1000e4020] 1832 R_ReplConsole (in libR.dylib) + 161 [0x1000e3b11] 1832 Rf_ReplIteration (in libR.dylib) + 514 [0x1000e3822] 1832 Rf_eval (in libR.dylib) + 1010 [0x1000aa402] 1832 Rf_applyClosure (in libR.dylib) + 849 [0x1000af5d1] 1832 Rf
Tags (comma-separated)
Save Edits
Cancel