GDB如何从Coredump文件恢复动态库信息查看 error log:
我们拿到了崩溃位置0xee36f1,如何找到与之相对的代码位置呢?
找台测试机,获取对应版本的安装包:
解压:
然后用 GDB 打开 mysqld:
在 0xee36f1 位置打一个断点:
我们可以看到,gdb 将崩溃位置的文件名和行号都打印出来,
剩下的事情,就可以交给开发工程师 , 按照这个崩溃堆栈来进行问题排查 。
赠送章节
红框内的这串信息是什么?我们来解开看一下,
这段信息分为两段,"+0x71" 是一个偏移量,前面是一串文字,我们将文字解析出来:
可以看到前面这串文字是一个函数签名的编码,用 c++filt 还原编码以后 , 可以看到完整的函数签名 。
红框内的这串信息的意思就是崩溃位置是 一个函数起始位置 + 偏移量 。
我们大概可以猜到,这个 MySQL 的缺陷是在为 binlog 产生新的文件名时发生的 。
小贴士:
函数起始位置 + 偏移量 是一种内存位置的表示方法,但该位置不一定是这个函数内的代码 。
以本例来说,0xee36f1 这个位置,程序找到了就近的函数 generate_new_name 的起始位置,计算出有 0x71 这么多偏移,就表示成了 generate_new_name+0x71 这种形式 。
但 0xee36f1 这个位置的代码,大概率是,但,不一定是 generate_new_name 这个函数内部的一段代码 。
CentOS怎样查看系统信息ifconfig用于获取网卡配置与网络状态等信息:格式为"ifconfig [网络设备] [参数]" 。
查看本机当前的网卡配置与网络状态等信息,我们主要就是看每段开头的网卡名称、inet参数后面的IP地址、ether参数后面的物理mac地址以及RX、TX的接收与发送数据包的大小
uname命令用于查看系统内核与系统版本等信息,格式为:“uname [-a]” 。
一般我们会固定搭配上-a参数来完整查看当前系统的内核名称、主机名、内核发行版本、节点名、系统时间、硬件名称、硬件平台、处理器类型以及操作系统名称等信息
uptime命令用于查看系统的负载信息,格式为:“uptime” 。
这个命令真的很棒,它可以为您显示当前系统时间、系统已运行时间、当前在线用户以及平均负载值等信息数据 。平均负载值指的是最近1分钟、5分钟、15分钟的系统压力情况,负载值越低越好 , 尽量不要长期超过1 。
另外您还可以结合搭配用"watch -n 1 uptime"命令(看下图文)来每秒刷新一次来获得当前的系统负载情况 。
free命令用于显示当前系统中内存的使用量信息,格式为:“free [-h]” 。
为了保证Linux系统不会突然卡住宕机,因此内存使用量应该是运维人员时刻要关注的数据啦,我们可以使用-h参数来以更人性化的样式为我们展示出内存的实时使用量信息(真实的输出值中不包括中文注释部分)
who命令用于查看当前登入主机的用户终端信息 , 格式为:"who [参数]" 。
简单三个字母就可以快捷的显示出所有正在登陆着本机的用户名称以及他们正在开启的终端信息
last命令用于查看所有系统的登入记录 , 格式为:"last [参数]" 。
下面使用last命令看到的本机登陆信息,其实仅仅是调取了过往保存到系统中的日志文件罢了,篡改里面的文字其实也很简单 , 因此对于做“黑客”入侵行为审计时其实并不牢靠 , 只能仅供我们参考而已
history命令用于显示历史执行过的命令,格式为:“history [-c]” 。
这条命令应该是我最喜欢的了,history命令默认会保存1000条执行过的命令,若要修改可直接编辑/etc/profile文件的HISTSIZE值 。它能显示出当前用户在本地计算机中执行过的所有命令记录,您可以使用-c参数来清空里面的历史数据,还可以使用“!编码数字”的方式来重复执行某一次的命令
推荐阅读
- linux命令mc,Linux命令模式
- ios限时免费剪辑软件,苹果有什么免费剪辑视频软件?
- erp的oa系统是什么意思,oaerp
- 在哪儿下载鸿蒙版app,从哪下载鸿蒙软件
- php插入数据库表 php数据表里怎么添加数据
- 包含烽火联盟公众号关注怎么取消的词条
- 勇者养成游戏兑换码最新,勇者养成游戏兑换码最新版
- psp恋爱养成小游戏,psp恋爱养成小游戏有哪些
- php用数据库加法 php数据库添加失败的原因