解决在macOS系统上使用rust-gdb调式rust代码时无法进入断点的问题
问题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 );