这种错误查找技术的名称是什么?是否存在可以自动执行该技术的程序?

2024-04-01

假设我有一些巨大的程序P我知道其中有一个错误:当我带参数运行它时A它打印出丑陋的错误消息E。在 shell 表示法中,会发生这种情况:

$ ./P A
E
$

现在我不知道是什么原因导致了这个错误,但它似乎是确定性的。我找到错误的方法是“隔离”它。我“减少”程序P到仍然产生错误的“最小”版本E给定论点A。我所说的“减少”是指我将删除部分程序并手动内联函数,在每个阶段进行测试P A --> E而不是成功响应或其他错误消息。一旦我无法再减少它,我有一个小程序可能会触及问题的核心。

这个过程相当机械:它不需要我太多的“洞察力”。感觉就像它可以自动完成:可能有一些程序X其中,给定P, A, and E,吐出最小的程序P'这样P减少到P' and P' A --> E.

那么,这个策略有名字吗?对于任何编程语言来说,它是否已经实现了某种意义上的自动化?


终于偶然发现了一些可以回答我问题的东西! https://news.ycombinator.com/item?id=8089359显然,这种技术被称为“减少”或“最小化”。看:

  • CReduce http://embed.cs.utah.edu/creduce/,它执行我所描述的简化的通用版本,特别是针对 C 程序。
  • Delta http://delta.tigris.org/,一个非常相似的程序。
  • DustMite https://github.com/CyberShadow/DustMite/wiki,另一个类似的程序,用于最小化 D 程序。
  • 台达调试 https://www.st.cs.uni-saarland.de/dd/,一个描述一般过程的页面。
  • 减少测试用例指南 https://gcc.gnu.org/wiki/A_guide_to_testcase_reduction在海湾合作委员会维基百科上。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

这种错误查找技术的名称是什么?是否存在可以自动执行该技术的程序? 的相关文章

  • 如何将IDL导入到Delphi中?

    我如何导入接口定义语言 idl 文件存入Delphi 将类型和接口转换为 pascal 文件 我试过了 File Open 它只显示 idl 文本文件的文本 Project 添加到项目 它只是 就像 添加了一个 idl文本文件到项目 成分
  • 是否可以从同一网络上的另一台计算机访问 Azure 模拟器?

    我正在运行带有 VS 2010 SP1 和 Windows Azure SDK 1 5 的 Windows 7 x64 我希望能够在连接到同一网络的 iPhone 上调试 Web 应用程序 以缩短调试周期 IIS 正在这台计算机上运行 并且
  • 是否可以将调试会话附加到 Eclipse CDT 中正在运行的程序

    我正在编写一个netscape iplanet插件 在solaris C上使用eclipse 它基本上是一个具有特定入口点的共享对象 并且我希望能够使用eclipse的调试器 gdb 来调试共享对象 我记得在 AIX 中做过类似的事情 您可
  • 查找并删除超过 x 天的文件或文件夹

    我想删除超过 7 天的文件和文件夹 所以我尝试了 17 07 14 email protected cdn cgi l email protection find tmp mindepth 1 maxdepth 1 ctime 7 exec
  • 关于如何使用 selenium webdriver 自动执行 google 电子表格的示例 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 这只是一个知识共享示例 这是我使用 selenium webdriver 通过 gmail 实现 google 电子表格自动化的示例 pac
  • 如何使用eclipse调试JSP tomcat服务?

    我想使用 Eclipse IDE 调试器来调试单独运行的 JSP Struts Tomcat Hibernate 应用程序堆栈 如何设置 java JVM 和 eclipse 以便设置断点 监视变量值并查看当前正在执行的代码 我刚刚用谷歌搜
  • Eclipse 在单独的窗口中打开代码

    我正在 eclipse 中编程 在两个显示器设置上运行 在其中一台显示器上 我只获得了项目资源管理器和编辑器作为自定义透视图 而在另一台显示器上 我获得了其他工具 例如控制台 调试 任务 变量 断点等 例如 当我单击任务视图中的任务时 这将
  • 是否可以自动化 SQL Server 2008 分析器?

    有一个post https stackoverflow com questions 488020 what is your most useful sql trick to avoid writing more code关于有用的 SQL
  • 使用 IntelliJ 调试 Java 进程 - 连接到套接字但不连接到目标 VM

    现在已解决 请参阅问题末尾 我正在尝试使用 IntelliJ Community Edition 的调试器来调试 Java 进程 套接字正在侦听 但是当我尝试连接时 调试过程显示以下内容 连接到目标虚拟机 地址 8003 传输 socket
  • 阻止特定 URL 进行测试的最佳方法是什么?

    我正在使用 Google Chrome 和 Fiddler 版本 4 4 观察一个网站 该页面正在使用 AJAX 来更新其数据 我想阻止特定的 URL 以测试如果它不起作用会发生什么 阻止 URL 最简单的方法是什么 你希望发生什么 转到自
  • 如何在 VS QuickWatch 窗口中输入日期时间值?

    我正在尝试更改 QuickWatch 窗口中的一些日期时间数据 我尝试过 1 29 2009 等 但似乎都不起作用 它只是一直回到 12 00 00 AM DateTime 中的年 月 小时等字段是不可变的 您无法在 QuickWatch
  • 方法断点可能会大大减慢调试速度

    每当向方法声明行添加断点 在 Intellij IDEA 或 Android Studio 中 时 都会出现一个弹出窗口 方法断点可能会大大减慢调试速度 为什么会这样戏剧性地减慢调试速度 是我的问题吗 将断点放在函数的第一行有什么不同 Th
  • Windows 窗体不会在调试模式下显示

    我最近升级到 VS 2012 我有一组在 VS 2010 中编码的 UI 测试 我试图在 VS 2012 中启动它们 我有一个 Windows 窗体 在开始时显示使用 AssemblyInitialize 属性运行测试 我使用此表单允许用户
  • 有没有办法防止 Visual Studio 因特定方法中的异常而中断?

    我知道我可以根据异常的类型以及最终使用 异常 对话框捕获异常的事实来控制 Visual Studio 处理异常的方式 但是 我有一个在内部抛出 并捕获 一个库ArgumentOutOfRange当我调用特定方法时出现异常 抛出异常 并被库捕
  • 深入了解崩溃的根源

    我遇到了以下崩溃 我无法按需复制 但确实发生了足以引起用户注意的事件 该崩溃报告也已被符号化 怎么查原因啊 这似乎只发生在 4 1 上 Exception Type SIGSEGV Exception Codes SEGV ACCERR a
  • 调试客户端时使用 Chrome/Firefox

    我正在使用带有 getUserMedia 的相机 但出现了一些需要修复的错误 问题是 Visual Studio 只允许我使用 IE 调试 JavaScript 我的意思是命中断点 而 IE 不支持 getUserMedia 如果您想在 I
  • PHP 数字:小数点仅在需要时可见

    我想知道是否存在一些函数可以自动按十进制格式化数字 所以如果我有 所以我的答案是 如果我的数据库中有 DECIMAL 数据格式 仅当它
  • 是否可以根据函数要返回的内容在函数末尾设置条件断点?

    我有以下更复杂的版本 unsigned int foo unsigned int bar unsigned int myFunc return foo bar 就我而言 myFunc从很多地方调用 在其中一种情况下 出现了问题 通过进一步调
  • 调试 xslt 的工具

    我有一个 Java servlet 它生成 XML 使用 XSLT 样式表对其进行翻译 然后显示生成的 HTML 这是我第一次使用 XSLT 调试 XSLT 的好方法是什么 我也有 或可以获得 一些示例 XML 文件来应用转换 但我什至不确
  • Python 调试器是否会介入生成器?

    我目前正在使用 NetBeans IDE 和 Jython 2 5 1 当逐步调试我的项目时 一旦遇到生成器的迭代 调试器就会直接转到代码末尾 输出工作正常 但是一旦满足第一个生成器就无法进行逐步调试 这是所有 Python IDE 中 P

