Как заставить груз ввести правильный путь к исходным файлам stdlib при добавлении debuginfo в execuable - PullRequest
0 голосов
/ 17 июня 2019

Я отлаживаю программу ржавчины, но всякий раз, когда я пытаюсь войти в какую-либо стандартную библиотечную функцию, gdb (или lldb) не может найти исходные файлы stdlib, выдавая такую ​​ошибку:

/rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/libcore/slice/mod.rs: No such file or directory.

Шаги квоспроизвести:

cargo new test

test / src / main.rs:

fn main() {
    let a:Vec<char> = Vec::new();
}
$ cd test
$ cargo build
$ rust-gdb target/debug/test

...

(gdb) b main.rs:1
Breakpoint 1 at 0x4a04: file src/main.rs, line 2.

(gdb) r
Starting program: /home/xyz/code/rust/test/target/debug/test 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Breakpoint 1, test::main () at src/main.rs:2
2           let a: Vec<i32> = Vec::new();

(gdb) s
alloc::vec::Vec<T>::new ()
    at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/liballoc/vec.rs:318
318     /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/liballoc/vec.rs: No such file or directory.

1 Ответ

0 голосов
/ 29 июня 2019

Если вы используете vscode в windows, вы можете добавить в файл launch.json следующее:

        "sourceFileMap": {
            "/rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e": "${env:USERPROFILE}\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\src\\rust"
        }

Для получения дополнительной информации см .: https://users.rust -lang.org / t / решено, как перейти к стандартному исходному коду при отладке в vs-code / 25319/6

...