嵌套式项目中Vscode中调试Rust的一些问题解决
创始人
2024-11-05 01:40:26
0

嵌套式项目指定Rust目录

由于是嵌套式项目,比如C++代码中对Rust进行了Bind,Rust目录就在项目子目录中,为了让vscode中安装的rust-analyzer识别到正确的rust项目目录,在.vscode/settings.json中添加如下

    "rust-analyzer.linkedProjects": [         "xxx/yyy/Cargo.toml"      ] 

Vscode debug Rust

比如rust项目中有个test程序,test_demo。在vscode中,需要安装LLDB的插件,可以生成launch.json文件,以及选择LLDB的选项生成不同Rust调试配置,比如cargo test, cargo build, attach, launch等。
配置项如下:

{     "version": "0.2.0",     "configurations": [          {             "type": "lldb",             "request": "launch",             "name": "Debug executable 'hello_world'",             "cargo": {                 "args": [                     "test",                     "-p",                     "gpt4-rs",                     "--test",                     "test_create_model",                     "--no-run",                     "--manifest-path=${workspaceFolder}/xxx/rust/Cargo.toml"                 ]                 // "filter": {                 //     "name": "hello_world",                 //     "kind": "bin"                 // }             },             "program": "${cargo:program}",             "args": [],             "cwd": "${workspaceFolder}/gpt4all-bindings/rust",             "env": {                 "LD_LIBRARY_PATH": "/home/ken/Codes/xxx/build:/home/ken/Codes/yyy/build"             }         }        ] } 

包括了如下细节:
(1)设置环境变量env;
(2)–manifest-path=${workspaceFolder}/xxx/Cargo.toml设置rust项目位置,不然识别不了;
(3)设置test目标名称:test_demo,设置rust package name:gpt4-rs。

rust binding调试c++ so

如果要为c++或者c代码绑定rust code,c++编译生成动态链接库。这时要调试so,选择上面的launch方式,cargo run 或者 cargo test运行rust代码。
然后将so编译成为debug模式,在vscode的c++代码中打上断点,启动程序调试。直接就会断点到so内部对应的代码行。

两个要点:

  • 编译动态链接库debug版本
  • 按照上一节配置rust vscode调试启动程序

cmake项目编译debug so:

cmake -B build -S . -DCMAKE_BUILD_TYPE=DEBUG cmake --build build 

attach是用于已经启动了一个持续运行的程序(比如启动了一个server)(如果程序一下子就结束了,这种方式使用launch调试),这个程序加载了so,然后调试so就选择attach(中文直译就是依附到这个程序上,翻译有点傻)。

相关内容

热门资讯

今年以来!wpk安卓下载辅助,... 今年以来!wpk安卓下载辅助,哈狗辅助,模板教程(讲解有挂)哈狗辅助辅助器是一种具有地方特色的麻将游...
据公告内容!约局吧德州有挂吗,... 据公告内容!约局吧德州有挂吗,摸一把游戏跑得快辅助,练习教程(有挂神器)1、每一步都需要思考,不同水...
在玩家背景下!werplan怎... 在玩家背景下!werplan怎么透视,广西友乐辅助app,技法教程(有挂规律)小薇(辅助器软件下载)...
代打辅助挂!wepoker破解... 代打辅助挂!wepoker破解器激活码,丽水都来辅助器,妙招教程(今日头条)丽水都来辅助器脚本下载中...
复盘辅助挂!来玩app破解版,... 复盘辅助挂!来玩app破解版,老友广西玩有破解视频,技法教程(证实有挂)1、金币登录送、破产送、升级...
据文件显示!wepoker怎么... 据文件显示!wepoker怎么挂飞机,广西友乐解码器,讲义教程(有挂秘笈)暗藏猫腻,小编详细说明广西...
此事引发广泛关注!hhpoke... 此事引发广泛关注!hhpoker软件靠谱吗,小程序怎么开挂,机巧教程(发现有挂)1、进入到小程序怎么...
黑科技教程!hardrock透... 黑科技教程!hardrock透视工具,桂麻圈辅助器,练习教程(有挂存在)1、下载好桂麻圈辅助器脚本下...
突发!hhpoker辅助,湖北... 突发!hhpoker辅助,湖北逍遥辅助器,课程教程(揭秘有挂)亲,关键说明,湖北逍遥辅助器透视脚本安...
值得注意的是!德普之星透视辅助... 值得注意的是!德普之星透视辅助,天天炫斗辅助工具,方式教程(有挂神器)值得注意的是!德普之星透视辅助...