< 返回版块

Clownsw 发表于 2024-05-23 17:48

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打印一下

评论区

写评论
miaomiao1992 2024-06-03 20:26

offset加上unsafe指针强转大法

github.com/shanliu/lsys 2024-05-26 23:45

安全边缘疯狂试探

--
👇
nemolc: 用std::mem::transmute_copy,然后打印完用forget掉生成的数据就好了

作者 Clownsw 2024-05-25 12:55

谢谢

--
👇
nemolc: 用std::mem::transmute_copy,然后打印完用forget掉生成的数据就好了

nemolc 2024-05-24 18:10

用std::mem::transmute_copy,然后打印完用forget掉生成的数据就好了

作者 Clownsw 2024-05-24 07:29

谢谢

--
👇
Bai-Jinlin: 本地定义一个一样的结构,然后mem::transmute转换引用类型,不过这么搞是ub

作者 Clownsw 2024-05-24 07:29

谢谢

--
👇
aj3n: 有代码直接patch一下加个打印方法就好了,unsafe不至于;

https://doc.rust-lang.org/cargo/reference/overriding-dependencies.html

作者 Clownsw 2024-05-24 07:28

这样会导致原有的被丢弃

--
👇
Bai-Jinlin: 本地定义一个一样的结构,然后mem::transmute转换引用类型,不过这么搞是ub

Bai-Jinlin 2024-05-23 20:50

本地定义一个一样的结构,然后mem::transmute转换引用类型,不过这么搞是ub

aj3n 2024-05-23 20:45

有代码直接patch一下加个打印方法就好了,unsafe不至于;

https://doc.rust-lang.org/cargo/reference/overriding-dependencies.html

1 共 9 条评论, 1 页