pub struct MemCache<K, T>
where
K: Eq + Hash,
{
map: HashMap<K, (u64, T)>,
time_set: TimeoutSet<K>,
last_clear_time: u64,
try_clear_interval: u64,
pub mode: MemCacheMode,
pub time_out_fn: Option<Arc<dyn Fn(K, T) + Send + Sync>>,
}
第三方库, 这里的map
是私有字段, 我想怎么通过unsafe拿到这个map打印一下
1
共 9 条评论, 1 页
评论区
写评论offset加上unsafe指针强转大法
安全边缘疯狂试探
--
👇
nemolc: 用std::mem::transmute_copy,然后打印完用forget掉生成的数据就好了
谢谢
--
👇
nemolc: 用std::mem::transmute_copy,然后打印完用forget掉生成的数据就好了
用std::mem::transmute_copy,然后打印完用forget掉生成的数据就好了
谢谢
--
👇
Bai-Jinlin: 本地定义一个一样的结构,然后mem::transmute转换引用类型,不过这么搞是ub
谢谢
--
👇
aj3n: 有代码直接patch一下加个打印方法就好了,unsafe不至于;
https://doc.rust-lang.org/cargo/reference/overriding-dependencies.html
这样会导致原有的被丢弃
--
👇
Bai-Jinlin: 本地定义一个一样的结构,然后mem::transmute转换引用类型,不过这么搞是ub
本地定义一个一样的结构,然后mem::transmute转换引用类型,不过这么搞是ub
有代码直接patch一下加个打印方法就好了,unsafe不至于;
https://doc.rust-lang.org/cargo/reference/overriding-dependencies.html