Linux调试、跟踪命令:strace/ltrace、ldd、objdump、nm、strings

2023-11-17

一、strace、ltrace

1.1 功能

      strace —— Trace system calls and signals。  跟踪进程的系统调用或信号产生的情况。

      ltrace —— A library call tracer。 跟踪进程调用库函数的情况。

 

参考资料:http://blog.csdn.net/delphiwcdj/article/details/7387325


二、ldd

2.1 功能

      ldd —— Print shared library dependencies。 打印库中的依赖关系。

2.2 示例

      1. 查看dnspush的依赖关系:ldd dnspush

      

三、objdump

3.1 功能

      objdump —— Display information from object files。显示目标文件信息。

3.2 示例

      1. 查看dnspush中使用了哪些glibc版本:objdump -p dnspush | grep GLIBC_

      

      2. 查看dnspush中引用了哪些glibc动态引用符号表:objdump -T dnspush | grep GLIBC_

      


四、nm

4.1 功能

      nm —— List symbols from object files。 列出目标文件的符号。

4.2 示例

      1. 查看dnspush中引用了哪些glibc函数:nm dnspush | grep GLIBC_

      

五、strings

5.1 功能

      strings —— Print the strings of printable characters in files。 显示文件中的可打印字符。

5.2 示例

      1. 查看系统glibc支持的版本:strings /lib64/libc.so.6 | grep GLIBC_

      



参考资料:http://blog.csdn.net/dadoneo/article/details/8855990

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux调试、跟踪命令:strace/ltrace、ldd、objdump、nm、strings 的相关文章

  • 数组建堆(heapify)

    将一个数组调整为最大堆 根据堆的性质 只要保证部分有序即可 即根节点大于左右节点的值 将数组抽象为一个完全二叉树 所以只要从最后一个非叶子节点向前遍历每一个节点即可 如果当前节点比左右子树节点都大 则已经是一个最大堆 否则将当前节点与左右节
  • React中的组件以及组件实例的三大属性(详细类的复习)

    前言 我们为什么要模块化 是因为要复用编码 提高效率 react就是面向组件编程 函数式组件 函数不能中作为react的节点 就跟正常写函数一样 需要注意的是首字母需要大写 把函数封装为组件 所以把组件渲染到页面上时要使用组件的形式 因为开
  • Smart Tools 网站的架构之美

    本文将简要介绍Smart Tools工具箱网站的架构设计 带领大家一起领略架构之美 Smart Tools是一款实用的在线工具箱网站 地址 https smart tools cn 总体架构 Smart Tools工具箱网站是采用前后端分离
  • 为什么无法用数组名输出数组的的首地址

    当我们直接输出其他类型数组的数组名时 打印的都是一串地址 而字符数组打印的是字符串 为什么 因为字符串中 0 这个结束符 计算机可以知道在哪里读取结束 所以打印数组名就代表输出里面存储的字符串 其他类型没有结束符 计算机不知道从哪里停止 所
  • vue组件生命周期有哪些?vue2和vue3的生命周期图牢记于心,附面试题1

    单选题 关于vue组件生命周期说法错误的是 A 在data中的对象的某个属性和input双向绑定 修改input的值 在beforeDestroy中获取的值是修改过后的值 B ajax请求可以放在created钩子函数中 C 在create
  • Flutter每次进界面都刷新数据

    前言 需求 每次进去消息中心需要请求接口刷新数据 点击打开子界面返回也要请求数据改变状态 解决方法一 1 在initState方法加载数据 override void initState super initState 加载数据 loadD
  • git基础介绍与GitKraken操作简记

    刚开始尝试使用git的时候 简直是被弄得生不如死啊 写了半天的代码一下子被删了 那时候的心情简直想SHI 后来没办法 抽了点时间学习了一下git的原理 其实就是你的文件现在到底在什么状态 这么一个问题 由于只是了解 所以不知道具体的操作 具
  • Redis有效时间设置及时间过期处理

    本文对redis的过期处理机制做个简单的概述 让大家有个基本的认识 Redis中有个设置时间过期的功能 即对存储在redis数据库中的值可以设置一个过期时间 作为一个缓存数据库 这是非常实用的 如我们一般项目中的token或者一些登录信息
  • 打开PowerPoint提示:PowerPoint上次起送时失败。以安全模式启动PowperPoint将帮助您纠正或发现启动中的问题

    PowerPoint 无法打开 1 问题 PowerPoint 上次启动时失败 以安全模式启动PowerPoint 将帮助您纠正或发现启动中的问题 以便下一次成功启动应用程序 但是在这种模式下 一些功能被禁用 是否使用 安全模式 启动Pow
  • 数学计算模拟类问题:加法,除法和幂,注意越界问题。题 剑指Offer,Pow(x, n) ,Divide Two Integers

    数学计算的模拟类题目 往往是要求实现某种计算 比如两数相除 实现的过程中会有所限定 比如不允许乘法等等 这类题目首先要注意计算过程中本身的特殊情况 比如求相除 则必须首先反映过来除数不能为0 其次要记得考虑负数的情况 如果计算范围不单单是整
  • 简单的matlab分布式计算

    matlab的分布式计算可以理解为一台机器作为client 主控机 其他的机器分别作为计算的结点 要由client进行控制和操作 如果把单机上的 m文件直接放到client运行 是不会产生分布式计算的效果的 只相当于在主控机进行了计算 而其

