文章目录
- rust
- Cargo
- Creating a rust project
- How to Debug Rust Programs using VSCode
- basic debugging
- How to pass arguments in Rust debugging with VS Code.
- References
rust
Cargo
Cargo is a package management tool used for downloading, compiling, updating, and managing dependencies in Rust. It is installed automatically when Rust is installed and does not require any manual intervention from the user.
Creating a rust project
cargo new hello_world
Project Structure
$ cd hello_world
$ tree .
.
├── Cargo.toml
└── src
└── main.rs
1 directory, 2 files
Cargo.toml is the configuration file used by Cargo.
[package]
name = "hello_world"
version = "0.1.0"
edition = "2021"
[dependencies]
The above is the complete content of the Cargo.toml file, which is known as the manifest and contains all the metadata needed for Cargo to compile the program.
src/main.rs内容如下
fn main() {
println!("Hello, world!");
}
It can be seen that Cargo has also automatically generated a “Hello World” program or binary package for us, and has compiled and built the program.
$ cargo build
Compiling hello_world v0.1.0 (file:///path/to/package/hello_world)
Then run the compiled binary executable file:
$ ./target/debug/hello_world
Hello, world!
Notice the “debug” in the path? It indicates that we just compiled in Debug mode, which is mainly used for testing purposes. If we want to perform production compilation, we need to use the Release mode with cargo build --release, and then run it with ./target/release/hello_world.
In addition to the compile + run method mentioned above, in daily development, we can also use a simple command to run it directly:
$ cargo run
Fresh hello_world v0.1.0 (file:///path/to/package/hello_world)
Running `target/hello_world`
Hello, world!
cargo run will automatically compile and run the program for us. Of course, this command also supports the Release mode: cargo run --release.
How to Debug Rust Programs using VSCode
basic debugging
After consulting the official documentation on debugging Rust with VS Code at https://code.visualstudio.com/docs/languages/rust#_debugging, ↗ it is found that the recommended debugging extensions are:
Microsoft C++ (ms-vscode.cpptools) - on Windows
CodeLLDB (vadimcn.vscode-lldb) - on macOS/Linux
“After installing the debugging extension, you can start debugging.”
How to pass arguments in Rust debugging with VS Code.
When using CodeLLDB for debugging, consult the CodeLLDB debugging documentation at https://github.com/vadimcn/codelldb/blob/v1.9.2/MANUAL.md#starting-a-new-debug-session ↗ to learn that a launch.json configuration file needs to be created in the .vscode directory.
The configuration file should have the following contents::
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch",
"type": "lldb",
"request": "launch",
"program": "${workspaceFolder}/target/debug/yrh_test",
"args": ["llama", "${workspaceFolder}/model/llama/open_llama_3b-f16.bin"],
}
]
}
References
https://zhuanlan.zhihu.com/p/470251959