上下文:我正在构建一种编程语言(称为 Lima),我想知道有哪些选项可以让系统跟踪堆栈,以便我可以生成正确的堆栈跟踪(使用原始的正确行号资源)。请注意,这并不意味着重复这个相关但有限的问题:如何生成堆栈跟踪?
我的基本问题是:程序是否需要更新它在执行的每一行之间的行号?
在我看来,不幸的答案是肯定的。
我也想知道我是否可以利用我正在编译的环境中的任何东西来进行堆栈跟踪。现在,我正在将该语言编译为 javascript(并在 Rhino 中运行)——但我正在寻找一个一般性的答案,即底层环境在理论上是否可能以任何方式帮助您。
如果底层系统支持堆栈跟踪,您可以从该系统的行号到您的行号进行静态映射吗?