代码调试.ppt.ppt

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
代码调试.ppt.ppt

NUIST HPC使用讲座 ——代码调试 刘建宇 2015-04-28 !!!声明!!! 这里讨论的用户环境设置是基于目前(2014年)的NUIST HPC的配置上进行的 相关的用法、设置方式等有一定的普遍性,也有本地局限性 这里讨论的用法、设置方式,在不同的系统及配置下可能不适用 这里讨论的用法、设置方式,可能有不全面或不足之处 仅供参考,谨慎使用 3/Public/debugging.pdf 仅校内可访问 脚本调试 使用shell的执行选项 在shell中输出调试信息 使用“调试钩子” 脚本调试器bashdb / 脚本调试 ——使用shell的执行选项(-n) 读取脚本但不执行 测试脚本是否存在语法错误 bash -n script.sh ksh -n script.sh csh/tcsh -n script.sh 脚本调试 ——使用shell的执行选项(-x) 进入跟踪方式,显示所执行的每一条命令 全局调试 bash -x script.sh ksh -x script.sh csh/tcsh -x script.sh 局部调试(仅bash/ksh) set -x 打开调试信息 set +x 关闭调试信息 脚本调试 ——使用shell的执行选项(-x) 脚本调试 ——对“-x”的增强选项 BASH PS4=+${BASH_SOURCE}:${LINENO}:${FUNCNAME[0]}: KSH PS4=+${LINENO}: 脚本调试 ——对“-x”的增强选项 脚本调试 ——对“-x”的增强选项 脚本调试 ——使用shell的执行选项(-e) 如果产生错误立即退出 全局影响 bash -e script.sh ksh -e script.sh csh/tcsh -e script.sh 局部影响(仅bash/ksh) set -e 打开退出陷阱 set +e 关闭退出陷阱 脚本调试 ——使用shell的执行选项(-e) 脚本调试 ——在shell中输出调试信息 使用echo输出调试信息 echo |var=$var| 使用 trap命令 trap用于捕获指定的信号并执行预定义的命令 其基本的语法是: trap command signal shell伪信号 EXIT 从一个函数中退出或整个脚本执行完毕 ERR 当一条命令返回非零状态时(代表命令执行不成功) DEBUG 脚本中每一条命令执行之前 脚本调试 ——使用 trap命令 脚本调试 ——使用 trap命令 脚本调试 ——使用“调试钩子” 使用if块 if [ “$DEBUG” = “true” ]; then #此处可以输出调试信息 fi 使用命令序列 namelist=`ls -l namelist.input` || { echo Error; exit 1; } 使用DEBUG函数 _DEBUG=“on DEBUG() { [ $_DEBUG == on ] $@ } DEBUG echo hello 脚本调试 ——使用“调试钩子” 程序调试 程序出错了!!! 程序调试 ——系统的相关文件 标准输入/标准输出/标准错误 stdin/stdout/stderr 程序调试 ——输出重定向 程序调试 ——输出重定向 程序调试 ——错误信息的查找 应用程序自己输出的日志文件 WRF :rsl 文件 运行时重定向输出的日志文件 out.log 作业调度系统的标准输出和标准错误文件 PBS O 文件(标准输出)和E文件(标准错误) 或由 #PBS -j,#PBS -o, #PBS -e 指定的文件 错误的诊断需要综合查看所有的日志文件 程序调试 ——错误信息的查找(示例) PBS O 文件 任务脚本中没有重定向的标准输出的内容 并行环境的标准输出的内容 作业调度系统自己的标准输出的内容 程序调试 ——错误信息的查找(示例) PBS E文件 任务脚本中没有重定向的标准错误的内容 并行环境的标准错误的内容 作业调度系统自己的标准错误的内容 程序调试 ——错误信息的查找(示例) 应用程序自己的输出文件 WRF RSL文件 rsl.out :WRF输出到标准输出的内容 rsl.err :WRF输出到标准错误的内容 程序调试 ——异常终止常见错误信息 Signal 11 or Signal 9 通常都是内存访问问题,例如数组下标越界、非法使用指针 或非正常结束并行程序 Singal 11(segmentation fault),多数访问了程序空间以外的地址 Singal 9 ,多数访问了程序内部不该访问的地址 Signal 10 ‘bus error’,不常见,通常由糟糕的代码编写引起或用不正确的方式进行的

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档