C++调试命令

news/2024/7/3 16:34:11

1. strings

strings命令:在对象文件或二进制文件中查找可打印的字符串。字符串是4个或更多可打印字符的任意序列,以换行符或空字符结束。strings命令对识别随机对象文件很有用。

语法

strings [ -a ] [ - ] [ -o ] [ -t Format ] [ -n Number ] [ -Number ]  [file ... ]

选项

-a --all:扫描整个文件而不是只扫描目标文件初始化和装载段
-f –print-file-name:在显示字符串前先显示文件名
-n –bytes=[number]:找到并且输出所有NUL终止符序列
- :设置显示的最少的字符数,默认是4个字符
-t --radix={o,d,x} :输出字符的位置,基于八进制,十进制或者十六进制
-o :类似--radix=o
-T --target= :指定二进制文件格式
-e --encoding={s,S,b,l,B,L} :选择字符大小和排列顺序:s = 7-bit, S = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit
@ :读取中选项

实例

列出ls中所有的ASCII文本:

strings /bin/ls

列出ls中所有的ASCII文本(请勿使用):

cat /bin/ls strings

查找ls中包含libc的字符串,不区分大小写:

strings /bin/ls | grep -i libc

2. c++filt

c++filt 命令可用于解析 C++ 和 Java 中被修饰的符号,比如变量与函数名称。

命令格式

c++filt [-_|--strip-underscore][-n|--no-strip-underscore][-p|--no-params][-t|--types][-i|--no-verbose][-s format|--format=format][--help]  [--version]  [symbol...]

3. ulimit

Linux对于每个用户,系统限制其最大进程数。为提高性能,可以根据设备资源情况,设置各linux用户的最大进程数,我们可以用ulimit来显示当前的各种用户进程限制。

常用参数

-a显示目前资源限制的设定
-d程序数据节区的最大值,单位为KB
-t指定CPU使用时间的上限,单位为秒
-u用户最多可开启的程序数目
-v指定可使用的虚拟内存上限,单位为KB
-s线程栈大小,以bytes为单位

4. nm

nm命令用于将二进制文件或可执行文件进行剖析

常用参数

// 可以直接man
-A 或-o或 --print-file-name:打印出每个符号属于的文件
-a或--debug-syms:打印出所有符号,包括debug符号
-B:BSD码显示
-C或--demangle[=style]:对低级符号名称进行解码,C++文件需要添加
--no-demangle:不对低级符号名称进行解码,默认参数
-D 或--dynamic:显示动态符号而不显示普通符号,一般用于动态库
-f format或--format=format:显示的形式,默认为bsd,可选为sysv和posix
-g或--extern-only:仅显示外部符号
-h或--help:国际惯例,显示命令的帮助信息
-n或-v或--numeric-sort:显示的符号以地址排序,而不是名称排序
-p或--no-sort:不对显示内容进行排序
-P或--portability:使用POSIX.2标准
-V或--version:国际管理,查看版本

示例

nm -f sysv -n main.o

参考文献

strings命令用法_小小白@的博客-CSDN博客_strings命令

Linux 命令(59)—— c++filt 命令_恋喵大鲤鱼的博客-CSDN博客

ulimit命令 - Linux命令大全 | linux教程

ulimit的说明_薯可的博客-CSDN博客_ulimit

nm命令和其内容详解_二芒星的博客-CSDN博客_nm命令 


http://lihuaxi.xjx100.cn/news/246564.html

相关文章

中文详解phpmailer所有对象和属性

2019独角兽企业重金招聘Python工程师标准>>> 2009-03-09 19:13:50 前言: phpmailer是一个优秀的发件程序,但中文资料比较少,于是有牛人手动翻译了phpmailer的elementindex.html,E文的:[url]http://www.bblog.com/api…

对象存储HTML自定义属性,设置对象属性_对象存储服务 OBS_SDK参考_Node.js_上传对象_华为云...

开发过程中,您有任何问题可以在github上提交issue,或者在华为云对象存储服务论坛中发帖求助。接口参考文档详细介绍了每个接口的参数和使用方法。您可以在上传对象时设置对象属性。对象属性包含对象长度、对象MIME类型、对象MD5值(用于校验)、对象存储类…

MATLAB自动驾驶工具箱使用

1. 打开工具箱 MATLAB R2017a及以后的版本才有自动驾驶工具箱。 在MATLAB的APPS中选择AUTOMOTIVE下面的Driving Scenario Designer 也可以命令行容器直接输入drivingScenarioDesigner,即打开了该工具箱 2. 工具箱简介 点击Add Road,进入添加道路界面&a…

RHEL7.0系列 修改字符终端分辨率

由于是在VM里面安装的,完了之后终端界面的分辨率非常高,很难操作 因为RHEL7用了grub2,而不再是grub了,在grub2中要修改的文件是/boot/grub2/grub.cfg; 这里有一张分辨率的对照表(在grub.cfg中添加vgaask,系统重启后就会…

android mvc 框架搭建,Android MVC框架

注:MVC模式适用于小型的项目MVC即:Model层(模型层)、View层(视图层)、Controller层(控制层)MVC模型图1mvc.pngMVC模型图2 View和Controller放在了一起,难以完全解耦mvc.png优点:1.一定程度上实现了Model与View的分离,降…

EM算法详解

1. 极大似然估计 1.1. 经典问题——学生身高问题 需要调查学校的男生和女生的身高分布。 假设你在校园里随便找了100个男生和100个女生。他们共200个人。将他们按照性别划分为两组,然后先统计抽样得到的100个男生的身高。假设他们的身高是服从高斯分布的。但是这个…

postfix邮件服务器搭建

项目环境:一台server ip:192.168.1.100 一台mail ip:192.168.1.200 一台win7 ip:192.168.1.222项目需求:1:在DNS Master上搭建DNS,能够解析mail.sw.com2:在Mail Server上部署邮件服务器,和webmail软件3…

git ssh key创建和github使用

github拉代码需要ssh验证 git是分布式的代码管理工具,远程的代码管理是基于ssh的,所以要使用远程的git则需要ssh的配置。一 、设置git:设置git的user name和email:$ git config --global user.name "xxx"$ git config -…