kicad运行时出错,_Pnext->_Myproxy = nullptr;访问内存出错解决措施
前面分析到可能是编译的原因导致编译出来的库有问题,所以想着尝试重新编译dll库看能不能解决这个问题。
虽然报错的时候是指向了libprotobufd.dll,但是通过对整个过程的分析,认为出错的地方是abseil库,所以这里先尝试重新编译abseil库,如果还有问题再重新编译libprotobufd看是否还有问题。
将vcpkg下载的源码包拷贝到一个单独的工程目录中解压出来,然后使用visual studio 打开。
然后点击生成->生成xxx.dll库。
一开始用visual studio 打开这个源码工程的时候,并没有生成xxx.dll库的选项,后来用cmake-gui去配置的时候发现提示了build shared libs not set。
# /enable build share lib
set(BUILD_SHARED_LIBS ON)
于是修改了该目录下的CMakeLists.txt,添加set(BUILD_SHARED_LIBS ON) 就可以了,重新编译出dll库后,将它替换kicad目录下的abseil_dll.dll,再双击可执行程序。
终于可以成功打开了,重新去debug原来调用的函数,分析这个过程,做好问题的闭环验证。
从debug的过程来看,原来不正常变量现在都正常了