首页 > 解决方案 > 如何在堆栈跟踪(haskell)中获取行号?

问题描述

我已经尝试了几乎所有我能找到的远程相关命令行标志,虽然我已经能够获得堆栈跟踪,但没有什么可以给我行号。我忽略了什么吗?

标签: haskellghc

解决方案


HasCallStack 是要走的路:

{-# LANGUAGE FlexibleContexts #-}

import GHC.Stack
import GHC.Stack.Types

main :: HasCallStack => IO ()
main =  putStrLn ((\(PushCallStack _ loc _) -> show (srcLocStartLine loc)) callStack)
% ./main
7

推荐阅读