如何在 Visual Studio 中调试 QuantLib-Python 模块

How to Debug QuantLib-Python module in Visual Studio

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++ 代码(调试|x64)
  2. 将以下内容添加到 quantlib.i SWIG 文件(将调试 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 中未命中此断点)。

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

有没有其他人遇到过这个问题?知道是什么导致了这里的问题吗?

我想我现在明白了。需要确保选择 "Native Code" 作为要调试的代码类型。可以使用 "Debug > Attach To Process".

下的 "Select" 按钮设置此选项