非xcode编译的code加断点

一、调试 AppRTCMobile
打开 out/mac_Debug(其他的平台相应修改) 目录,使用 Xcode 打开 all.xcworkspace 文件,找到 AppRTCMobile 目标,运行调试,这个时候是不能在源码上设置断点的,因为无法找到符号和源文件的对应关心,需要设置 source map。
首先暂停程序运行,然后在 lldb 终端下运行如下命令找到某一个符号的地址以及源文件信息,如下:

(lldb) image lookup -vn NetEqImpl::GetAudio

输出

......
CompileUnit: id = {0x00000000}, file = "../../modules/audio_coding/neteq/neteq_impl.cc", language = "c++14"
......

注意如上一行,这说明了这个符号对应的源文件的位置,因为你运行程序的路径通过上诉的相对路径并不能找到源文件,需要设置 lldb 的 source map。如果没有 “CompileUnit…” 那很有可能是可执行文件中没有包含调试信息,请使用 dwarfdump, objdump, nm 等相关工具查看。

(lldb) settings set target.source-map "../../" "/Users/albert/Workspace/alibaba/alirtc/webrtc_grtn/"

注意需要设置你本地环境的源文件路径,这个 source-map 就是为了匹配你设置断点的文件行数可以对应上二进制文件中的汇编相应的文件行数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值