惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
罗磊的独立博客
博客园 - 【当耐特】
M
MIT News - Artificial intelligence
月光博客
月光博客
博客园_首页
博客园 - 叶小钗
T
Tailwind CSS Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
I
InfoQ
量子位
小众软件
小众软件
爱范儿
爱范儿
The GitHub Blog
The GitHub Blog
IT之家
IT之家
Jina AI
Jina AI
阮一峰的网络日志
阮一峰的网络日志
G
Google Developers Blog
WordPress大学
WordPress大学
人人都是产品经理
人人都是产品经理
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
J
Java Code Geeks
云风的 BLOG
云风的 BLOG
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报

博客园 - 一些记录

MarkBin(MarkDown++)是一个可见即可的的MarkDown编辑器 下载 免费使用 Win32 Demo AesSafe文件夹加密工具 在断开环境中使用 MSIX 打包工具 修改tarui的html后如何重新编译 cargo tauri build prevAll QT快速创建函数快捷键 alt+enter qt6 mac 需要mac os 12的版本 the installed QT MSVC2022 MISSING DEBUG INFORMATION FILES qt internal error the extendsion c 解决“msvcp140d.dll 找不到”错误 在 wxWidgets 中,setup.h 引用了头文件, build wxwidgets config ld.exe||cannot find -lwxmsw32ud: No such file or directory| 关于Windows“wx/setup.h: No such file or directory”解决 MFC程序错误-在共享DLL中使用MFC Warning: Cannot find any version of the dxcompiler.dll and dxil.dll. windeployqt xxxxxxx.exe --qmldir C:\Qt6\6.9.2\msvc2022_64\qml - 一些记录 护眼颜色
如果 要调试 RA支持吗
一些记录 · 2026-03-26 · via 博客园 - 一些记录

這是一個非常關鍵的誤解:

rust-analyzer (RA) 本身並不具備「調試(Debug)」功能。

LSP(Language Server Protocol)協議只負責語言特性(補全、跳轉、語法檢查)。如果你想在 IDE 中實現「斷點、單步執行、查看變量」,你需要另一個協議:DAP (Debug Adapter Protocol)。

1. RA 與調試器的分工

在專業 IDE(如 VS Code)中,調試功能是由 CodeLLDB 或 cppvsdbg 提供的,而不是 RA。

  • RA (LSP):告訴你這行代碼是什麼意思,哪裡寫錯了。
  • 調試器 (DAP):負責掛載進程、暫停執行、讀取記憶體。

2. 如果你想在 IDE 中實現調試,你需要:

你需要集成一個底層調試引擎。在 Windows 上,通常有兩種選擇:

  • 方案 A:LLVM / LLDB (推薦)
    • 這是 Rust 官方推薦的調試器。你可以下載 lldb-vscode.exe (現在改名為 lldb-dap.exe)。
    • 它同樣支持 JSON 通訊,邏輯與你現在寫的 LSP 非常相似。
  • 方案 B:Microsoft Console Debugger (vsdbg)
    • Visual Studio 使用的調試器,支持 Rust,但在授權和集成上比較複雜。

3. RA 能為調試提供什麼幫助?

雖然 RA 不能調試,但它可以提供「運行按鈕」的代碼位置:

  • Runnable 請求:你可以發送 experimental/runnables 給 RA。
  • 結果:RA 會告訴你當前文件中哪裡有 fn main() 或 #[test],並返回對應的 Cargo 運行命令。
  • 你的操作:你拿到命令後,調用 CreateProcess 啟動 cargo run 或啟動調試適配器。

總結

如果你想在你的 IDE 裡實現「按 F5 偵錯」:

  1. 繼續保留 RA:用於語法提示。
  2. 引入 DAP 服務器:例如 lldb-dap.exe
  3. 通訊方式:與你現在寫的管道 (Pipe) + JSON 邏輯幾乎一模一樣。

你想先試試看讓 RA 告訴你代碼中哪些地方可以「點擊運行 (Runnables)」,還是想了解如何啟動一個 LLDB 調試適配器?

posted on 2026-03-26 21:29  一些记录  阅读(16)  评论()    收藏  举报