GDB下的可执行文件调用不同的嵌入式Python
我有一段代码,它里面嵌入了Python。这个嵌入的Python使用了NumPy,所以我需要明确加载一下libpython
,这样NumPy才能正常工作。
主要的代码是用C++写的(在Google Test中进行测试)。但是在某个地方出现了bug,我想用gdb
来调试。不过,奇怪的是,当我直接运行可执行文件和在gdb
下运行这个可执行文件时,嵌入的版本是不同的。
我通过在初始化的嵌入式Python中实例化sysconfig
模块,然后使用sysconfig.get_config_var("LIBDIR")
来找到libpython
的路径。
当我直接运行可执行文件时,我记录下找到的libpython
的路径:
Path to libpython is /home/dima/.conda/envs/um02-open-interfaces/lib
当我在gdb
下运行同样的可执行文件时:
Path to libpython is /home/linuxbrew/.linuxbrew/opt/python@3.11/lib
我该如何阻止gdb
改变环境?