我在Quantlib中有一个模块,当我通过SWIG从C#调用它时,它无法正常工作。有没有办法可以通过我的C#单元测试调试Quantlib?
答案 0 :(得分:2)
还没有人回答,所以我会在调试Ruby + SWIG时提供类似情况下的操作。
创建一个Visual Studio项目,其中包含SWIG生成的C#源,SWIG生成的C ++,C#单元测试以及Quantlib源的其余部分。
我只是查看了Quantlib提供的Visual Studio解决方案文件并且没有看到SWIG目标,这很不幸,但如果您至少拥有C ++源代码,并且可以在调试模式下构建它,那么您可能会到达那里。困难的部分是您调用的C#Dll将在其调用中引用某个C ++ DLL。您可能必须将C ++ Quantlib调试库移动到C#项目的Debug文件夹中,以便找到所需的特定版本。
配置完解决方案后,使用调试符号将所有内容构建为debug或rel。
如果您现在在同一解决方案中拥有C#绑定源和Quantlib C ++源,您应该能够在C#或C ++中的任何位置设置断点,并且能够逐步调用从一个到C#或C ++的调用。其他
使用我们的SWIG Ruby情况,我们可以在SWIG生成的CXX文件或C ++库源中设置断点,该源文件由swig包装并逐步执行Ruby解释器的调用。我们可以通过从Visual Studio中启动ruby作为启动项目来实现此目的。
我希望这些信息可以提供一些帮助。