linux – 为什么我必须使用libtool –mode ==执行gdb wireshark才能调试wireshark

linux – 为什么我必须使用libtool –mode ==执行gdb wireshark才能调试wireshark,第1张

概述我正在尝试查看Wireshark的源代码以了解协议分析, 但我发现当我只使用gdb ./wireshark时,当我按Ctrl C并设置断点,然后键入C时,进程就会死掉.我想知道libtool可以使GDB调试成为可能. 我已经读过libtool了,它说libtool是一个工具,可以通过简单的界面轻松使用各种.a或.o,但我不知道用libtool使gdb wireshark成为可能的关键是什么. 当您 我正在尝试查看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或包装器脚本.

总结

以上是内存溢出为你收集整理的linux – 为什么我必须使用libtool –mode ==执行gdb wireshark才能调试wireshark全部内容,希望文章能够帮你解决linux – 为什么我必须使用libtool –mode ==执行gdb wireshark才能调试wireshark所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1025663.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存