欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    coredump的配置与调试.pdf

    • 资源ID:82068404       资源大小:104.77KB        全文页数:2页
    • 资源格式: PDF        下载积分:19.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要19.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    coredump的配置与调试.pdf

    Linux Core Dump 配置与调试 1.core 文件的生成开关和大小限制-1)使用 ulimit-c 命令可查看 core 文件的生成开关。若结果为 0,则表示关闭了此功能,不会生成 core 文件。2)使用 ulimit c filesize 命令,可以限制 core 文件的大小(filesize 的单位为 kbyte)。若 ulimit-c unlimited,则表示 core 文件的大小不受限制。如果生成的信息超过此大小,将会被裁剪,最终生成一个不完整的 core 文件。在调试此 core 文件的时候,gdb 会提示错误。2.core 文件的名称和生成路径-若系统生成的 core 文件不带其它任何扩展名称,则全部命名为 core。新的 core 文件生成将覆盖原来的 core 文件。1)/proc/sys/kernel/core_uses_pid 可以控制 core 文件的文件名中是否添加 pid 作为扩展。文件内容为 1,表示添加 pid 作为扩展名,生成的 core 文件格式为 core.xxxx;为 0 则表示生成的 core 文件同一命名为 core。可通过以下命令修改此文件:echo 1 /proc/sys/kernel/core_uses_pid 2)proc/sys/kernel/core_pattern 可以控制 core 文件保存位置和文件名格式。可通过以下命令修改此文件:echo/corefile/core-%e-%p-%t core_pattern,可以将 core 文件统一生成到/corefile 目录下,产生的文件名为 core-命令名-pid-时间戳 以下是参数列表:%p-insert pid into filename 添加 pid%u-insert current uid into filename 添加当前 uid%g-insert current gid into filename 添加当前 gid%s-insert signal that caused the coredump into the filename 添加导致产生 core 的信号%t-insert UNIX time that the coredump occurred into filename 添加 core 文件生成时的 unix 时间%h-insert hostname where the coredump happened into filename 添加主机名%e-insert coredumping executable name into filename 添加命令名 3.用 gdb 查看 core 文件:下面我们可以在发生运行时信号引起的错误时发生 core dump 了.发生 core dump 之后,用 gdb 进行查看 core 文件的内容,以定位文件中引发 core dump 的行.gdb execfile core file 如:gdb./test test.core 在进入 gdb 后,用 bt 命令查看 backtrace 以检查发生程序运行到哪里,来定位 core dump 的文件-行.4.开发板上使用 core 文件调试-如果开发板的操作系统也是 linux,core 调试方法依然适用。如果开发板上不支持 gdb,可将开发板的环境(头文件、库)、可执行文件和 core 文件拷贝到 PC 的 linux 下,运行相关命令即可。注意:待调试的可执行文件,在编译的时候需要加-g,core 文件才能正常显示出错信息!注意的问题:在 Linux 下要保证程序崩溃时生成 Coredump 要注意这些问题:一、要保证存放 Coredump 的目录存在且进程对该目 录有写权限。存放 Coredump 的目录即进程的当前目录,一般就是当初发出命令启动该进程时所在的目录。但如果是通过脚本启动,则脚本可能会修改当前目 录,这时进程真正的当前目录就会与当初执行脚本所在目录不同。这时可以查看”/proc/进程pid/cwd“符号链接的目标来确定进程 真正的当前目录地址。通过系统服务启动的进程也可通过这一方法查看。二、若程序调用了 seteuid()/setegid()改变 了进程的有效用户或组,则在默认情况下系统不会为这些进程生成 Coredump。很多服务程序都会调用 seteuid(),如 MySQL,不论你用什么用 户运行 mysqld_safe 启动 MySQL,mysqld 进行的有效用户始终是 msyql 用户。如果你当初是以用户 A 运行了某个程序,但在 ps 里看到的 这个程序的用户却是 B 的话,那么这些进程就是调用了 seteuid 了。为了能够让这些进程生成 core dump,需要将/proc/sys/fs/suid_dumpable 文件的内容改为 1(一般默认是 0)。三、这个一般都知道,就是要设置足够大的 Core 文件大小限制了。程序崩溃时生成的 Core 文件大小即为程序运行时占用的内存大小。但程序崩溃时的行为不可按平常时的行为来估计,比如缓冲区溢出等错误可能导致堆栈被 破坏,因此经常会出现某个变量的值被修改成乱七八糟的,然后程序用这个大小去申请内存就可能导致程序比平常时多占用很多内存。因此无论程序正常运行时占用 的内存多么少,要保证生成 Core 文件还是将大小限制设为 unlimited 为好。

    注意事项

    本文(coredump的配置与调试.pdf)为本站会员(l***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开