GDB `运行` 命令失败 "Cannot insert breakpoint 1."
GDB `run` command fails with "Cannot insert breakpoint 1."
问题
我正在尝试使用 rust-gdb
调试 this Rust program,但我似乎无法让 GDB 正常工作:
/home/a/tmp/foo(HEAD)
09/19/2021 09:57:23.114 AM> rust-gdb -q target/debug/foo
Reading symbols from target/debug/foo...
(gdb) b hello
Breakpoint 1 at 0x7a44: file src/main.rs, line 2.
(gdb) run
Starting program: /home/a/tmp/foo/target/debug/foo
Warning:
Cannot insert breakpoint 1.
Cannot access memory at address 0x7a44
(gdb)
我还尝试使用 b src/main.rs:2
和 运行 设置断点,只是 gdb
而不是 Rust 包装器 rust-gdb
两者都导致了相同的结果。我做得对吗?
系统信息
/home/a/tmp/foo(HEAD)
09/19/2021 09:07:48.200 AM> uname -a
Linux a 5.13.15_1 #1 SMP Fri Sep 10 16:52:33 UTC 2021 x86_64 GNU/Linux
/home/a/tmp/foo(HEAD)
09/19/2021 09:07:51.291 AM> rustc --version
rustc 1.55.0 (c8dfcfe04 2021-09-06)
/home/a/tmp/foo(HEAD)
09/19/2021 09:07:53.955 AM> gdb --version
GNU gdb (GDB) 10.2
Copyright (C) 2021 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
我设法通过卸载已安装的 gdb
(从 Nixpkgs 存储库获得)并将其替换为来自 Void Linux musl 存储库的 gdb
来让它工作。我怀疑来自 Nixpkgs 的 gdb
是用 glibc 构建的,并且与编译为使用 musl 编译的 Rust 程序不兼容。通常,我使用的 Bedrock Linux 用户空间允许我一起使用使用不同 C 库构建的程序,但在这种情况下,我想我需要 GDB 使用与它试图调试的东西相同的 C 库。
问题
我正在尝试使用 rust-gdb
调试 this Rust program,但我似乎无法让 GDB 正常工作:
/home/a/tmp/foo(HEAD)
09/19/2021 09:57:23.114 AM> rust-gdb -q target/debug/foo
Reading symbols from target/debug/foo...
(gdb) b hello
Breakpoint 1 at 0x7a44: file src/main.rs, line 2.
(gdb) run
Starting program: /home/a/tmp/foo/target/debug/foo
Warning:
Cannot insert breakpoint 1.
Cannot access memory at address 0x7a44
(gdb)
我还尝试使用 b src/main.rs:2
和 运行 设置断点,只是 gdb
而不是 Rust 包装器 rust-gdb
两者都导致了相同的结果。我做得对吗?
系统信息
/home/a/tmp/foo(HEAD)
09/19/2021 09:07:48.200 AM> uname -a
Linux a 5.13.15_1 #1 SMP Fri Sep 10 16:52:33 UTC 2021 x86_64 GNU/Linux
/home/a/tmp/foo(HEAD)
09/19/2021 09:07:51.291 AM> rustc --version
rustc 1.55.0 (c8dfcfe04 2021-09-06)
/home/a/tmp/foo(HEAD)
09/19/2021 09:07:53.955 AM> gdb --version
GNU gdb (GDB) 10.2
Copyright (C) 2021 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
我设法通过卸载已安装的 gdb
(从 Nixpkgs 存储库获得)并将其替换为来自 Void Linux musl 存储库的 gdb
来让它工作。我怀疑来自 Nixpkgs 的 gdb
是用 glibc 构建的,并且与编译为使用 musl 编译的 Rust 程序不兼容。通常,我使用的 Bedrock Linux 用户空间允许我一起使用使用不同 C 库构建的程序,但在这种情况下,我想我需要 GDB 使用与它试图调试的东西相同的 C 库。