【问题标题】:'Reading' Code through Debugging通过调试“阅读”代码
【发布时间】:2017-07-12 11:01:36
【问题描述】:

假设您的任务是了解一些非常复杂、具有依赖关系网络和已加载命名空间的软件。假设它是一个或多或少未记录的编译器的控制器。

为了了解软件的工作原理,是否有任何已编码的概念或技术名称,通过该技术可以“记录”整个执行过程中的变量值?或者可能仅适用于给定功能的范围?我想这主要是作为调试工具存在的。

在我的特殊情况下,我正在使用 F#,因此如果您有具体的参考资料也会很有帮助。

【问题讨论】:

  • 我通常尝试编写(或添加额外的)单元测试,然后“从头重构”。我想一长串变量和值会给你更多的信息过载。
  • 我的处理方法会因代码的结构而异。在精心设计的 F# 中,我可能只会阅读代码而不是您的建议。
  • “printf 调试”、“跟踪调试”或“跟踪”stackoverflow.com/questions/189562/…
  • 您也可以尝试将代码加载到 FSI 并以交互方式运行它的各个部分。 FsCheck 在此处可用于生成复杂值的任意实例,您可以将其传递给函数以使其运行。
  • 我发现在 Visual Studio 调试器中单步调试各种测试用例非常有启发性。

标签: debugging f#


【解决方案1】:

您正在寻找的是支持 inspectorstracerswatchesglobalslocals)和上下文感知评估者。一些编辑器可能具有启用此功能的插件。从 (2017) LightTable-FSharp 开始,Light Table 编辑器可用,它显示了一个内联评估器。谢谢。

【讨论】:

    猜你喜欢
    • 2014-09-25
    • 2012-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-19
    相关资源
    最近更新 更多