侦错器(英语:)亦称侦错程序、调试程序,指一种用于侦错其它程序的计算机程序及工具。调试工具

调试工具

侦错器(英语:)亦称侦错程序调试程序,指一种用于侦错其它程序的计算机程序及工具。能够让程序代码在指令组仿真器ISS中可以检查运行状况以及选择性地运行,以便排错、侦错。当开发的进度遇到瓶颈或找不出哪里有问题时,这技术将是非常有用的。但是将程序运行在侦错器之下,这将比直接在运作的平台以及处理器上执行还要来得慢。

软件开发

核心行动

  • 过程

  • 需求

  • 设计

  • 工程

  • 构造

  • 测试

  • 侦错

  • 部署

  • 维护

范式与模式

  • 原型设计

  • 净室

  • 增量建模

  • 瀑布模型

  • 敏捷软件开发

  • 螺旋模型

方法论与框架

  • 快速应用程序开发

  • DevOps

  • 极限编程

  • 团队软件流程

  • 个人软件程序

  • 动态系统开发方法

  • MSF

  • Scrum

  • 广告牌

  • V模型

  • FDD
  • MDD

  • 迭代式开发

  • 精实开发

  • 统一流程

支持行为

  • 配置管理

  • 文档

  • 质量保证

  • 项目管理

  • 用户体验

实践

  • ATDD

  • 行为驱动开发

  • 持续整合

  • 持续交付

  • 领域驱动设计

  • 结对编程

  • 站会

  • 测试驱动开发

工具

  • 编译程序

  • 侦错器

  • 性能分析

  • GUI设计器

  • 建模

  • 集成开发环境

  • 组建自动化

  • 发布自动化

  • 测试

标准与知识体系

  • 能力成熟度模型集成

  • IEEE标准

  • ISO 9001

  • ISO/IEC标准

  • SWEBOK

  • 项目管理知识体系

  • BABOK

当程序当机时,如果侦错器是属于来源阶段侦错器(source-level debugger)或象征阶段侦错器(symbolic debugger),侦错器即可以显示出错误所在位置的原始码,并使其于整合开发环境里也能看见。要是属于低阶侦错器(low-level debugger)或机器语言侦错器(machine-language debugger)的话,它将能显示的是一行一行的反组译码(这里指的当机情况是指,当发生原因是因为程序设计师在设计上的疏失,使得程序无法继续正常执行的情况。例如程序尝试去调用某个对在该版本的CPU上而言是不合理的操作,或者是对保护或无法存取的内存位置进行写入)。

典型的侦错器通常能够在程序执行时拥有以下这些功能,例如单步执行(single-stepping)、利用断点(breakpoint)使程序遇到各种种类的事件(event)时停止(breaking)(一般用于使程序停止在想要检查的状态)、以及追踪某些变量的变化。有些侦错器也有能力在想要侦错的程序在执行状态时,去改变它的状态,而不仅仅只是用来观察而已。

一个好的侦错器存在的重要性不夸张。就算一个程序语言/平台在计算机的行程里运作非常良好。有无侦错器以及侦错器的好坏,对于一个程序语言及平台来说,经常是能不能正常执行的重要因素。总之,软件要能够(或经常)执行在不同的侦错器下进行测试,是非常重要的。不过由于侦错器出现将做对软件程序的内部时间的不可避免的变动。所以,即使是一个几近完美的侦错器,在多任务环境或分布式系统下,它也会更难去测试到执行时(runtime)的问题。

一个侦错器除了能够用来侦错debug),同样的,它也经常被用来作为破解软件的工具,像是用来跳过软件的防拷贝保护,还有破解序号验证,以及其它软件保护功能。

大部份的主流侦错工程,譬如gdbdbx提供基于控制台的命令提示接口(console-based command line)。侦错器前端应用,现在普遍是提供给整合式开发工具IDE)做为侦错引撆、动态化、可视化等特点。

硬件侦错器

大部份现代微处理器它们都至少会拥有以下这些特点的其中一个包含在他们的CPU设计里,使得侦错更加容易:

  • 硬件支持单步执行(single-steping)程序,以及设置旗标(flag)。
  • 利用Popek and Goldberg virtualization requirements指令组使它更加容易去设计侦错软件,让侦错软件能够在相同的CPU下执行时,有如使用纯软件侦错一般。这样CPU就可能在测试程序时,以全速执行的状态下同时能够保持程序执行速度,并使得其仍然保持在侦错器的控制之下。
  • 在系统编程允许一台外在硬件侦错器,在测试时重新编辑一个程序系统,如增加或去除指示的断点
  • 硬件支持数据断点(breakpoint)的设置,譬如专门处理页面错误的硬件的数据断点的设置。
  • 设有JTAG

侦错器列表

Winpdb debugging itself.

参见:en:List of debuggers

  • CA/EZTEST(Cics Interactive test/debug)
  • CodeView
  • DBG - A PHP Debugger and Profiler
  • dbx
  • DebugView
  • DDD, Data Display Debugger
  • DEBUG DOS Command
  • DuxDebugger页面存档备份,存于)— Debugger Disassembler for Windows 64-bit
  • Distributed Debugging Tool(DDT)
  • Dynamic debugging technique (DDT), and its octal counterpart Octal Debugging Technique
  • Eclipse
  • TotalView
  • GNU Debugger(GDB)
  • Insight
  • Interactive Disassembler(IDA Pro)
  • Java Platform Debugger Architecture
  • JSwat,开源Java调试工具
  • Nemiver, Graphical C/C++ Debugger for the GNOME desktop environment
  • MacsBug
  • OLIVER (CICS interactive test/debug)
  • OllyDbg
  • PyDbg,开源Python调试工具
  • IBM Rational Purify
  • sdb
  • SIMMON(Simulation Monitor)
  • SIMON (Batch Interactive test/debug)
  • SoftICE
  • Turbo Debugger
  • Ups - C, Fortran source level debugger
  • WinDbg
  • Valgrind
  • VB Watch Debugger for Visual Basic 6.0
  • x64dbg
  • Visual Studio Debugger

参见

维基词典中的词条「」。

  • 侦错
  • 断点
  • 性能分析
  • 程序设计
  • 软件测试
  • 静态代码分析工具栏表
  • 内存调试
  • 核心转储
  • 程序错误
  • 测试覆盖率

参考数据

  • Jonathan B. Rosenberg, How Debuggers Work: Algorithms, Data Structures, and Architecture, John Wiley & Sons, ISBN 0-471-14966-7

外部连结

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.

 

 

 

猜你喜欢

转载自blog.csdn.net/weixin_40191861/article/details/132823229