如何调试MacPorts提供的软件包并查看源码级崩溃行号?
在MacPorts中获取软件包调试符号以定位代码行号
在MacPorts环境下,要获取软件包的调试符号(对应RPM系统的debuginfo/debugsource包),从而在调试时看到具体代码行号,可按以下步骤操作:
更新ports树:确保本地MacPorts的端口信息是最新的,执行命令:
sudo port selfupdate安装/升级带调试符号的软件包:MacPorts为绝大多数软件包提供了
+debug变体,该变体包含调试符号及关联的源码信息。
以你遇到问题的libssl所属的openssl包为例:- 如果尚未安装openssl,直接安装带调试变体的版本:
sudo port install openssl +debug - 如果已经安装了openssl,升级并添加调试变体:
sudo port upgrade openssl +debug
- 如果尚未安装openssl,直接安装带调试变体的版本:
重新调试程序:安装完成后,再次用lldb启动目标程序(比如你调试的
svn),当程序崩溃时,lldb会自动加载调试符号,此时就能看到崩溃对应的具体代码行号,而非仅反汇编的汇编代码。
注:部分软件包可能需要额外确保源码可被调试器访问,可通过
port work <包名>命令查看该包的源码工作目录,调试时lldb会自动关联此目录下的源码。
内容的提问来源于stack exchange,提问作者Graham Leggett
相关产品推荐
相关产品推荐

