1

dev プロファイルを使用する通常のプログラムなど、デバッグ情報を有効にしてコンパイルした場合でも、cargo build現在実行中のソース行を調べることができないようです。

再現するには、貨物で新しいプロジェクトを生成します。サンプル プロジェクトで十分です。

$ cargo new helloworld-rs
$ cd helloworld-rs
$ cargo build
$ rust-gdb target/debug/helloworld-rs
(gdb) b main
Breakpoint 1 at 0x5430
(gdb) run
Starting program: /tmp/helloworld-rs/target/debug/helloworld-rs
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".

Breakpoint 1, 0x0000555555559430 in main ()
(gdb) info line
No line number information available.

まったく問題のない C と比較すると、次のようになります。

$ cat > hw.c <<EOF
#include <stdio.h>

int main() {
    printf("Hello, world!");
}
EOF
$ clang -g -o hw hw.c
$ gdb hw
(gdb) b main
Breakpoint 1 at 0x1148: file hw.c, line 4.
(gdb) run
Starting program: /tmp/helloworld-c/hw 

Breakpoint 1, main () at hw.c:4
4      printf("Hello, world!");
(gdb) info line
Line 4 of "hw.c" starts at address 0x555555555148 <main+8> and ends at 0x55555555515b <main+27>.

私は何か間違ったことをしていますか、システムに何か問題がありますか (執筆時点では最新の Arch)、それとも Rust 自体の問題ですか?

4

1 に答える 1