gpt4 book ai didi

debugging - 如何在 Haskell 中打印行号和堆栈跟踪?

转载 作者:行者123 更新时间:2023-12-03 07:58:26 28 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How can I figure out the line number where exception occured in Haskell?

(1 个回答)


5 个月前关闭。




我 Java 我将此附加到我的打印语句中,并且它们有一个堆栈跟踪...

How can we print line numbers to the log in java

public static int getLineNumber() {
// The second row of the stack trace had the caller file name, etc.
return Thread.currentThread().getStackTrace()[2];
}

我怎么做这是 Haskell?

最佳答案

一种选择似乎是使用像 loc-th 这样的库。例如,您可以在其中编写包含行信息的错误消息:

{-# LANGUAGE TemplateHaskell #-}
-- app/Main.hs
module Main where

import Debug.Trace.LocationTH

main :: IO ()
main = do
$failure "Error"
putStrLn "Hello"

给我
my-exe: app/Main.hs:10:5-12: Error
它还提供了一个可以查看的字符串,以确定行号。但是,根据您的用例,我认为这有点令人不悦。例如,我不想看到这种方法只用于记录行号。

关于 Haskell 调试技术的更多信息 here .

不过,老实说,也许这不是最好的主意。你打算用行号做什么?

关于debugging - 如何在 Haskell 中打印行号和堆栈跟踪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35261366/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com