debugging 如何在Julia库函数上设置断点?

kknvjkwl  于 2023-10-24  发布在  其他
关注(0)|答案(1)|浏览(173)

我是Julia的新手,所以我想我可能忽略了一些东西,或者有一个根本的原因为什么不能这样做。简单地说,我有一些代码,当我用Float32数组调用LinearAlgebra包时,会触发它的异常,而不是用Float16数组。从堆栈跟踪中,我确切地知道异常发生在LinearAlgebra中的什么地方,在VS Code中,我在特定的行上设置了一个断点。然而,当我在调试器中运行代码时,断点没有被触发,我的代码遇到了异常。我做错了什么?我应该怎么做才能在Julia库函数上设置断点?
我尝试调试的代码如下(需要Apple Metal):当尝试将指针指向GPU阵列时,它会在lapack.jl中触发一个异常。

using Metal
using KernelAbstractions
using LinearAlgebra

backend = MetalBackend()
A = KernelAbstractions.allocate(backend, Float32, 3, 3)
qr!(A)

我在lapack.jl(调用Metal.jl的ccall)的第457行设置了一个断点,如果这是相关的话。

zlhcx6iw

zlhcx6iw1#

原来lapack.jl被当作编译代码来加速调试,从调试器的编译包列表中删除LinearAlgebra解决了这个问题。

相关问题