像VS/VC一样调试python调用的C++共享库



前面介绍了使用GDB调试python调用的c++共享库,但是对于习惯了IED调试的同学来说真的很不习惯,那么下面就介绍一种使用IED调试python调用的C++共享库的方法。

代码还是前面的代码

代码链接:测试用代码





下面就话不多说,直接贴图


像VS/VC一样调试python调用的C++共享库_第1张图片

  1. 假设你已经使用code::blocks创建好了一个动态库工程,那么Project->Properties->Build targets之后会看到上图,点击1Add一个target),名字叫做debugpython,2(Type)选择控制台,因为我们创建的是动态库工程,因此build targets 里面的DebugReleaseType都是动态链接库,但是我们自己添加的debugpython必须设置成控制台,不然一会我们无法从code::blocks启动调试,因为动态库工程是无法直接进入调试的,3output filename)设置为空格即可,但是不能不设置。


像VS/VC一样调试python调用的C++共享库_第2张图片

2.因为我们要编译共享库,因此需要加上-fpic,这个参数的添加方法是:Settings->Compiler and debugger…会出现上面的图,把-fpic加进去



像VS/VC一样调试python调用的C++共享库_第3张图片

3.在Debug模式下编译源文件为共享库。注意编好的共享库的名字要和py代码中import的模块的名字相同。


像VS/VC一样调试python调用的C++共享库_第4张图片

4.共享库编译好之后,将build targets设置为我们自己Addpythondebug1),然后点击开始调试(2)。


像VS/VC一样调试python调用的C++共享库_第5张图片

5.成功启动调试的界面如上图,因为我们选择的type是控制台,因此会启动上图中的2那么窗口,这个窗口主要是输出程序中的coutprintf1标注的就是输入gdb命令的command栏,在command栏中依次输入下面三个命令:


Exec-file python-dbg


b DoubleMerge


r MergeLine.py


  第三个命令是执行py文件,要注意py文件的目录,最好将py文件放到当前工程目录,如果py文件不在当前工程目录下,那么需要将py文件中的import共享路的路径设置成当前工程生成的共享库的目录。



像VS/VC一样调试python调用的C++共享库_第6张图片

6.执行完上面的三个命令以后,就会出现上图1标注的黄色三角,没错,断点就停在了这里,至于像3这样的可以查看变量的窗口,需要点2处的按钮,选择watchs即可,点击2处的按钮还有很多可选的窗口,函数调用栈,内存等等都有,4标注的是单步执行。


 


OK这样就可以像VS或者VC一样调试python调用的C++共享库了。



你可能感兴趣的:(像VS/VC一样调试python调用的C++共享库)