- 36
- 0
- 约1.06万字
- 约 37页
- 2017-07-08 发布于湖北
- 举报
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’,不常见,通常由糟糕的代码编写引起或用不正确的方式进行的
您可能关注的文档
- 利用电子备课创建高效课堂研究.doc
- 对违反规定,引起疫情扩散处罚流程图资料.doc
- 第八节肿瘤遗传学.doc
- 2014年度重庆市网球排名赛竞赛规程.doc
- 第十三章 河南理工大学第十二届大学生读书月之.doc
- 概述极限弯矩塑性铰超静定梁极限荷载判定极限荷载一.ppt
- 香河双祥家具制造有限公司要领.doc
- 笫四节二十一世纪微生物学.doc
- 2014年度硕士研究生新生.doc
- 我国科学院研究生院.doc
- (2026春新版)部编版八年级语文下册《第一单元》PPT课件.pptx
- 2018电力监控系统网络安全监测装置技术规范.docx
- 2022电力监控系统安全防护方案审核要点.docx
- 2014电力电缆光伏系统EN 50618欧标.docx
- (2026春新版)人教版二年级数学下册《第三单元 万以内数的认识》教案.docx
- (2026春新版)人教版二年级数学下册《第四单元 万以内的加法和减法》教案.docx
- (2026春新版)人教版二年级数学下册《综合与实践 时间在哪里》教案.docx
- (2026春新版)苏教版二年级数学下册《综合与实践 时间有多长》教案 .pdf
- (2026春新版)部编版三年级语文下册第3单元(教案).docx
- (2026春新版)部编版三年级语文下册第8单元(教案).docx
原创力文档

文档评论(0)