Skip to content

[R-pkg-devel] scripting R through lldb

3 messages · Guillaume Chapron, Kevin Ushey

#
Hello,

I am debugging a package that contains some compiled C code. The C code uses R random number generator so I cannot (or have not figured out how to) debug it without running it through R. What I do is to type the following in the terminal:

R --debugger=lldb

then in the lldb prompt

r

and within R

source("~/Desktop/test.R?)

which is the file calling the C library. When the library crashes I can navigate the C memory to see where is the problem.

My question is whether there is a way to have this in single line or script to run from the terminal. I have looked on stackoverflow but could not find.

Many thanks

Guillaume
#
Hi Guillaume,

I have a script that does this (for OS X) here, taking advantage of
the new '--batch' argument to lldb:

    https://github.com/kevinushey/etc/blob/master/lang/r/mac/bin/r-lldb

Note that, on recent versions of OS X due to system integrity
protection, this may not work with the system lldb, as it appears
there are restrictions on how certain environment variables, e.g.
DYLD_FALLBACK_LIBRARY_PATH, can be set for system executables. (If you
are indeed on OS X, you can try building your own version of lldb --
see e.g. https://github.com/kevinushey/etc/blob/master/platform/mac/install-llvm.sh
for that)

In the end, you should be able to use this script as e.g.

    r-lldb -f test.R

and this will launch lldb, set R as the target process, with '-f
test.R' passed to the R executable.

Depending on your OS / configuration, you might need to tweak the
script, but it will hopefully either 'work out of the box' or at least
serve as a starting point for your version.

Best,
Kevin

On Wed, Jun 15, 2016 at 12:39 PM, Guillaume Chapron
<carnivorescience at gmail.com> wrote:
#
Fantastic, it works perfectly, many thanks!

Guillaume