Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Eclipse:调试从python加载的共享库 在Linux,我尝试调试从Python代码加载的共享库的C++代码。加载是使用ctypes软件包完成的。在Eclipse中,我在Python和C++代码中设置断点,但是Eclipse只跳过C++代码中的断点(Python代码工作中的断点OK)。p>_Python_Debugging_Gdb_Shared Libraries_Eclipse Cdt - Fatal编程技术网

Eclipse:调试从python加载的共享库 在Linux,我尝试调试从Python代码加载的共享库的C++代码。加载是使用ctypes软件包完成的。在Eclipse中,我在Python和C++代码中设置断点,但是Eclipse只跳过C++代码中的断点(Python代码工作中的断点OK)。p>

Eclipse:调试从python加载的共享库 在Linux,我尝试调试从Python代码加载的共享库的C++代码。加载是使用ctypes软件包完成的。在Eclipse中,我在Python和C++代码中设置断点,但是Eclipse只跳过C++代码中的断点(Python代码工作中的断点OK)。p>,python,debugging,gdb,shared-libraries,eclipse-cdt,Python,Debugging,Gdb,Shared Libraries,Eclipse Cdt,我曾尝试在Eclipse中使用attach to application(在调试配置下)并选择Python进程,但它没有改变任何东西。在附加到应用程序对话框中,我选择共享库作为项目,并选择/usr/bin/python2.6作为C/C++应用程序。这是正确的方法吗 我在运行python代码之前和在捕获python代码中的断点之后,在调用共享库函数的行之前,都尝试过这两种方法 编辑 同时,我正在使用一种变通方法,通过附加到python进程,调用python代码并使用gdb命令行会话进行调试。但我想

我曾尝试在Eclipse中使用
attach to application
(在调试配置下)并选择Python进程,但它没有改变任何东西。在
附加到应用程序
对话框中,我选择共享库作为项目,并选择
/usr/bin/python2.6
作为
C/C++应用程序
。这是正确的方法吗

我在运行python代码之前和在捕获python代码中的断点之后,在调用共享库函数的行之前,都尝试过这两种方法

编辑


同时,我正在使用一种变通方法,通过附加到python进程,调用python代码并使用gdb命令行会话进行调试。但我想从Eclipse中听到一个解决方案。

< P>我已经成功调试了在Python中加载的C++共享库。p> 先决条件: Eclipse工作区中的两个Eclipse项目:一个是C++项目,C++生成共享库,另一个是Python项目(PyDeV),加载生成的C++共享库。 这些步骤是:

  • 使用相应的Python环境和参数创建名为PythonDebug的“Python运行””调试配置
  • 创建名为CppDebug的“C/C++附加到应用程序”调试配置。项目字段是C++项目,离开<强> C/C++应用程序>强>字段空
  • 在Python代码中设置断点,在C++共享库已经加载之后
  • 启动调试会话PythonDebug,程序将在步骤3中创建的断点处中断
  • 启动调试会话CppDebug,将弹出一个菜单,选择具有正确pid的python进程(将有3个pid,正确的pid可以在PythonDebug会话中找到)
  • 在C++程序源代码中设置断点,希望程序中断
  • 继续PythonDebug会话
  • 继续CppDebug会话
  • <>程序将在C++断点中中断 我用EclipseMars版本测试了上述过程


    <>希望有帮助。< /p>是用调试信息构建的库吗?是的,当从C++可执行文件加载时,我可以调试库而不存在任何问题。在第二的思想中,我如何验证Python代码加载调试版本?如果没有找到调试信息,GDB应该发出警告(<代码>从…读取符号(没有发现调试符号))。…完成。vs.
    从…读取符号完成。
    )。我对Eclipse不熟悉;希望你有办法读取原始GDB输出。尝试使用C++ ASM(“int $ 3”)在C++代码段中能够调试与MingW类似的Python + C++共享库项目。有两个区别:1。我必须选择“遗留附加到进程启动器”。2.C/C++应用程序字段不应为空,而应为python可执行文件。