為什麼我在 Rust 調試中可以做的事情比 Python/C ++ 調試中更少?

https://users.rust-lang.org/t/why-there-is-less-thing-i-can-do-in-rust-debugging-than-in-python-c-debugging/105092#post_18

在 Rust 調試中,相較於 Python / C ++調試,我可以做的事情較少。在 Python 中,有無與倫比的功能。至於 Rust,

您可以在 VS Code LLDB 插件中看到 d.unwrap() 的等價物,甚至可以在調試條件表示式中匹配它。調試器有點笨拙,仍有限制,如無法運行方法,但數據是可見的。

(您應該閱讀有關如何訪問字段的手冊。)

我會將大塊代碼分成較小的可調用函數,以便分別為正常輸入和邊界案例進行測試。輕鬆創建測試。您可能需要一些簡單的語法宏來方便固定物件。這並不能消除調試的需要,但可以消除許多錯誤。

// 您的主模組內容

#[cfg(test)]
mod my_tests {
use super::*; // 從模組中導入全部
#[test]
fn my_test1() {
// 測試您的物件
}
}

// 還要在您的正常代碼中為測試添加一些調試代碼:
fn my_normal_func() {
// 做一些事情
if cfg!(test) {
// 將一些數據轉儲到文件中等
}
}

via The Rust Programming Language Forum – Latest posts

February 1, 2024 at 03:30AM

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *