首页 > 其他分享 >gcore的学习

gcore的学习

时间:2023-04-16 18:34:30浏览次数:36  
标签:bin core dump 学习 gdb usr gcore

gcore的学习-解决jmap无法生成dump文件的一种方法


背景

周末在跆拳道馆看孩子练跆拳道.
开着笔记本翻到了 扣钉日记 公众号里面的讲解

想着自己也遇到过无法保存dump文件的情况.
所以想学习一下. 进行联系
其实之前也验证过宕机时的dump文件. 感觉是比较类似的. 

gcore

NAME
       gcore - Generate core files for running processes

SYNOPSIS
       gcore [-a] [-o filename] pid[s]

DESCRIPTION
       gcore  generates  a  core file for the process(es) specified by process
       IDs, pid[s]. By default, each core file is written to core.pid, in  the
       current directory.

       -a     (Linux only) ignore /proc/PID/coredump_filter and also dump mem-
              ory mappings marked with the 'VM_DONTDUMP' flag. See  info  node
              Core File Generation for longer explanation.

       -o filename
              write  core file to filename if one PID, or filename.pid if mul-
              tiple PIDs, instead of default core.pid

第一步 获取

yum install gdb -y

需要注意 gcore 是需要使用 gdb工具链的, 所以必须安装一下. 

jps 查看对应的 进程号:
注意在执行gcore 之前需要先执行一下
ulimit -c unlimited
设置 core 无限制, 不然会报错:
warning: Memory read failed for corefile section, 1048576 bytes at 0x7fb380c18000.
具体的执行命令为:
time gcore  1947692 -o core

注意这个命令非常耗时, 根据jvm占用内存大小不同而不同. 
配置好的机器速度会快一些. 

第二步 java处理

jstack `which java` core.1947692
可以进行简单的查看

time jmap -dump:format=b,file=heap.hprof `which java` core.1947692
可以使用这个命令从 core文件中获取一下对应的jvm dump 文件.

获取之后就可以使用 mat jprofiler 工具进行分析了. 

gcore的介绍

使用rpm命名查看gdb的rpm包,主要由下面几个程序:
/usr/bin/gcore
/usr/bin/gdb
/usr/bin/gdbserver
/usr/bin/gdbtui
/usr/bin/gstack

其中:
gcore 是生成core文件用的
gdb 调试用的
gdbserver 远程调试使用
gdbtui 界面化的gdb, 同 gdb -tui
gstack 查看正在运行的进程的调用栈信息

标签:bin,core,dump,学习,gdb,usr,gcore
From: https://www.cnblogs.com/jinanxiaolaohu/p/17323788.html

相关文章

  • 斯特林数,上升幂,下降幂学习笔记
    斯特林,上升幂,下降幂,普通幂的定义第二类斯特林数n\(n\brace0\)\(n\brace1\)\(n\brace2\)\(n\brace3\)\(n\brace4\)\(n\brace5\)\(n\brace6\)\(n\brace7\)\(n\brace8\)\(n\brace9\)0\(1\)\(0\)\(0\)\(0\)\(0\)\(0\)......
  • 卷积操作的概念及其在深度学习中的应用
    卷积操作是一种线性操作,通常用于处理信号和图像等数据。在图像处理中,卷积操作可以用于提取图像的特征,例如边缘、纹理等。卷积操作是通过卷积核(也称滤波器)与输入数据进行逐元素乘积、求和运算的过程,从而得到卷积特征图。卷积核可以看作是一种模板,用于提取输入数据中的局部特征。在......
  • 学习笔记403—两样本差异的统计学比较方法-假设检验
    一:背景这几天重新复习了一下以前经典的假设检验方法。包括之前使用excel来做一些简单的统计分析。假设检验(hypothesistest)亦称显著性检验(significanttest),是统计推断的另一重要内容,其目的是比较总体参数之间有无差别。假设检验的实质是判断观察到的“差别”是由抽样误差引......
  • Android深入学习之LayoutInflater类和ViewBinding
    在build.gradle(Module)中添加viewBinding元素后,Android会自动给模块中的每个XML布局文件生成一个相应的Binding类,该Binding类名称为XML布局文件驼峰式大写+Binding后缀。以如下所示的activity_welcome.xml文件为例,对应的ActivityWelcomeBinding.java的源代码如下所示。<?xmlv......
  • 学习-06
    1.回顾1.springboot整合swaggerApi接口文档。[1]引入相关依赖[2]配置swagger配置类[3]开始swagger注解驱动[4]使用swagger注解。@Api@ApiOperation@ApiParam@[email protected]整合定时器2.正文1.vue简介2.vue的使用3.v......
  • 跟随 稚晖君 学习
    文档说明:只记录关键地方;2023-04-16缘由:学渣流下没知识、没技术的泪水学渣也是有追求的,一步一个脚印,一点一滴的努力信息茧房和奶头乐背景下。搜索知识并不容易,默认搜索引擎不太好用,总是找不到,找到就把它记录一下;推荐算法把人性拿捏的死死的,投其所好、精准“投喂”......
  • 学习-08
    1.安装nodejs服务器写好的vue工程---把我们的工程部署到该服务器上。注意:不要安装到中文目录下node服务器安装好。2.安装vue脚手架--vue-cli帮你创建vue工程---标准的验证是否安装成功3.使用vue脚手架创建vue工程创建好vue工程后进入如下界面3.2安......
  • 学习-07
    1.回顾Vue:js框架,简化Dom的操作,响应式数据编程。Vue:对象结构letapp=newVue({​el:"数据挂载",​data:{数据},​methods:{​方法.​}})Vue的指令:用在dom元素的属性上。​{{}}---差值表达式​......
  • 学习-03
    1.课程大纲-springboot框架1.什么是Springboot以及Springboot的特点。2.快速搭建springboot项目3.springboot常用的配置文件类型.4.读取springboot配置文件的内容5.多环境配置6.springboot整合数据源。7.springboot整合mybatis.8.springboot整合定时器。2.什么......
  • 学习04
    1.回顾1.springboot概述:简化spring工程的搭建。2.springboot配置文件:(1)properties(2)yml语法格式3.java代码如何获取配置文件中的内容。[1]类上加个注解@ConfigurationProperties(prefix="")[2]在属性上@Value("${key}")----只能读取基本和字符串。4.spr......