【发布时间】:2021-02-17 08:01:51
【问题描述】:
我有点不确定我在使用谁的控制台。但是假设我有以下调试配置:
{
"version": "0.2.0",
"inputs": [
...
],
"configurations": [
{
"type": "lldb",
"request": "attach",
"name": "Attach to...",
"program": "${workspaceFolder}/src/lib/${input:pickPackage}/target/debug/${input:pickPackage}"
}
]
}
我的程序在带有cargo run -p ...的macos终端中运行
vscode 的调试器为我提供了 lldb 的调试控制台
说,我在断点,想尝试一下......
到目前为止,我尝试过 rust
script println!("{:?}", &t[op_end_index..])
File "<input>", line 1
println!("{:?}", &t[op_end_index..])
^
SyntaxError: invalid syntax
script &t[op_end_index..]
File "<input>", line 1
&t[op_end_index..]
^
SyntaxError: invalid syntax
script fn main () {println!("{:?}", &t[op_end_index..])}
File "<input>", line 1
fn main () {println!("{:?}", &t[op_end_index..])}
^
SyntaxError: invalid syntax
script print "Here is some text"
File "<input>", line 1
print "Here is some text"
^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Here is some text")?
最后是它从错误中得到的建议:
script print ("Here is some text")
Here is some text
你好这个词很好,但我如何到达我的实际范围?
我应该使用 lldb 的 script 命令吗?
我的语法是什么?
更新
@ForceBru 感谢有关 python 的提示。
我正在与之交互的是vscode-lldb debugger api
似乎在将"sourceLanguages": ["rust"] 从https://github.com/vadimcn/vscode-lldb/blob/v1.6.0/MANUAL.md#rust-language-support 添加到我的配置后,我应该能够执行script debugger.evaluate("/se t[0]") 之类的操作
但没有运气
script debugger.evaluate("/se t[0]")
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "/Users/anvlkv/.vscode/extensions/vadimcn.vscode-lldb-1.6.0/adapter/debugger.py", line 8, in evaluate
value = codelldb.evaluate_in_context(expr, True, exec_context)
File "/Users/anvlkv/.vscode/extensions/vadimcn.vscode-lldb-1.6.0/adapter/codelldb.py", line 276, in evaluate_in_context
return eval(code, eval_globals, eval_locals)
File "<string>", line 1
/se t[0]
^
SyntaxError: invalid syntax
我还在python中
script debugger.evaluate("locals().keys()")
dict_keys([])
【问题讨论】:
-
看起来 VSCode 正在尝试使用 Python 解释器运行 Rust 代码
-
script是运行内置 python 解释器的 lldb 命令:因此脚本无法运行 rust 代码也就不足为奇了。不幸的是,我无法解决“如何调试 rust”问题
标签: debugging visual-studio-code rust vscode-extensions lldb