IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 记一次signal 11调查 -> 正文阅读

[系统运维]记一次signal 11调查

在挂机测试过程中,出现了signal 11错误。

编译时加入-g,去掉strip后,使用gdb运行,挂机多次一直不再出现。可能是gdb运行与全速跑还是有些区别。

既然直接gdb运行不能复现问题,只能在全速跑时产生core dump文件事后分析了。

首先在程序中不能注册信号捕捉,否则当发生异常时,会进入注册的信号捕捉处理内,造成系统不产生core dump文件。

编译时加入-g,strip尽量去掉。

可以在程序中加入ulimit -c unlimited。

程序中加入core dump转存路径,当出现异常时保存core dump文件路径echo /data/coredump/core.%e.%p.%s.%t> /proc/sys/kernel/core_pattern。

参考:

Linux环境崩溃生成core文件以及调试 - 恋恋风辰 - 博客园

Linux Core 文件在系统排障中的应用_Linux教程_Linux公社-Linux系统门户网站

程序挂机后,获取到了core dump文件,该core dump文件名中有出现问题异常时的线程名字。

使用gdb 调试运行该core dump文件时,停在了strcasecmp函数内,bt和where都不能打印出正确的调用栈信息,栈信息被破坏,无法回溯。

形如:

xxxxxxxx strcasemcp () from /lib/libc.so.6

Backtrace stopped: Cannot access memory at address xxxxxxxx

将自定义strcasecmp函数编译成动态库,使用LD_PRELOAD加载该动态库,调用strcasecmp的地方将会调用自定义的strcasecmp函数。参考:Linux下LD_PRELOAD的简单用法 - 52coder

在strcasecmp内部输出参数信息,线程信息,或者调用栈信息(可保存到文件)。在正常情况下,的确能够输出参数信息和线程信息,调用栈信息输出的不正确(backtrace输出调用栈)。当发生异常时,不能运行到自定义strcasecmp函数内,直接异常,而且异常时的函数位置仍为libc.so.6中strcasecmp。自定义的strcasecmp未正确运行到。(估计是哪个地方没有设置正确)

core dump文件上显示了线程的名字,只有根据该线程逐步查找了,幸好可以比较容易复现。在线程各个位置上加入打印信息逐步查找,再根据自定义strcasecmp函数输出信息,直到找到未输出日志位置,锁定问题。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-10-04 13:11:34  更:2021-10-04 13:13:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 18:29:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码