如何调试没有错误消息的ctypes
How to debug ctypes without error message
我有一个简单的python脚本,使用c/c++库与ctypes
。我的c++库还包含一个main方法,所以我可以编译它而不使用-shared
标志,它可以被执行并且运行没有问题。
然而,当我使用ctypes
从python脚本运行相同的代码时,执行c++程序的一部分(我可以从cout
调用中看出这一点)。然后是整个应用程序,包括python脚本,终止程序(我可以从缺失的cout
和print
调用中看出这一点)。没有错误信息,没有分段错误,没有python堆栈跟踪。
我的问题是:我如何调试这个?发生这种情况的可能原因是什么?
这是部分代码,但是,由于没有错误消息,我不知道哪段代码是相关的。
import ctypes
interface = ctypes.CDLL("apprunner.so")
interface.start()
print "complete"
.
#include "../../app/ShaderApp.cpp"
#include <iostream>
#include "TestApp.cpp"
TestApp* app = 0;
extern "C" void start() {
app = new TestApp();
cout << "Running from library" << endl;
app->run();
}
int main( int argc, const char* argv[]) {
cout << "Running from excecutable" << endl;
start();
}
通常从一个小的模型库开始,它只允许您测试来自python的函数调用。准备好之后(所有调试打印都没问题),就可以继续下一步了。在您的示例中,注释掉#include "testapp.cpp",并使打印到cout工作。
相关文章:
- C++错误消息*成员参考.**初学者*
- 我的代码中有错误吗?使用BGI图形的C++代码对我不起作用
- 如何通过参数抛出错误消息
- glad 导致 glfwSwapBuffers 返回错误消息
- FindPackageHandleStandardArgs.cmake:137 的 CMake 错误(消息):找不到 Boost (缺少:正则表达式)(找到合适的版本"1.72.0",
- 如何接受 [ENTER] 键作为无效输入并发送错误消息
- 重新定义预定义的 errno 错误消息 (E2BIG)
- SDL 映像:无法打开映像,仅显示错误消息
- 错误消息:使用"string* +="后"no match for 'operator+='"
- 我的代码中有错误,未声明的标识符
- 错误消息"expected expression"....有人知道它为什么这么说吗?
- 在 Eclipse: "error: no match for 'operator='" 中获取错误消息
- GCC 警告和 gcc 错误消息之间的区别
- 为 c++ cin 上的输入数无效生成错误消息
- 来自带有mbedtls TLS的Mongoose Web服务器的错误消息
- 如何使用realsense摄像头调试ROS错误消息
- C++ 概念 - 需要括号中的概念会导致 2 条冲突的错误消息
- 为什么从不同分配器的列表中剪辑列表元素时会有错误消息?以及如何解决
- Bada IDE有代码完成和有意义的错误消息吗?
- 为什么C++编译器有模糊的错误消息