我想知道在桌面应用程序中,定位哪些代码实现了特定特性的一些技术。
我是一个初级的开发人员,只有专业的编程经验是围绕网络编程。在网络上,这样做更容易。例如,使用浏览器工具“检查”一个按钮,单击它时可以看到正在执行的操作。然后,假设您拥有完整的源代码,就可以向下钻取调用的层次结构。
但是如何在桌面应用程序中做到这一点呢?至少,不需要钻研完整的代码库?
发布于 2014-03-08 23:54:24
回溯跟踪是将端点定位到与该功能关联的事件(参见下面)。在那里之后,将在调试器中放置一个断点。此功能将在调试器停止时触发。对调用堆栈进行检查,以追溯调用路径。在遍历调用堆栈时,您可以记录变量状态,或者放置新的断点来再次检查事件。
该特性再次触发,调试器在新断点处停止。然后可以重复回溯或执行前向跟踪,直到找到目标为止。
要调试特性,您必须知道源代码的最终目标在哪里。只有从这一点出发,才能追溯到代码是如何实现的。一个示例;了解如何执行撤销。您知道代码中的内容被撤消了,但是您不知道事情是如何实现的。这将是一个候选的回溯,以了解该功能如何工作。
前向跟踪是为与功能相关的事件定位起点(见下文)。在此之后,将日志消息插入到源代码中或设置断点。当您进一步远离起点时,会重复此过程,直到您发现该特性的目标。
您可以使用关键字、用户界面标识符(按钮ID、窗口名称)或容易找到与该功能关联的事件侦听器。例如,您可以从用于触发撤消功能的按钮开始。
工艺
与起点和终点相比,你可以认为这是中间点。当您已经知道一个特性中使用了一段代码时,您就执行了一个消除过程,但是它既不是特性的开始,也不是特性的结束。
中间点的方向取决于入口和出口的数量。如果代码块在许多地方使用,那么从这个位置返回跟踪可能非常耗时,因为它们都必须进行检查。然后,您使用一个消除过程来减少此列表。另外,您可以从这一点执行前向跟踪,但是如果代码块分支到许多地方,这也可能是一个问题。
您必须减少位置方向,不遵循显然不会为该功能执行的路径。跳过这段代码,只在可能与特性相关的地方放置断点。
中间点调试通常需要更先进的IDE特性。查看代码层次结构和依赖关系的能力。没有这些工具,就很难做到。
发布于 2014-03-08 23:16:20
假设这个特性与某些UI细化相关联,比如按钮或菜单,那么我倾向于做的事情(非常乏味,但很有效)。这是在查看源代码,而不是使用调试器。
SUPER_BUTTON_3 = "Super Feature X3"。为了将来参考,请记住这个文件名。阿蒙指出,有时候调试器更简单..。
发布于 2014-03-09 00:46:30
https://softwareengineering.stackexchange.com/questions/231759
复制相似问题