首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从Code.eval_quoted内部获取堆栈跟踪

从Code.eval_quoted内部获取堆栈跟踪
EN

Stack Overflow用户
提问于 2018-11-25 00:50:52
回答 1查看 139关注 0票数 0

是否有可能获得完整的堆栈跟踪,或者在对Elixir中的引用块求值时,查看在哪行抛出错误?

例如,我有这个模块:

代码语言:javascript
复制
defmodule Test do
  def trySomeQuotedCode() do
    quote do
      IO.puts "line 1"
      IO.puts "line 2"
      5/0
    end
    |> evalMyQuoted
  end

  def evalMyQuoted(quoted) do
    Code.eval_quoted(quoted)
  end
end

但是如果你执行它,你会看到:

它显示有一个带有:erlang./(5, 0)ArithmeticError,这是正确的,但它没有显示在引用的代码中的位置。通过这个小示例,仍然很容易找到代码中的错误所在,但如果引用的代码大得多或更高级,它可能就不那么微不足道了。

那么,对于这个例子,有没有可能得到堆栈跟踪来表明错误在引用部分的求值中的“第3行”?或者从Code.eval_quoted获取行号作为返回值

EN

回答 1

Stack Overflow用户

发布于 2018-11-25 15:43:32

您要查找的是Kernel.quote/2调用中的location: :keep选项。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53460350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档