随机推荐

  • Final 字段和匿名类

    我仍然对有关匿名类和最终字段的解释不满意 有大量问题试图解释明显的问题 但我还没有找到所有问题的答案 假设以下代码 public void method final int i int j final int z 6 final int x
  • 如何在 SearchView/Widget 调用的搜索过程中传递额外的变量?

    我成功地使用操作栏中的搜索小部件来执行以下搜索本指南 http developer android com guide topics search search dialog html 搜索很好 但我想知道如何在搜索中传递其他变量 同一个指
  • PHP 中的类未注册错误

    我们创建了一个 C 类库程序集 并将其设置为 COM 可见 以便能够从 PHP 调用其方法 这曾经运行良好 但现在我们想将其安装在 Windows Server 2008 服务器上 并且不断遇到 类未注册 错误 为了排除任何依赖性问题 我用
  • 有没有一种简单的方法可以用 Pygame 制作和保存动画?

    我制作了一个非常简单的分形生成器 可以打印出每个步骤 我想把它放在我所做的演示中 我用来制作演示的工具显然不支持 pygame 有什么方法可以将其保存为视频吗 最好是动画 gif 等 http visvis googlecode com h
  • 让 CMake 将生成的二进制文件与资产一起放入特定的目录结构中

    我的项目的目录结构基本如下 root src 根 资产 根 库 我目前已将 CMake 设置为编译源代码 编译库 然后通过从根目录调用 make 来链接它们 然后 我必须手动将可执行文件移动到原始资产目 录中以使其运行 因为这是它期望的位置
  • params.getBehaviour() 返回空值

    我正在玩新的 Android 设计库 CollapsingToolbarLayout 工作得很好 但是 我无法将工具栏的默认状态设置为 折叠 我正在尝试实施所示的解决方案here https stackoverflow com questi
  • 无法确定表达式错误的序列化信息

    我得到一个Unable to determine the serialization information for the expression PlaceManager pm gt pm FreePlaces get Item inde
  • 在 Jetty WebAppContext 之间实现 SSO

    我正在开发的 Jetty 9 应用程序会自动扫描一组 JarFiles 中的 web xml 然后以编程方式将包含的 Web 应用程序导入为 WebAppContext 我需要在各个 Web 应用程序之间实现单点登录 如以下 Jetty 6
  • 在Java中编码base64并在C#中解码

    我在java和c 之间遇到了base64问题 我从java urlconnection发送编码字符串到asp net处理程序 我比较两个字符串 在java中从字节数组生成的字符串和在asp net第一次解码中接收的字符串相同 但解码后 c
  • 从套接字到套接字的零分配复制

    假设我们有一个套接字连接 我们称其为c1 我们接受消息的地方 我们还有 N 个其他套接字连接 我们将写入完全相同的消息 为了确定我们希望它写入哪个连接 我们只需要读取其中的前几个字节c1 但是套接字上剩余的字节不需要加载到java堆中 只需
  • Javascript 解密 aes-gcm 不起作用,但在 Python 中它可以工作

    我想将一个小型 python 库移植到 JavaScript 在 Node JS 中运行 我收到一条加密消息 初始化向量和密钥 在 python3 中 这些是导入 from cryptography hazmat primitives ci
  • java中的多播

    我正在尝试编写一个简单的多播试验 我使用了标准代码 发送者和接收者 我尝试了一些不同的标准代码 看来接收代码停留在接收状态 就好像没有接收到任何东西一样 接收端 byte b new byte 3 DatagramPacket dgram
  • WCF DataContract 与 DataContract 接口

    WCF 新手 DataContact类可以继承Interface吗 eg DataContract Namespace public class VesselSequence IVesselSequence DataMember publi
  • 使用 Gattle 向 ActiveMQ 发布消息

    我一直在使用Gatling将消息发布到 ActiveMq 服务器 我明白了 java lang SecurityException 无效的用户名 null 或空 不过我使用有效的用户名和密码 这是我的测试代码 抛出了异常 任何有关如何解决此
  • 如何使用Imagick合并和遮罩图像?

    我对图像处理知之甚少 对所使用的术语更是知之甚少 所以请耐心等待 Basically I want to merge two images together where one of them will act as a mask That
  • 如何重置 VisualTreeHelper.GetDpi() 以返回真实的 DPI?

    在 WPF 应用程序中VisualTreeHelper GetDpi 启动应用程序时获取 dpi 即使用户同时在 设置 gt 显示 中更改了 dpi 后续调用也会返回相同的值 我怎样才能 重置 dpiVisualTreeHelper Get
  • 模板意大利面条

    请解释一下那块令人困惑的模板意大利面条 template
  • 如何在 x86_64 主机上使用 Setup.py 构建 32 位 Python 模块分发版

    我需要编译一个 32 位发行版PyEphem http rhodesmill org pyephem 这似乎并不困难 但是 我遇到了一些编译器问题 CFLAGS m32 python setup py bdist p i386 runnin
  • 使用 Javascript/jQuery 确定标题从何处中断到下一行?

    HTML 假设我有固定宽度的容器 其中一些标题将超过一行 我想隔离这些线并对每条线做单独的事情 有没有一种方法 使用 JavaScript 来计算标题中断到下一行的位置 例如在每行周围放置一个跨度 Hacky 和 dirty 在同一个容器中
  • 这种错误查找技术的名称是什么?是否存在可以自动执行该技术的程序?

    假设我有一些巨大的程序P我知道其中有一个错误 当我带参数运行它时A它打印出丑陋的错误消息E 在 shell 表示法中 会发生这种情况 P A E 现在我不知道是什么原因导致了这个错误 但它似乎是确定性的 我找到错误的方法是 隔离 它 我 减