- 配置中的
local_max_size使用 bytesize 解析, 所以不写单位默认是bytes, 这点可以使用kache configtui 来配置 - kache 使用
--remap-path-prefix1 来共享缓存, 可以使用如下命令来查看
dwarfdump --debug-info target/debug/*.dSYM | grep -m5 comp_dir
这时候就会发现, 有两种占位符 /kache/workspace 和 /kache/.cargo, 这就会导致在 IDE debug 的时候无法正确处理断点
在 zed 中, 可以使用配置 .zed/debug.json
[
{
"label": "Build & Debug native binary",
"build": {
"command": "cargo",
"args": ["build"]
},
"program": "$ZED_WORKTREE_ROOT/target/debug/bin-name",
"sourceLanguages": ["rust"],
"request": "launch",
"adapter": "CodeLLDB",
"sourceMap": {
"/kache/workspace": "$ZED_WORKTREE_ROOT",
"/kache/.cargo": "/your/home/path/.cargo"
}
}
]
但是 JetBrains 的 Rustrover 来说就没办法了, 它既不支持 .lldbinit 也不支持 initCommands, 所以想在其中 debug 的唯一方式就是关闭 RUST_WARRPER, 或者设置 KACHE_RUSTC_PATH_NORMALIZE=0
前者不适合, 毕竟目的就是用 kache, 后者会导致缓存不一致
烦死了, 我决定就用 KACHE_RUSTC_PATH_NORMALIZE=0 毕竟我没 CI 和多机器编译焦虑