解决在macOS系统上使用rust-gdb调式rust代码时无法进入断点的问题

发布时间 2023-08-01 18:59:15作者: 朝花不夕拾

     问题title缩写,主要原因是gdb 无法在cargo生成可执行文件和符号信息关联起来,类型信息如下图:

 

  解决方案:在Cargo.toml文件中添加一项配置,所以能找到符号信息.

  

 

配置信息说明:

  1.  profile.dev或者profile.release是用cargo build进行编译时使用到的配置信息的意思。dev是就是直接build,release是 cargo build --release;

      2. opt-level是优化等级,0就是不优化,3是最高优化等级。 进行debug时一般为了能和代码匹配上,所以dev就不用优化是0;

      3. debug=true 或者fasle 是指编译的可执行文件是否支持debug功能;

      4. split-debuginfo="packed"  简单点说就是编译生成的调试信息与可执行文件放在一起。这样才能找到需要的符号信息,并且这个配置项在macOS系统默认是不开启的(参考:https://doc.rust-lang.org/cargo/reference/profiles.html );