Есть ли способ напрямую запустить программу, созданную Cargo в gdb или lldb? - PullRequest
0 голосов
/ 07 октября 2018

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

Ожидаемая команда будет выглядеть примерно так: cargo debug.

1 Ответ

0 голосов
/ 07 октября 2018

Нет, в настоящее время в Cargo нет ничего подобного.

Существует несколько проблем ( 1 , 2 ) для лучшей поддержки подобных проблем.

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

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

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

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

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

См. Также:

...