linux – 为什么我必须使用libtool –mode ==执行gdb wireshark
发布时间:2020-12-14 01:00:17 所属栏目:Linux 来源:网络整理
导读:我正在尝试查看Wireshark的源代码以了解协议分析, 但我发现当我只使用gdb ./wireshark时,当我按Ctrl C并设置断点,然后键入C时,进程就会死掉.我想知道libtool可以使GDB调试成为可能. 我已经读过libtool了,它说libtool是一个工具,可以通过简单的界面轻松使用各
我正在尝试查看Wireshark的源代码以了解协议分析,
但我发现当我只使用gdb ./wireshark时,当我按Ctrl C并设置断点,然后键入C时,进程就会死掉.我想知道libtool可以使GDB调试成为可能. 我已经读过libtool了,它说libtool是一个工具,可以通过简单的界面轻松使用各种.a或.o,但我不知道用libtool使gdb wireshark成为可能的关键是什么. 解决方法
当您使用libtool构建程序时,它将处理在您的平台中使用共享库的所有困难和特殊性.
其中一个难点是调试,因为在调试时你想加载系统中没有安装的共享库(它们只是编译好的).因此,当libtool构建一个可执行文件时,它会将其移动到一个隐藏目录(.libs)中,并且通常会在您可以看到的位置放置一个具有相同名称的脚本或类似文件.这个脚本将使用正确的库运行正确的程序. 但是,显然你无法使用gdb调试脚本!因此,为了将正确的参数传递给gdb以便能够使用正确的库调试正确的程序,您必须运行以下命令: $libtool --mode=execute gdb ./wireshark 您可以通过运行来查看它的功能: $libtool --mode=execute echo ./wireshark 只是不要直接使用.libs中的文件:始终使用libtool或包装器脚本. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |