首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用gdb调试Rust

用gdb调试Rust
EN

Stack Overflow用户
提问于 2014-07-09 23:00:51
回答 2查看 12K关注 0票数 13

我知道在StackOverflow上调试Rust的问题,我也在Go中使用gdb。但是,我遇到了一个问题,似乎gdb无法找到调试符号。

考虑一下main.rs中的这个复杂程序

代码语言:javascript
复制
pub fn main () {
    println!("run");
}

我用调试符号编译它。

代码语言:javascript
复制
rustc -g main.rs

然后我运行gdb

代码语言:javascript
复制
gdb main

这给出了第一条线索,即加载调试符号的东西是不完全正确的。

现在,当我在gdb并键入

代码语言:javascript
复制
list

它留给我一些C代码,这不是我所期望的。

我做错了什么?我的gdb版本是7.7,我在OSX10.9.2 (13C64)上。我的rustc版本是rustc 0.11.0-pre (3035d8dfb13077e195eb056568183911c90c1b4b 2014-07-02 21:26:40 +0000)

查看` `gdb -配置的输出也可能有帮助

代码语言:javascript
复制
$ gdb --configuration
This GDB was configured as follows:
   configure --host=x86_64-apple-darwin13.1.0 --target=x86_64-apple-darwin13.1.0
             --with-auto-load-dir=:${prefix}/share/auto-load
             --with-auto-load-safe-path=:${prefix}/share/auto-load
             --with-expat
             --with-gdb-datadir=/usr/local/share/gdb (relocatable)
             --with-jit-reader-dir=/usr/local/lib/gdb (relocatable)
             --without-libunwind-ia64
             --without-lzma
             --with-python=/System/Library/Frameworks/Python.framework/Versions/2.7
             --with-separate-debug-dir=/usr/local/lib/debug (relocatable)
             --with-zlib
             --without-babeltrace
EN

回答 2

Stack Overflow用户

发布于 2015-04-27 17:02:55

同样的问题,稍后的锈蚀版本(1.0.0-beta),完全不同的答案:

在GDB中,在调试锈蚀可执行文件时,break main在某些设置代码中设置一个断点,该设置代码是Rust标准库的一部分。这不是你想要的。

相反,请键入:break $YOUR_CRATE::main,将程序名称替换为$YOUR_CRATE

票数 13
EN

Stack Overflow用户

发布于 2014-07-10 13:26:25

好吧,我知道出了什么问题。我必须手动发出main.o文件。我以为-g参数会把它剪掉。

现在我跑了

代码语言:javascript
复制
rustc -g main.rs --emit="obj,link"

我能跑

代码语言:javascript
复制
gdb main

每件事都像个苦工。

为了简单起见,我为bash创建了两个别名:

代码语言:javascript
复制
alias rd='rustc -g --emit="obj,link"'

compile_and_run() {
     rustc -g --emit="obj,link" $1 && gdb ${1%.*}
}

alias rdr=compile_and_run

现在,我只需调用rdr main.rs,它将开始使用gdb调试main.rs

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24664994

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档