2

QuantLib-Python是 SWIG 生成的 python 模块,允许访问 QuantLib (C++) 功能。我希望从 Visual Studio 调试器中调试核心 QuantLib 源代码(通过附加到 python 进程)。过去,我可以使用以下步骤在 Visual Studio 2015 上毫无问题地执行此操作。但是,在 Visual Studio 2017(和 2019)上,调试符号不会从 PDB 文件加载到 Visual Studio 中。

  1. 在 Visual Studio 中构建 QuantLib C++ 代码 (Debug|x64)
  2. 将以下内容添加到quantlib.iSWIG 文件中(将调试 C++ 与发布 python 结合起来)
        %begin %{
        #ifdef _MSC_VER
        #define SWIG_PYTHON_INTERPRETER_NO_DEBUG
        #endif
        %}
  1. python setup.py wrap
  2. python setup.py build --debug
  3. python setup.py install
  4. 启动一个 python 会话并import QuantLib
  5. 在 Visual Studio 中,将调试器附加到 python 进程
  6. 设置断点。
  7. 在 python 中执行一条语句,该语句应该高于断点(在 VS2019 中,这个断点没有被命中)。

我可以从模块窗口中看到没有为 QuantLib 加载任何符号。如果我查看站点包中的 QuantLib 文件夹,我可以看到 PDB 文件确实存在。

以前有没有其他人遇到过这个问题?知道什么可能导致这里的问题吗?

4

1 回答 1

0

我想我现在已经弄清楚了。需要确保选择“本机代码”作为要调试的代码类型。可以使用“调试 > 附加到进程”下的“选择”按钮设置此选项。

调试 > 附加到进程

于 2019-08-06T20:57:36.827 回答