Debugging 无法在GDB中的Rust程序中获取“main”的当前行
即使在编译时启用了调试信息,例如使用dev概要文件的常规Debugging 无法在GDB中的Rust程序中获取“main”的当前行,debugging,rust,gdb,debug-information,Debugging,Rust,Gdb,Debug Information,即使在编译时启用了调试信息,例如使用dev概要文件的常规cargo build,也无法查找当前执行的源代码行 用货物复制、生成新项目;示例项目就足够了 $cargo新helloworld rs $cd helloworld rs $cargo build $rust gdb target/debug/helloworld rs (gdb)b干管 断点1位于0x5430 (gdb)运行 启动程序:/tmp/helloworld-rs/target/debug/helloworld-rs [已启用使
cargo build
,也无法查找当前执行的源代码行
用货物复制、生成新项目;示例项目就足够了
$cargo新helloworld rs
$cd helloworld rs
$cargo build
$rust gdb target/debug/helloworld rs
(gdb)b干管
断点1位于0x5430
(gdb)运行
启动程序:/tmp/helloworld-rs/target/debug/helloworld-rs
[已启用使用libthread_db的线程调试]
使用主机libthread_db library“/usr/lib/libthread_db.so.1”。
主()
(gdb)信息行
没有可用的行号信息。
与C相比,C没有任何问题:
$cat>hw.c
这将在main
函数处设置一个断点——但在Rust中,此函数由系统提供,并安排调用程序的realmain
相反,您通常要做的是:
(gdb) start
这将在您提供的main
上设置一个临时断点,然后在GDB中运行main
≠ <代码>fn干管
生锈。看起来你的问题可能会由你的答案来回答。如果没有,请回答您的问题以解释差异。否则,我们可以将此问题标记为已回答。
(gdb) start