比如这个文件:
https://github.com/activatedgeek/simplex-gp/blob/master/gpytorch_lattice_kernel/cpp/lattice.cpp
似乎用 torch.utils.cpp_extension.load 他就会自动生成 so 然后载入成 python 的一个函数了 但是好像没法调试 c++内部的 code
不太懂 c++,所以这个是怎么编译的 我试着写了个 makefile 感觉没法不使用 torch 编译出 so 文件
更不用说调试这个 so 文件了
我的理解是调用了 torch 和 pybind11 的头文件只要把 PATH 加到 cmake 的 flag 里就行了?
1
ysc3839 2023-09-25 04:44:53 +08:00 via Android 1
torch.utils.cpp_extension.load 后面的编译参数确保开启了调试符号。我不确定默认是否开启调试符号,也许默认开了就不需要动了。
然后如果是类 Unix 平台,调试符号会被编译进动态库文件里面,用调试器给对应源代码文件下断点应该就能自动生效。 如果是 Windows 平台,调试符号会是一个单独的 pdb 文件。一般来说 dll 里面会写入完整的 pdb 路径,调试器可以自动加载 pdb ,没有自动加载的话手动加载,然后下断点即可。 |