QuantLib-Python是 SWIG 生成的 python 模块,允许访问 QuantLib (C++) 功能。我希望从 Visual Studio 调试器中调试核心 QuantLib 源代码(通过附加到 python 进程)。过去,我可以使用以下步骤在 Visual Studio 2015 上毫无问题地执行此操作。但是,在 Visual Studio 2017(和 2019)上,调试符号不会从 PDB 文件加载到 Visual Studio 中。
- 在 Visual Studio 中构建 QuantLib C++ 代码 (Debug|x64)
- 将以下内容添加到
quantlib.i
SWIG 文件中(将调试 C++ 与发布 python 结合起来)
%begin %{
#ifdef _MSC_VER
#define SWIG_PYTHON_INTERPRETER_NO_DEBUG
#endif
%}
python setup.py wrap
python setup.py build --debug
python setup.py install
- 启动一个 python 会话并
import QuantLib
- 在 Visual Studio 中,将调试器附加到 python 进程
- 设置断点。
- 在 python 中执行一条语句,该语句应该高于断点(在 VS2019 中,这个断点没有被命中)。
我可以从模块窗口中看到没有为 QuantLib 加载任何符号。如果我查看站点包中的 QuantLib 文件夹,我可以看到 PDB 文件确实存在。
以前有没有其他人遇到过这个问题?知道什么可能导致这里的问题吗?