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

时间:2019-04-23 11:13:17

标签: python visual-c++ swig quantlib-swig

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.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中,此断点未被命中)。

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

其他任何人之前都遇到过此问题吗?你知道什么可能导致这里的问题吗?

1 个答案:

答案 0 :(得分:0)

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

Debug > Attach To Process