随机推荐

  • 【JavaScript】defer和async的区别

    转载自 https segmentfault com q 1010000000640869 先来试个一句话解释仨 当浏览器碰到 script 脚本的时候 没有 defer 或 async 浏览器会立即加载并执行指定的脚本 立即 指的是在渲染
  • 华为性格测试通关指南

    一 华为性格测试关键要点 前后一致 积极乐观 吃苦耐劳 二 华为喜欢的人才性格画像 服从领导 能够按部就班按时完成工作 能够死命干活 没有太多性格 比如有野心 好胜 想当领导 坚持己见 坚持自己做事方式 别人有错当面硬刚这些类似的性格 喜欢
  • java实现航班信息查询管理系统

    一 任务概述 二 目录结构 三 详细代码 JDBC工具类模块 package com kaikeba task task010404 utils import com alibaba druid pool DruidDataSource i
  • python打包编译成pyd或者,Python .py生成.pyd文件并打包.exe 的注意事项说明

    最近用python写了一个小程序 想发布出去让人试用又不想暴露源码 搜索了一下发现将py文件编译成pyd文件就能达到目的 转换过程很简单 但是在调用pyd文件并且打包为单个exe文件的时候遇到一个坑 搞了一天才解决 在这里分享一下 首先安装
  • 使用post请求建立长连接实现sse,接收后端主动发来的消息,实现chat-gpt的弹字效果,EventSource的应用

    每日鸡汤 每个你想要学习的瞬间都是未来的你向自己求救 最近在做一个chat相关的功能 然后由于接口返回特别特别慢 所以需要搞一个慢慢等待的效果 就是接口一个单词一个单词的返回 然后前端收到一个展示一个 提升用户体验 说实话我是第一次做这类需
  • 消费者不用手机凭一张脸就能完成支付和转账

    以前出门要看钱包交易完成的节点 而商业活动发生于诸多场景中 商家若想为消费者提供更好的服务 就必须更深入地了解消费人群 赢得消费者的青睐 蜻蜓二代推出的AI刷脸会员功能 帮助商家完成顾客的会员一键开卡 不涉及填表 确认 签字等繁琐的流程 只
  • ETL为什么经常变成ELT甚至LET?

    ETL是将数据从来源端经过清洗 extract 转换 transform 加载 load 至目的端的过程 正常的 ETL 过程应当是 E T L 这三个步骤逐步进行 也就是先清洗转换之后再加载进目标端 通常是数据库 最后在数据库中的只是合理
  • Hive(7) Hive的DML语句-Hive的数据库和表的修改和删除

    Hive 3 DML语句 DML 数据操作语句 导入数据 直接从文件向表中导入数据 load data load data local inpath lt 文件路径 gt overwrite into table lt 表名 gt part
  • 内部类详解

    目录 一 什么是内部类 二 内部类的划分 2 1 实例内部类 2 2 静态内部类 2 3 局部内部类 2 4 匿名内部类 一 什么是内部类 定义 当一个事物的内部 还有一个完整的结构进行描述 而这个内部的完整的结构又只为外部事物提供服务 那
  • 递归-回溯算法

    一 递归 回溯算法 1 递归的思想 递归就是方法自己调用自己 每次调用的时候传入不同的变量 2 递归的原理 1 每执行一个方法 就在 栈内存 中分配一块空间 该空间是独立的 2 如果是 基本数据类型 则每块空间中的变量都是局部变量 是相互
  • 简单理解c语言——‘\0’ ,‘0’, “0” ,0之间的区别

    看来基础还是很重要的 基础不扎实就难以学好c语言 就别说写出高质量的c语言代码了 今天 我就被这个问题折磨的不行了 哈哈 不过现在终于明白了 0 0 0 之间的区别了 首先比较一下 0 和 0 的区别 有一个共同点就是它们都是字符 在c语言
  • 喜报

    8月16日 2023年度 IDC中国FinTech 50 榜单正式揭晓 擎创科技继2022年入选该榜单后 再次以创新者姿态成功入选 并以技术赋能业务创新 成为中国金融科技领域创新与活力的重要贡献者 IDC中国FinTech 50 旨在评选出
  • 网络安全岗位介绍——售前工程师

    一 工作内容 1 独立完成并配合销售人员引导客户完成方案设计 产品选型 配置报价和能为客户提供安全咨询与方案优化等服务 2 作为售前工程师 跟踪整个项目的进展 和销售进行配合 协调公司各种资源完成项目中标 3 编写投标文件的技术方案文档及投
  • Elasticsearch增删改查 之 —— Update更新

    Elasticsearch增删改查 之 Update更新 更新操作 一般用这个的 应该不会很多吧 ES本身还是一个倾向于查询检索的框架 对于这种更新的操作 太过频繁总归是不好的 不过阅读本篇后 你可以使用Script对所有的文档执行更新操作
  • 执行程序报错,could notcreate temporary directory ‘/tmp/poifiles‘

    could notcreate temporary directory tmp poifiles chmod R 777 tmp poifiles 重启jar包 运行命令就可以了
  • vba字典的key属性、item属性和keys方法、items方法、add方法

    1 key属性 修改字典中某一键值对的key值 2 item属性 修改字典中某一键值对的item值 3 keys方法 获取字典的所有键 4 items方法 获取字典的所有值 5 item属性 如果 key已存在 则修改其item值 如果不存
  • Jenkins之Maven的配置

    Jenkins之Maven配置与项目集成 1 Maven集成 1 1 环境准备 1 2 Jenkins的web界面配置 1 3 安装maven插件 1 Maven集成 在Jenkins上发布Java项目时需要使用Maven来进行构建打包 G
  • LLVM是如何编译指令的

    本文将会通过一条指令在LLVM中的不同阶段 从源程序语言中的语义结构到成为机器二进制码来研究LLVM的工作原理 本文不会介绍LLVM是如何工作的 这需要理解LLVM的设计以及code以及各种细节 输入代码 我们从一段C代码开始探险 如下 i
  • kali Linux-2020.3 火狐浏览器改为中文

    1 打开右上角菜单栏 进行下图操作 2 更改语言这里 支持下拉框选择 如果没有中文选项 进行搜索下载 图中为以更新中文后的 英文状态下位置应该是一样的 3 在搜索语言里找到中文 点击添加 添加成功后会提示 应用并重新打开 点击这个选项重新打
  • Linux调试、跟踪命令:strace/ltrace、ldd、objdump、nm、strings

    一 strace ltrace 1 1 功能 strace Trace system calls and signals 跟踪进程的系统调用或信号产生的情况 ltrace A library call tracer 跟踪进程调用库函数的情况