一个简单的linux命令, 确实不值得大费周折, 但是, 在实际的开发过程中,却帮助很大,在编译cgi,修改函数的调用之后获得函数的符号名,就可以看到这个函数的定义。

C/C++语言在编译以后,函数的名字会被编译器修改,改成编译器内部的名字,这个名字会在链接的时候用到。如果用backtrace之类的函数打印堆栈时,显示的就是被编译器修改过的名字,比如说_Z3foov 。 那么这个函数真实的名字是什么呢?

每个编译器都有一套自己内部的名字,这里只是针对linux下g++而言。
以下是基本的方法:
每个方法都是以_Z开头,对于嵌套的名字(比如名字空间中的名字或者是类中间的名字,比如Class::Func)后面紧跟N , 然后是各个名字空间和类的名字,每个名字前是名字字符的长度,再以E结尾。(如果不是嵌套名字则不需要以E结尾)

比如上面的_Z3foov 就是函数foo() , v 表示参数类型为void .
又如N:C:Func 经过修饰后就是 _ZN1N1C4FuncE, 这个函数名后面跟参数类型。 如果跟一个整型,那就是_ZN1N1C4FuncEi

另外在linux下有一个工具可以实现这种转换,这个工具是c++filt , 注意不是c++filter.

$ c++filt _ZN1N1C4FuncEi
N::C::Func(int)

Linux命令c++filt相关推荐

  1. 作为一个java程序员,常用的linux命令(越攒越多)

    本篇记录我在工作中不断遇到的常用的linux命令,并进行总结,时常更新! 1. 升级服务时先停止服务,然后进行替换 linux中杀进程时候,如果你是知道它所占用的端口号的话,可以通过 netstat ...

  2. Linux命令行与命令

    Linux命令行与命令 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Linux的命令是很重要的工具,也往往是初学者最大的瓶颈. ...

  3. sed linux 命令

    sed linux 命令 1. Sed简介 2. 定址 3. Sed命令 4. 选项 5. 元字符集 6. 实例 7. 脚本 1. Sed简介 sed 是一种在线编辑器,它一次处理一行内容.处理时,把 ...

  4. linux 命令行叫dos,利用shell编程实现DOS风格的Linux命令行

    如果你是习惯于Windows命令提示符的IT人,当你第一次使用Linux命令行时,一定会感到无所适从.你所熟悉的DOS命令再Linux中基本不存在.摆在你面前的是一大堆要记背的命令. 一种替代方案是利 ...

  5. linux 命令删除命令,Linux 命令之删除命令

    在Linux下删除文件用rm命令,具体用法如下: rm [选项] 文件 选项说明: -f -force 忽略不存在的文件,强制删除,无任何提示 -i --interactive 进行交互式地删除 -r ...

  6. 你知道吗?Linux命令竟如此简单!

    你知道吗?Linux命令竟如此简单! 我Linux安完了,如何快速入门? 1.进入终端 2.好了,入门完了 咳 咳 开个玩笑 2.1查看磁盘容量 2.2新建 2.3查看&删除 2.5解压&am ...

  7. linux下free源码,linux命令free源码解读:Procps free.c

    linux命令free源码解读 linux命令free源码解读:Procps free.c 作者:isayme 发布时间:September 26, 2011 分类:Linux 我们讨论的是linux ...

  8. 常用Linux命令总结

    常用Linux命令总结 2013-12-08 压缩为gz格式 gzip error_2018082217.log 解压gz格式 gzip -d error_2018082217.log.gz 不解压来 ...

  9. Linux命令行与shell脚本编程大全:第2版

    <Linux命令行与shell脚本编程大全:第2版> 基本信息 作者: (美)布卢姆(Blum,R.) 布雷斯纳汉(Bresnahan.C.) [作译者介绍] 译者: 武海峰 丛书名: 图 ...

  10. 《Linux命令行与shell脚本编程大全 第3版》Shell脚本编程基础---34

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下: 转载于:https://www.cnbl ...

最新文章

  1. endnote能自动翻译吗_人工智能能翻译古文吗?跟小编点评专业翻译PK人工智能翻译...
  2. StringUtils
  3. c# 任务栏托盘图标鼠标进入MouseEnter和鼠标离开MouseLeave实现
  4. 《和平饭店》藏玄机,如何做用户行为分析专家?
  5. highcharts如何把图多余的空白页面_零基础如何快速学会WORD基础操作?有秘籍了.........
  6. jquery官网打不开难以下载,不妨试试webjars
  7. 程序左上角的字_微信内测7.0.7新版本,小程序迎来大改动!
  8. DBX到PDF转换器
  9. 【Shell教程】二----Shell变量,通配符,转义符
  10. python做测试需要哪些技能_测试人员需要具备哪些基本技能
  11. 【一分钟论文】IJCAI2019 | Self-attentive Biaffine Dependency Parsing
  12. linux centos git 自动更新,在centos上搭建git服务器并自动同步代码
  13. 基于AVL-CRUISE 2014电动汽车建模与仿真之建模(一)
  14. jzoj 3957 鸡腿の花园
  15. el-element使用本地自定义图标
  16. 个人网页、博客、课程--不断更新
  17. 解析少儿编程中的运用的科技语言
  18. java jdbc 批量更新_java – JDBC PreparedStatement,批量更新和生成的密钥
  19. 计算机毕业设计基于asp.net网上考试报名系统
  20. 4.0 树莓派做下位机播放视频、控制电机舵机、超声波检测、paj7620手势传感器控制,树莓派串口通信等程序分析

热门文章

  1. ​全球首个机器人抓取云竞赛落幕,华科夺冠,中国团队包揽前三
  2. python手撕链表_图解_leetcode707_设计链表
  3. 和菜鸟们一起攻克金盾2018SS加密视频
  4. 目录穿越及文件包含漏洞
  5. SpringBoot全局异常处理(三十)
  6. 连接共享打印机时,弹出无法安装打印机,打印处理器不存在!!
  7. 如何利用Photoshop制作电子签名
  8. 浏览器主页被劫持成360导航
  9. 2021-01-15
  10. 882. Reachable Nodes In Subdivided Graph