软件故障诊断方法浅析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
其 重要 的技 能 ,是很 多软件 开 发人 员 ,特 别是 一些 刚 刚进
正 常 ,对于正 常 的空指 针 ,只需增 加保 护 ,即 确认指 针非
空 时才 访 问。而根 据我 们 的经验 ,此 类问 题如 果 出现 ,一
般 会 在很 多地 方 出现 ,因 此要 做 到 “ 恶务 尽 ” 除 ,确保 一 次 彻底修 改文 件或 函数 中 同一 类 问题 。
Ab ta t S f w r d f ut ig oi s n m ot n p r o sf wae e e p n a d sr c : ot a e e a l a nss a ip ra t a t f o t r d v l me t n man ea c d i o itn ne. Wi t e wi r pla in f o u e t h d a pi to o c mpt r h e c sf w r tc nlg ot a e e hoo y, te e urm n f r o t r s se h rq i e t o s fwa e y tm pr omac a d ea i y eo s ih r n hg e . Ami a ti o i we i u s e ef r n e n rlbl bc me hg e a d ih r i i t in g t hs p t c, d c s s sme o o cmmo a d sf I o t r d f u da n s meh d hr b sd n u pa t a e p r n e n n ue u f wae e a l ig oi s t s to s ee ae o or rc i l x e i c . c e
的借 鉴作用 。
2单一 问题及其诊断
在软 件开 发和 维护 中经 常会遇 到 软件 故障 ,根 据故 障
类 型大 致可 以分 为空 指针 访问 、数组 越界 、堆 栈溢 出 、死
一 重 的
和开 发阶段 ,要 经过 缜密 的思 考和 细心 的编 码 ,力求 系统
芸 凳
软计 件 设
循 环 、文件 问题 、锁保 护 问题 、消 息丢失 、队列溢 出 、内 存 泄露 、 内存 重 复释放 、 内存 改写等 。另 外 ,从 问 题能否 再 现 ,又可 以分 为容 易再现 问题 、不 规律再 现 问题 、极难
关键词 :软件 ;故障 ;诊断
So t r De a t f wa e f ul Di n s s ag o i Di c s i s u s on
S N un U J a
(e l sB 酞 o hl Poe a fC/ p t a№fj et l u— m  ̄ l.nu 2 02 eCnr b b 呦 aS e Ah 5 02.o/) / i ha h
软件故障诊断方法浅析
孙 娟
( 民银 行 合肥 中心支 行 ,安徽 合肥 2 0 2 ) 人 3 0 2
摘 要 :软件 故障诊断是软件开发和 维护 工作 的一个重要组成部 分,随着计算机软件技 术的广泛应 用,对软件 系统性能及可靠
性 等方面的要求也越 来越 高。针对这个问题 ,基于工作经验 ,探讨 了常用的软件故障诊 断方法。
逻辑 严密 ,可读 性强 ,这 样不 但可 以最 大限 度地 减少软 件
故障 ,还 可以减 小 系统 以后 的维护 成本 。软件 开 发完 成以
再 现 问题等 。一般 来说 ,不 同类 型 的软 件 故障 ,根据 问题
是 否可 以再现 其故 障诊 断方法 也略 有不 同 。
. 后 ,还需 要经过 全面 的测 试 ,包括单 元 测试 ,集 成测试 等 ,ຫໍສະໝຸດ Baidu2 1空指针访问 诊 断 空指针 访 问一般 比较 简单 。首 先分 析 空指针 是否 以发现 在设 计或 者编 码 中遗留 的问题 。
不幸 的是 ,不 论我 们 如何努 力 ,软件 故障 似乎 永远 都 不能 避 免 。我们 所 能做 的就 是最 大 限度 地 规避 重 大 故障 , 减少 细小 故障 。达到 这个 目的的一 个重 要方 法就 是在软 件 开发 完成 以后 ,针对 测试 发现 问题 ,或 者实 际运 行 中发现 的问题 进行软 件 故障诊 断 。它 是软件 开发 和维 护 中一个 极
一
2 2数组越界 .
数 组越 界 的诊 断 方法 和空 指针 访 问类似 ,重 点关 注数 组下 标 的检测 。如 果我们 不能 对调 用者 做足 够限 制 ,则需 要在 被调 用 函数 中增 加对 数组 下标 的限制 。 另外 ,数组越 界 一个 重要 的表 现是 内存 改写 ,即数 组 越界 写导 致该 数组 后面 的 内存 被 改写 ,我们 将在 内存 改写
Ke w o d y r s: sf wae;e a l; d g o i ot r d f ut i n s a s
1背景知识
软 件故 障诊 断是 软件 开发 和维 护工 作 的一个 重要 组成 部分 。随 着计 算机软 件技 术 的广泛 应 用 ,对 软件 系统 性能 及可 靠性 等方 面 的要求也 越 来越 高 ,特别 是在医 疗 、航空 航天 等方 面 ,任何 一个微 小 的软件 故 障都 可能带 来极 其严
如 果此 处 的空指 针非 法 ,则应 查看 是否 是 函数 的调 用
者 出现 问题 ,例 如 ,调 用者忘 记在 调用 该 函数 前 对该 指针 赋值 ,函数 调 用顺序 有 问题等 ,此 时往往 需逐 级查 看 。
入 工作 岗位 的开 发人 员迫切 需 要学 习的技 能 。虽然 故障 诊 断 如 此重 要 ,但 是 我们 却很 少见 到 有关 这 些 问题 的讨 论 。 由于软件 系统 自身的 差异 ,不 同的 系统具 有不 同 的软件诊 断 方法 ,因此 ,很 多 开发人 员往 往需 要经 过很 长时 间才 能 摸 索 出一套可 行 的故障诊 断 方案 。 针对 这个 问题 ,本 文基 于作 者 自己的 工作 经验 ,探讨
正 常 ,对于正 常 的空指 针 ,只需增 加保 护 ,即 确认指 针非
空 时才 访 问。而根 据我 们 的经验 ,此 类问 题如 果 出现 ,一
般 会 在很 多地 方 出现 ,因 此要 做 到 “ 恶务 尽 ” 除 ,确保 一 次 彻底修 改文 件或 函数 中 同一 类 问题 。
Ab ta t S f w r d f ut ig oi s n m ot n p r o sf wae e e p n a d sr c : ot a e e a l a nss a ip ra t a t f o t r d v l me t n man ea c d i o itn ne. Wi t e wi r pla in f o u e t h d a pi to o c mpt r h e c sf w r tc nlg ot a e e hoo y, te e urm n f r o t r s se h rq i e t o s fwa e y tm pr omac a d ea i y eo s ih r n hg e . Ami a ti o i we i u s e ef r n e n rlbl bc me hg e a d ih r i i t in g t hs p t c, d c s s sme o o cmmo a d sf I o t r d f u da n s meh d hr b sd n u pa t a e p r n e n n ue u f wae e a l ig oi s t s to s ee ae o or rc i l x e i c . c e
的借 鉴作用 。
2单一 问题及其诊断
在软 件开 发和 维护 中经 常会遇 到 软件 故障 ,根 据故 障
类 型大 致可 以分 为空 指针 访问 、数组 越界 、堆 栈溢 出 、死
一 重 的
和开 发阶段 ,要 经过 缜密 的思 考和 细心 的编 码 ,力求 系统
芸 凳
软计 件 设
循 环 、文件 问题 、锁保 护 问题 、消 息丢失 、队列溢 出 、内 存 泄露 、 内存 重 复释放 、 内存 改写等 。另 外 ,从 问 题能否 再 现 ,又可 以分 为容 易再现 问题 、不 规律再 现 问题 、极难
关键词 :软件 ;故障 ;诊断
So t r De a t f wa e f ul Di n s s ag o i Di c s i s u s on
S N un U J a
(e l sB 酞 o hl Poe a fC/ p t a№fj et l u— m  ̄ l.nu 2 02 eCnr b b 呦 aS e Ah 5 02.o/) / i ha h
软件故障诊断方法浅析
孙 娟
( 民银 行 合肥 中心支 行 ,安徽 合肥 2 0 2 ) 人 3 0 2
摘 要 :软件 故障诊断是软件开发和 维护 工作 的一个重要组成部 分,随着计算机软件技 术的广泛应 用,对软件 系统性能及可靠
性 等方面的要求也越 来越 高。针对这个问题 ,基于工作经验 ,探讨 了常用的软件故障诊 断方法。
逻辑 严密 ,可读 性强 ,这 样不 但可 以最 大限 度地 减少软 件
故障 ,还 可以减 小 系统 以后 的维护 成本 。软件 开 发完 成以
再 现 问题等 。一般 来说 ,不 同类 型 的软 件 故障 ,根据 问题
是 否可 以再现 其故 障诊 断方法 也略 有不 同 。
. 后 ,还需 要经过 全面 的测 试 ,包括单 元 测试 ,集 成测试 等 ,ຫໍສະໝຸດ Baidu2 1空指针访问 诊 断 空指针 访 问一般 比较 简单 。首 先分 析 空指针 是否 以发现 在设 计或 者编 码 中遗留 的问题 。
不幸 的是 ,不 论我 们 如何努 力 ,软件 故障 似乎 永远 都 不能 避 免 。我们 所 能做 的就 是最 大 限度 地 规避 重 大 故障 , 减少 细小 故障 。达到 这个 目的的一 个重 要方 法就 是在软 件 开发 完成 以后 ,针对 测试 发现 问题 ,或 者实 际运 行 中发现 的问题 进行软 件 故障诊 断 。它 是软件 开发 和维 护 中一个 极
一
2 2数组越界 .
数 组越 界 的诊 断 方法 和空 指针 访 问类似 ,重 点关 注数 组下 标 的检测 。如 果我们 不能 对调 用者 做足 够限 制 ,则需 要在 被调 用 函数 中增 加对 数组 下标 的限制 。 另外 ,数组越 界 一个 重要 的表 现是 内存 改写 ,即数 组 越界 写导 致该 数组 后面 的 内存 被 改写 ,我们 将在 内存 改写
Ke w o d y r s: sf wae;e a l; d g o i ot r d f ut i n s a s
1背景知识
软 件故 障诊 断是 软件 开发 和维 护工 作 的一个 重要 组成 部分 。随 着计 算机软 件技 术 的广泛 应 用 ,对 软件 系统 性能 及可 靠性 等方 面 的要求也 越 来越 高 ,特别 是在医 疗 、航空 航天 等方 面 ,任何 一个微 小 的软件 故 障都 可能带 来极 其严
如 果此 处 的空指 针非 法 ,则应 查看 是否 是 函数 的调 用
者 出现 问题 ,例 如 ,调 用者忘 记在 调用 该 函数 前 对该 指针 赋值 ,函数 调 用顺序 有 问题等 ,此 时往往 需逐 级查 看 。
入 工作 岗位 的开 发人 员迫切 需 要学 习的技 能 。虽然 故障 诊 断 如 此重 要 ,但 是 我们 却很 少见 到 有关 这 些 问题 的讨 论 。 由于软件 系统 自身的 差异 ,不 同的 系统具 有不 同 的软件诊 断 方法 ,因此 ,很 多 开发人 员往 往需 要经 过很 长时 间才 能 摸 索 出一套可 行 的故障诊 断 方案 。 针对 这个 问题 ,本 文基 于作 者 自己的 工作 经验 ,探讨