linux下查看库符号注意使用c++filt解析

这篇具有很好参考价值的文章主要介绍了linux下查看库符号注意使用c++filt解析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

个人随笔 (Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu)文章来源地址https://www.toymoban.com/news/detail-682625.html

这篇文档,主要内容就如标题所言:
linux下查看库符号时,注意使用c++filt解析后,再来做grep查找

经验教训

这个问题来源于一个经验教训;
我想查一下libjemalloc库中,是否重载了delete和new方法,初始的时候,使用的这个语句,没有看到重载operator delete方法

$ nm libjemalloc.so|grep delete
	000000000001f1f0 t je_base_delete
	0000000000023190 t je_ckh_delete

后来久经波折,才发现库里面是重载了delete方法的,使用下面的语句可以查的到

$ nm libjemalloc.so|c++filt|grep delete
	000000000001f1f0 t je_base_delete
	0000000000023190 t je_ckh_delete
	000000000007a390 T operator delete[](void*)
	000000000007a3e0 T operator delete[](void*, unsigned long)
	000000000007a3b0 T operator delete[](void*, std::nothrow_t const&)
	000000000007a380 T operator delete(void*)
	000000000007a3c0 T operator delete(void*, unsigned long)
	000000000007a3a0 T operator delete(void*, std::nothrow_t const&)

为什么会这样呢?

一般我们觉得,c++的库函数,编译后,可能会把函数名、函数类型、参数类型带入函数符号中,grep函数名的话肯定可以找到的。

但实际来看,对于operator重载的符号是做了简化的,使用d代表了delete,使用n代表了new,那使用全词肯定是无法匹配到的。

例如下面的delete重载符号

$ nm libjemalloc.so|grep 000000000007a390
	000000000007a390 T _ZdaPv
 nm libjemalloc.so|grep 000000000007a390|c++filt
	000000000007a390 T operator delete[](void*)

例如下面的new重载符号

$ nm libjemalloc.so|grep 000000000007a320
	000000000007a320 T _Znam

$ nm libjemalloc.so|grep 000000000007a320|c++filt
	000000000007a320 T operator new[](unsigned long)

所以如果要查看符号时,先还原c++符号,再来查找会比较可靠一些。

个人随笔 (Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu)

到了这里,关于linux下查看库符号注意使用c++filt解析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 解析C++链接错误:未定义引用和未解析符号的完整解决方案

      概述: C++中的\\\"未定义的引用\\\"和\\\"未解析的外部符号\\\"错误通常源于声明与定义不一致或缺失定义。解决方法包括确保所有声明有相应定义、检查定义位置,使用头文件和命名空间组织代码。这些步骤帮助开发者提高代码可维护性和避免链接错误。 在C++中,\\\"未定义的引用\\\"和

    2024年03月20日
    浏览(50)
  • iOS开发之查看静态库(.a/.framework)中包含的.o文件和函数符号(ar,nm命令)

    .a/.framework其实是把编译生成的.o文件,打包成一个.a/.framework文件。a的意思是archive/归档的意思。 查看静态库.a文件包含的内容用下面的命令解压: 用ar命令打包静态库: 查看.a文件的symbols(符号),用下面的命令: 输出包含三个部分: 1、符号值。默认显示十六进制; 2、符号

    2024年02月11日
    浏览(44)
  • iOS_crash文件的获取及符号化(解析)

    symbolicatecrash 是 Xcode 自带的 crash 日志分析工具 步骤1. 找到 symbolicatecrash ,打开 Terminal 执行: 稍等一会,就会输出路径,然后将路径复制,右键 Finder - 前往文件夹 - 粘贴 - 回车,就能找到 symbolicatecrash ,将 symbolicatecrash 拷贝出来备用 步骤2. 将 ./symbolicatecrash 、 crash 和 dSYM 文

    2024年02月12日
    浏览(31)
  • linux 查看打开使用了哪些端口

    你可以使用 netstat 命令来查看Linux系统中正在使用的端口。例如,要查看所有正在使用的TCP和UDP端口,你可以运行: 如果你只想查看所有正在使用的TCP端口,你可以运行: 如果你只想查看所有正在使用的UDP端口,你可以运行: 运行这些命令后,你会看到输出列表,其中包含

    2024年02月12日
    浏览(42)
  • Linux查看GPU信息和使用情况

    目录 1.Linux查看显卡信息  2.使用nvidia GPU 3.Linux查看Nvidia显卡信息及使用情况 4.多用户使用显卡,如何查看那个显卡进程是自己的呢?  个人感觉看不出什么信息,除了 显存 大小,另外就是可以通过加入前面的 显卡编号 ,显示更加详细的信息。 Nvidia自带一个命令行工具可以

    2024年02月07日
    浏览(45)
  • linux 查看 SSD 固态硬盘 使用寿命

    inux 下面只有 smartmontools 这一个工具,并且只对像三星和 intel 这样的大厂支持良好,其它品牌可能会出现无法获取数据的情况 安装 smartmontools 使用以下命令查看SSD硬盘输出( /dev/sdb 是需要查看的SSD固态硬盘),其中最后一个最重要和直观 “ Percentage Used Endurance Indicator ” ,

    2024年02月15日
    浏览(56)
  • 【linux】查看CPU的使用率

    命令1:top 总体系统信息 uptime:系统的运行时间和平均负载。 tasks:当前运行的进程和线程数目。 CPU:总体 CPU 使用率和各个核心的使用情况。 内存(Memory):总体内存使用情况、可用内存和缓存。 查看 CPU 使用率 以下是一些常用的CPU使用率相关字段: %Cpu(s):显示整个系统

    2024年04月23日
    浏览(58)
  • Linux查看CPU、GPU内存使用

    查看CPU内存使用情况 1、输入命令:top,显示如下 2、输入命令:htop,显示如下 若没有该命令,需要先安装,ubuntu安装命令为: centos安装命令为: 查看GPU内存使用情况 1、输入命令: nvidia-smi ,显示如下,该命令只能显示一次。 2、实时显示 1)使用watch命令, 按照指定间隔刷

    2023年04月12日
    浏览(39)
  • 云原生之深入解析使用Kube-capacity CLI查看Kubernetes资源请求、限制和利用率

    Kube-capacity 是一个简单而强大的 CLI,它提供了 Kubernetes 集群中资源请求、限制和利用率的概览。它将输出的最佳部分结合 kubectl top 到 kubectl describe 一个易于使用的集中于集群资源的 CLI 中。

    2024年02月08日
    浏览(61)
  • 【linux】Linux 查看内存使用情况的几种方法汇总

    Linux 查看内存使用情况的几种方法包括使用 free 命令、top 命令、htop 命令、vmstat 命令和/proc/meminfo 文件。这些方法可以帮助用户了解系统内存的使用情况,包括总内存、已用内存、空闲内存、缓存和交换分区等信息。 在运行 Linux 系统的过程中为了让电脑或者服务器以最佳水

    2024年02月04日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包