torch 调用的 cpp 如何调试

2023-09-25 04:28:08 +08:00
 t133

比如这个文件:
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 里就行了?

1124 次点击
所在节点    Python
2 条回复
ysc3839
2023-09-25 04:44:53 +08:00
torch.utils.cpp_extension.load 后面的编译参数确保开启了调试符号。我不确定默认是否开启调试符号,也许默认开了就不需要动了。
然后如果是类 Unix 平台,调试符号会被编译进动态库文件里面,用调试器给对应源代码文件下断点应该就能自动生效。
如果是 Windows 平台,调试符号会是一个单独的 pdb 文件。一般来说 dll 里面会写入完整的 pdb 路径,调试器可以自动加载 pdb ,没有自动加载的话手动加载,然后下断点即可。
t133
2023-09-25 05:41:45 +08:00
@ysc3839 非常感谢的确可以了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/976782

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX