是否有一种方法可以立即在gdb
中运行由Cargo构建的程序? cargo
具有很多功能并且可以运行该程序,因此似乎是可行的。
期望的命令类似于cargo debug
。
答案 0 :(得分:8)
不,目前Cargo中没有这种东西。
您目前最好的做法是编写一个Cargo subcommand,它完全可以满足您的需求。
无需创建子命令,就可以将一些功能粘合在一起,以实现更紧密的结合。
首先为您的体系结构配置a custom runner。
.cargo / config
[target.x86_64-apple-darwin]
runner = ["/tmp/gg/debugger.sh"]
然后编写一个小脚本作为测试运行程序。如果设置了环境变量,它将启动调试器,否则将仅运行程序:
#!/bin/bash
if [[ -z $DEBUG ]]; then
exec $*
else
exec lldb $*
fi
然后您只需要设置变量:
$ cargo test
Finished dev [unoptimized + debuginfo] target(s) in 0.04s
Running target/debug/deps/gg-e5d6c92730ca3c30
running 0 tests
$ DEBUG=1 cargo test
Finished dev [unoptimized + debuginfo] target(s) in 0.01s
Running target/debug/deps/gg-e5d6c92730ca3c30
(lldb) target create "/private/tmp/gg/target/debug/deps/gg-e5d6c92730ca3c30"
Current executable set to '/private/tmp/gg/target/debug/deps/gg-e5d6c92730ca3c30' (x86_64).
(lldb)
另请参阅: