【问题标题】:Can I ask GHC to import Debug.Trace for every module during development?我可以要求 GHC 在开发过程中为每个模块导入 Debug.Trace 吗?
【发布时间】:2023-03-16 17:16:01
【问题描述】:

标题是不言自明的。我调试的时候经常加trace,这就需要加上Debug.Traceimport。但是,我同样经常忘记在完成后删除它们。

我想要一个“开发”开关来添加导入,这样当我禁用它时,我可以轻松找到代码中留下的所有痕迹。

【问题讨论】:

  • 为什么不从内部.Utils 模块中导入trace 而不是直接从Debug.Trace 中导入,并在完成后从该模块中删除trace 的导出?
  • @Michael 哈哈,这实际上是个好主意。 IOW,应该是一个答案:)
  • 实际上,可以制作一个“OnOffTrace”模块,其中编译器标志确定该导出。也许这对 Hackage 来说是值得的。我更喜欢 Util,因为它看起来不那么具有侵入性。但是,理想的解决方案根本不需要添加任何导入。

标签: haskell ghc haskell-stack


【解决方案1】:

为什么不从内部 .Utils 模块而不是直接从 Debug.Trace 导入跟踪,并在完成后从该模块中删除 trace 的导出?

这是不同的,但我在某处找到的另一个权宜之计是在 trace _ = idimport Debug.Trace (trace) 之间切换。然后你可以例如在使用(真实的)trace 和做基准测试之类的事情之间来回走动,这当然被trace 破坏了。然后,当您完成所有这些操作后,您可以删除(其中一个)trace 的导出,并找出您曾在项目中使用过它的所有剩余证据...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-21
    • 2016-11-20
    • 1970-01-01
    • 2021-07-01
    • 2018-07-26
    • 2011-12-15
    • 2015-10-26
    • 1970-01-01
    相关资源
    最近更新 更多