我嘗試了一些運行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