我尝试了一些运行Lua代码的尝试,并在运行低谷C/C++
时检索其值,但我的应用程序因分段故障而崩溃。如何从Lua运行进程读取变量值(获取过程变量值)?
例如。访问不正确的内存:
到目前为止,我得到了这个。简单的过程,用Lua解释器:
a = {5}
local Cnt1 = 0
local Cnt2 = 0
while true do
Cnt2 = Cnt2 + 1
if(Cnt2 == 100000000) then
Cnt2 = 0
print("Irer: "..Cnt1.." Address: "..tostring(a).." Value: "..a[1])
Cnt1 = Cnt1 + 1
end
end
无限循环实际上是为了保持进程唤醒和表地址常量。
正如您所看到的,我打印出“a”的地址,我将其复制到控制台本身的C(代码块)中。之后,我又写了程序,在这里我硬编码的指针像这样的存储器映射:
unsigned char *p = (unsigned char *)0x78C070;
printf("Value: %u",*p);
return 0;
可能的方式是
1)的方式,我可以尝试是一个文件,但它确实慢(HDD)
2)ram-disk上的文件 - 速度很快,但不是每个人都有一个ram-disk。
使用'%p'打印指针。另外,如果你不介意一些额外的C代码,你可以使用'mmap'来共享内存。 – 2014-10-27 13:01:36
这看起来像[XY问题](http://meta.stackexchange.com/a/66378)。请给我们一万英尺的看法。 – 2014-10-27 22:20:28