假设开发者希望知道上文提到的libhello.so库中是否定义了 ppp():
$nm libhello.so |grep ppp U
如果可执行文件包括调试符号,那么确定哪一行代码导致了问题是可以做到的。对该地址和可执行文件使用addr2line 程序,如下所示:
addr2line -e simple 0x400618 |
将返回:
/home/devuser/simple.c:34 |
要研究该问题,可以检查第 34 行。
关于addr2line的一点补充:如果可执行文件中没有包括调试符号,您将获得??:0 作为响应。
本文介绍了一种用于定位代码问题的调试方法,通过使用addr2line工具结合可执行文件中的调试符号来准确找到引发问题的具体代码行。文中详细展示了如何通过命令行操作获取到出现问题的具体文件及行号。
143

被折叠的 条评论
为什么被折叠?



