如何查找并简单分析core文件

当系统发生coredump时,通常需要通过分析core文件来定位问题所在,但实际工作中,有时却发现core 文件找不到,或者core文件被删除了。

一、core文件没有生成

KINGBASE core 文件通常是在 $KINGBASE_DATA目录下。可以使用 coredumpctl list 查找core 文件是否生成 (对于abrtd 服务生成的coredump不会列出):

[kingbase@dbhost03 ~]$ coredumpctl list
No coredumps found.

core文件没有生成的原因主要有存储空间不够、目录没有权限、limit设置太小。可以通过ulimit -c 查看limit限制大小。

[root@dbhost03 security]# ulimit -c
unlimited

如果要修改limit,可以修改/etc/security/limits.conf 文件,如:

* soft core unlimited
* hard core unlimited

RedHat7 是通过abrtd服务生成core,如果没有发现core,可以先确认下abrtd 服务是否启动。

二、core 文件被截断原因

1、limit 设置太小

关注两个标红的。这两个值设置过小,可能导致文件被截断。

[kingbase@dbhost03 tns]$ ulimit -a
core file size          (blocks, -c) unlimited
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 18501
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 4096
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

2、修改/etc/systemd/coredump.conf

coredump.conf 文件显示的都是注释掉默认值。

[Coredump]
#Storage=external
#Compress=yes
#ProcessSizeMax=2G
#ExternalSizeMax=2G
#JournalSizeMax=767M
#MaxUse=
#KeepFree=
ExternalSizeMax=2G 表示dump 文件最大2G。
修改后需要执行: systemctl daemon-reload

三、Redhat7 core文件

core 文件有两种方式:abrt or coredump,可以通过以下命令查看:

[root@dbhost03 systemd]# sysctl -n kernel.core_pattern
|/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t e %P %I %h

Redhat7 使用abrtd (automatically bug report daemon )服务,core 文件会在/var/spool/abrt/ccpp* 目录下。默认非root用户生成core会被系统自动删除,在messages 日志文件中通常有如下信息:

Jul 24 15:50:22 dbhost03 abrt-hook-ccpp: Process 5070 (kingbase) of user 1001 killed by SIGSEGV - dumping core
Jul 24 15:50:25 dbhost03 abrt-server: Executable '/opt/Kingbase/ES/V8/Server/bin/kingbase' doesn't belong to any package and ProcessUnpackaged is set to 'no'
Jul 24 15:50:25 dbhost03 abrt-server: 'post-create' on '/var/spool/abrt/ccpp-2021-07-24-15:50:22-5070' exited with 1
Jul 24 15:50:25 dbhost03 abrt-server: Deleting problem directory '/var/spool/abrt/ccpp-2021-07-24-15:50:22-5070'

要保留core 不被删除,需要修改 /etc/abrt/abrt-action-save-package-data.conf  文件,并重启abrtd服务。

OpenGPGCheck = no
ProcessUnpackaged = yes  

ProcessUnpackaged = yes , 我们自己写的可执行程序,一般就是拷过去的,不从属于任何的package(rpm),abrt不生效。为了保证core文件大小,同时还要修改 /etc/abrt/abrt.conf 

# Max size for crash storage [MiB] or 0 for unlimited
#
MaxCrashReportsSize = 1000

三、如何简单分析core文件

1、确认core文件是哪个程序生成的

