文件指针

GDB调试及coredump详解

情到浓时终转凉″ 提交于 2019-11-26 03:09:48
一、coredump:是针对程序异常而产生的core文件,包含程序运行时的内存、寄存器状态、堆栈指针、函数调用等信息,用于存储程序出错时的状态。 二、coredump的存储位置:与被执行文件在同一目录下。当然,位置可以在程序中通过 chdir 命令修改 三、如何判断是coredump文件:该文件主要的格式为 ELF 格式。可以通过 readelf -h core 进行判断,如图: 四、产生coredump的条件: 首先确认 当前会话 中的ulimit -c,若为0,则不会产生core,需要修改和设置。 附: ulimit -c unlimited #可以产生core且不受大小限制 ulimit -a #显示当前各种用户进程设置 #ulimit的某些参数设置与运行机器的配置有关,慎重使用。 ulimit -d unlimited #数据段长度 ulimit -m unlimited #最大内存大小 ulimit -s unlimited #堆栈大小 #以上是设置为无限制 #若是想设置对应字符大小,可以指定如下图: ulimit -c [size] 可能 -c 设置成 4 也不会生成core,因人而异。 当前用户对写入core目录的写权限有足够的空间。 其他不会产生core文件的原因。 五、coredump产生的几种情况 内存访问越界 多线程程序使用不安全的线程函数

了解这些信息,你会知道在ESXi5.0 的虚拟化系统下文件出现故障时,我们能做些什么?

守給你的承諾、 提交于 2019-11-25 23:43:56
【ESXi5虚拟化系统情景概述】 用户使用的存储模式是通过iSCSI方式来实现FC SAN的功能。同时利用DELL服务器做的物理存储架构,利用FreeNAS来实现iSCSI。并另外通过两台 DELL 服务器做 ESXi5.0 的虚拟化系统。 1、FreeNAS 层为UFS2文件系统,整个存储建一个稀疏模式的文件,挂载在ESXi5.0 系统上。 2、ESXi系统内运行6台虚拟机,其中有三台最为重要。 3、第一台windows2003系统虚拟机是此公司在当地的门户网站。 混合构架类型:ASP.net和 PHP 数据库类型: SqlServer2005和 Mysql 5.1 。 4、第二台FreeBSD 系统,运行Mysql数据库,供其它多台虚拟机使用。 5、第三台windows2003服务器,存储新开发的程序代码。 【ESXi5虚拟化系统故障描述】 工作人员在检查时发现ESXi系统无法连接存储,通过后续的排查在FreeNAS中发现UFS2文件系统出现故障,之后用fsck对文件系统进行修复。 修复后ESXi 系统可以连上存储,但ESXi系统未能识别到原来的数据存储和VMFS文件系统,工作人员格式化VMFS后发现没有任何数据。 【ESXi5虚拟化系统数据恢复步骤】 1、FreeNAS文件系统---应用构架层次: FreeNAS(UFS2文件系统–> 一个大的稀疏模式的文件) –> ESXi