我是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行设置了一个断点,如果这是相关的话。
1条答案
按热度按时间zlhcx6iw1#
原来lapack.jl被当作编译代码来加速调试,从调试器的编译包列表中删除LinearAlgebra解决了这个问题。