Есть ли способ напрямую запустить программу, созданную Cargo в gdb или lldb?

Есть ли способ запустить программу, созданную Cargo, сразу же в gdb? cargo имеет множество функций и может запускать программу, поэтому кажется правдоподобным.

Ожидаемая команда будет чем-то вроде cargo debug.

Ответ 1

Нет, в Карго нет ничего подобного.

Там несколько вопросов (1, 2), чтобы лучше поддерживать подобные проблемы.

Самое лучшее, что вы могли бы сделать в данный момент, это написать подкоманду Cargo, которая сделает именно то, что вам нужно.

Обходной путь

Не создавая подкоманду, вы можете склеить несколько функций, чтобы получить что-то близкое.

Начните с настройки пользовательского бегуна для вашей архитектуры.

.cargo/конфигурации

[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)

Смотрите также: