我正在尝试使用 valgrind 调试我的 R 包,但我无法超过加载数据的点,因为 valgrind 在尝试提取多元 mts 对象的单个时间序列对象时崩溃。我正在使用带有平台 x86_64-redhat-linux-gnu(64 位)的 R 2.15.0。
简约的代码是这样的:
> data(Seatbelts)
> y<-Seatbelts[,"VanKilled"]
似乎崩溃是由于未在分配中定义安全带的行,但如果我使用命令 y<-Seatbelts[1:192,"VanKilled"] 生成的对象不再是时间序列对象. 有什么聪明的方法可以解决这个问题吗?
这是 valgrind 给出的错误
vex amd64->IR: unhandled instruction bytes: 0x66 0xF 0x3A 0xB 0xC0 0xC
==31160== valgrind: Unrecognised instruction at address 0x399fe26990.
==31160== Your program just tried to execute an instruction that Valgrind
==31160== did not recognise. There are two possible reasons for this.
==31160== 1. Your program has a bug and erroneously jumped to a non-code
==31160== location. If you are running Memcheck and you just saw a
==31160== warning about a bad jump, it's probably your program's fault.
==31160== 2. The instruction is legitimate but Valgrind doesn't handle it,
==31160== i.e. it's Valgrind's fault. If you think this is the case or
==31160== you are not sure, please let us know and we'll try to fix it.
==31160== Either way, Valgrind will now raise a SIGILL signal which will
==31160== probably kill your program.
*** caught illegal operation ***
address 0x399fe26990, cause 'illegal opcode'
Traceback:
1: ts(y, start = start(x), frequency = frequency(x))
2: `[.ts`(Seatbelts, , "VanKilled")
3: Seatbelts[, "VanKilled"]
aborting ...