源代码调试
我们常规加载的opencv_world.dll和opencv_world.lib是无法进入源代码调试的,因为缺少相应的pdb文件,pdb文件的作用可以通过网上查阅,是调试必不可少的文件,所以在配置OpenCV的时候就需要修改一点内容,就是加载的lib文件需要加载同级目录下有对应pdb文件的lib(紧接上一篇自己编译的opencv库),具体截图如下: 
 其他按照正常的配置,完成后就写段简单的代码进行测试,具体截图如下:  用Debug模式,到断点处后,点击F11,前两次会先进入结构体的构造函数中,跳出再进入就可以,几次进出后,就会进入cvtColor的源代码中,具体截图如下:  继续F10,就可以单步调试OpenCV的源代码了,其他函数也是一样。
源代码的修改
修改OpenCV的步骤比较简单,首先就是找到要修改的函数位于哪个文件中,比如我要修改imread函数,它在loadSave.cpp中。打开CMake生成的OpenCV.sln,和之前编译源代码一样。所有需要修改的源代码都位于modules\opencv_world\下对应的模块中,(之前CMake生成的时候勾选了opencv_world的情况下,不然所有模块都是独立的,可以单独修改),具体截图如下:   在loadsave.cpp中找到imread的函数,然后添加自己的代码,比如这边多输出了一个Final read image success。修改完之后,和之前编译源代码一样,重新生成一下ALL_BUILD工程和INSTALL工程,然后使用新生成的dll和lib就可以。如果想要自己增加新的函数,就要同步在头文件中和实现中都添加。如果之前CMake没有勾选opencv_world选项,那可以单独修改一个模块,然后只重新生成那个模块的工程。这边实际的测试结果如下:  说明自己修改的部分已经成功应用。
|