2、使用gdb分析core文件

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ASP.NET Core 6 是微软推出的一款跨平台的开发框架,它秉承了 ASP.NET 的优点,并进行了一系列的改进和升级。该框架具有高性能、可扩展性强以及丰富的功能特性,广泛应用于Web应用程序开发。 在ASP.NET Core 6 框架中,实现PDF下载的方式相对简单。我们可以通过使用第三方库,如iTextSharp或PdfSharp,来生成PDF文件,并通过HTTP响应将其发送给用户进行下载。 首先,我们需要在项目的依赖中添加所需的NuGet包,如iTextSharp或PdfSharp。然后,我们可以通过编写代码来生成PDF文件,例如创建一个PDF文档对象,添加内容、样式和格式,并保存到指定的文件路径中。 接下来,我们可以使用ASP.NET Core的HTTP响应来将生成的PDF文件发送给用户进行下载。通过设置正确的响应头信息,我们可以指定文件的名称、类型和大小,以及告诉浏览器直接下载该文件而不是在浏览器中打开。最后,我们将生成的PDF文件的内容以字节流的形式写入到HTTP响应的输出流中,完成文件下载的过程。 需要注意的是,由于ASP.NET Core 6是跨平台的,所以在使用第三方库之前,我们需要确认其是否与该框架兼容。另外,为了保证性能和安全性,我们还需要对生成的PDF文件进行适当的验证和授权。 总之,ASP.NET Core 6框架可以通过使用第三方库来实现PDF下载功能。我们可以通过生成PDF文件并将其发送给用户进行下载,以提供更好的用户体验和功能扩展。 ### 回答2: ASP.NET Core 6是微软公司推出的下一代跨平台开发框架,具有高性能、高可扩展性和高可靠性的特点,广泛应用于Web应用程序的开发。在ASP.NET Core 6框架中,PDF下载是常见的需求之一。 要实现PDF下载功能,首先需要创建一个PDF生成和下载的控制器方法。在这个方法中,可以使用第三方的PDF生成库(例如iTextSharp)来生成PDF文件,然后通过HTTP响应将生成的PDF文件返回给用户。 在ASP.NET Core 6中,可以使用以下步骤来实现PDF下载: 1. 安装所需的PDF生成库。可以使用NuGet包管理器来安装iTextSharp或其他PDF生成库。 2. 创建一个控制器方法,用于生成和下载PDF文件。这个方法应该接受生成PDF所需的参数,并返回一个ActionResult或FileResult对象。 3. 在控制器方法中,使用PDF生成库按照需求生成PDF文件。可以使用库提供的API来添加文本、图像、表格等内容到PDF中。 4. 将生成的PDF文件保存到本地磁盘上的临时目录中。可以使用System.IO命名空间中的方法来实现。 5. 使用FileResult对象返回生成的PDF文件。可以通过设置文件的MIME类型和文件名来告诉浏览器以下载的方式处理这个文件。 6. 在浏览器中调用控制器方法的URL地址,即可触发PDF文件的下载。 综上所述,ASP.NET Core 6框架可以通过使用第三方的PDF生成库,按照上述步骤实现PDF下载功能。开发人员可以根据具体需求选择合适的PDF生成库,并根据项目的架构和要求进行相应的调整和优化。 ### 回答3: ASP.NET Core 6是微软开发的一款开源跨平台的Web应用程序框架,它具有高度灵活性和可扩展性。ASP.NET Core 6框架揭秘PDF下载可能是指获取关于ASP.NET Core 6框架的详细技术资料或教程的PDF文档。 对于ASP.NET Core 6框架的揭秘,我们可以通过以下途径来获取相关的PDF下载资源: 1. 官方文档:ASP.NET Core 6官方文档是最权威的参考资料之一,其中包含了关于该框架的详细介绍、教程和最佳实践等内容。可以通过微软官方网站或者开发者文档网站下载相关的PDF文档。 2. 学术论文或专业书籍:有些学术论文或专业书籍可能专门讨论ASP.NET Core 6框架的内部机制或高级特性,这些资源可以帮助开发人员深入理解框架的工作原理。可以通过学术论文数据库或在线图书商店搜索相关的PDF下载。 3. 开发者社区或技术博客:许多开发者社区或技术博客经常发布有关ASP.NET Core 6框架的教程、案例分析或技术文章,这些资源通常以PDF格式提供。可以通过搜索引擎或专业技术社区查找并下载相关的PDF文档。 总之,要获取ASP.NET Core 6框架揭秘的PDF下载,我们可以通过查阅官方文档、学术论文、专业书籍,或者浏览开发者社区和技术博客等途径,找到与该框架相关的PDF资源。这些资源将帮助开发人员深入了解ASP.NET Core 6框架的内部机制和高级特性,提高开发效率和代码质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值