使用AddressSanitizer支持从源代码编译R.

时间:2017-03-01 14:49:34

标签: r address-sanitizer

如何使用AddressSanitizer支持从源代码编译R或R-devel?

背景:我的R包通过Rcpp调用几个C ++函数。其中一个抛出堆缓冲区溢出错误

ERROR: AddressSanitizer: heap-buffer-overflow on address 0x611001558228 at pc 0x7f99bd0afabf bp 0x7ffeb8c90cd0 sp 0x7ffeb8c90cc8

......所以CRAN团队告诉我。在使用支持ASAN(AddressSanitizer)的R版本时,仅显示错误。在我自己的R和R-devel版本中,R CMD check --as-cranStatus: OK结束。要调试错误,我需要一个可以重现它的R版本。

我在arch linux(4.9.11-1-ARCH)上运行R。我可以通过Rpacman通过R-devel安装yaourt。但是对于这个问题,我认为可能必须从源代码安装R,这是我从未做过的。

Section 4.3.3 of Writing R extensions似乎很关键,但我不明白。

0 个答案:

没有答案