Есть ли способ напрямую запустить программу, созданную Cargo в gdb или lldb?
Есть ли способ запустить программу, созданную Cargo, сразу же в gdb? cargo имеет множество функций и может запускать программу, поэтому кажется правдоподобным.
Ожидаемая команда будет чем-то вроде cargo debug.
Ответ 1
Нет, в Карго нет ничего подобного.
Там несколько вопросов (1, 2), чтобы лучше поддерживать подобные проблемы.
Самое лучшее, что вы могли бы сделать в данный момент, это написать подкоманду Cargo, которая сделает именно то, что вам нужно.
Обходной путь
Не создавая подкоманду, вы можете склеить несколько функций, чтобы получить что-то близкое.
Затем напишите небольшой скрипт, чтобы быть тест-бегуном. Если задана переменная окружения, она запустит отладчик, иначе она просто запустит программу:
#!/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)