MFC仅通过崩溃地址找出源代码的出错行收集.pdfVIP

MFC仅通过崩溃地址找出源代码的出错行收集.pdf

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
仅 通 过 崩 溃 地 址 找 出 源 代 码 的 出错 行 作 者 : 老 罗 提 交 者 : eastvc 发 布 日期 : 2003-10-23 9:16:11 原 文 出 处 : /articles/show_article.asp?Article_ID=29 作 为 程 序 员 ,我们 平 时 最 担 心 见 到 的事 情 是 什 么 ? 是 内 存 泄 漏 ? 是 界 面 不 好 看 ? ……错 啦 !我相 信 我 的 看 法 是 不 会 有 人 反 对 的 —— 那 就 是 , 程 序 发 生 了 崩 溃 ! “该 程 序 执 行 了 非 法 操 作 , 即 将 关 闭 。 请 与 你 的 软 件 供 应 商 联 系 。 ”, 呵 呵 , 这 句 M$ 的 名“ 言 ”,恐 怕 就 是 程 序 员 最 担 心 见 到 的 东 西 了 。 有 的 时 候 , 自己 的 程 序 在 自 己 的 机 器 上 运 行 得 好 好 的 , 但 是 到 了 别 人 的 机 器 上 就 崩 溃 了 ; 有 时 自 己 在 编 写 和 测 试 的 过 程 中 就 莫 名 其 妙 地 遇 到 了 非 法 操 作 , 但 是 却 无 法 确 定 到 底 是 源 代 码 中 的 哪 行 引 起 的 ……是 不 是 很 痛 苦 呢 ? 不 要 紧 ,本 文 可 以 帮 助 你 走 出 这 种 困 境 ,甚至 你 从 此 之 后 可 以 自 豪 地 要 求 用 户 把 崩 溃 地 址 告 诉 你 , 然 后 你 就 可 以 精 确 地 定 位 到 源 代 码 中 出 错 的 那 行 了 。 (很神 奇 吧 ? 呵 呵 。 ) 首 先 我 必 须 强 调 的 是 ,本 方 法 可 以 在 目前 市 面 上 任 意 一 款 编 译 器 上 面 使 用 。但 是 我 只 熟 悉 M$ 的 VC 和 MASM , 因 此 后面 的 部 分 只 介 绍 如 何 在 这 两 个 编 译 器 中 实 现 , 请 读 者 自行 融 会 贯 通 ,掌 握 在 别 的 编 译 器 上 使 用 的 方 法 。 Well ,废 话 说 完 了 ,让 我 们 开 始 ! : ) 首 先 必 须 生 成 程 序 的 MAP 文 件 。 什 么 是 MAP 文 件 ? 简 单 地 讲 , MAP 文 件 是 程 序 的 全 局 符 号 、 源 文 件 和 代 码 行 号 信 息 的 唯 一 的 文 本 表 示 方 法 , 它 可 以 在 任 何 地 方 、 任 何 时 候 使 用 , 不 需 要 有 额 外 的 程 序 进 行 支 持 。 而 且 , 这 是 唯 一 能 找 出 程 序 崩 溃 的 地 方 的救 星 。 好 吧 ,既 然 MAP 文 件 如 此 神 奇 ,那 么 我 们 应 该 如 何 生 成 它 呢 ? 在 VC 中 ,我 们 可 以 按 下 Alt+F7 ,打 开 “Project Settings ”选 项 页 ,选 择 C/C++ 选 项 卡 , 并 在 最 下 面 的 Project Options 里 面 输 入 : /Zd , 然 后 要 选 择 Link 选 项 卡 ,在 最 下 面 的 Project Options 里 面 输 入 : /mapinfo:lines 和 /map:PROJECT_NAME.map 。 最 后 按 下 F7 来 编 译 生 成 EXE 可 执 行 文 件 和 MAP 文 件 。 在 MASM 中 , 我 们 要 设 置 编 译 和 连 接 参 数 , 我 通 常 是 这 样 做 的 : rc %1.rc ml /c /coff /Zd %1.asm link /subsystem:windows /mapinfo:exports /mapinfo:lines /map:%1.map %1.obj %1.res 把 它 保 存 成 makem.bat ,就 可 以 在 命 令 行 输 入 makem filename 来 编 译 生 成 EXE 可 执 行 文 件 和 MAP 文 件 了 。 在 此 我 先 解 释 一 下 加 入 的 参 数 的 含 义

文档评论(0)

蔡氏壹贰 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档