如何捕获我使用 ctypes.CDLL 从 Python 执行的 C++ 代码中发生的浮点异常

问题描述 投票:0回答:1

我有一个与一些 C++ 代码交互的 python 程序。我使用

ctypes.CDLL(path_to_compiled_c_code).function_name
从 python 加载 C++ 函数。在某些时候,我的 Python 程序会停止执行,并显示消息
Floating point exception (code dumped)
。我知道这个异常来自 C++,但它并没有说明该行,并且不能选择深入研究它。如果我可以从我的 Python 代码中捕获该异常,那就太好了,但是当发生此错误时,执行将停止,而不会出现任何我可以捕获的异常,或者至少我在标准输出中没有任何有关该异常的信息,只有这一行.

我怎样才能从Python代码中捕获这个?

python c++ ctypes
1个回答
0
投票

我也遇到了同样的问题,在C/C++代码中进行调试。 @CristiFati 说得对,这似乎被零除。

我所做的调试:监视并打印任何作为除数的变量,以在除法之前检查值。

...

if( b == 0){
   printf("a: %.3f, b %.3f", a, b);
   exit(1);
} else {
   x = a / b;  //<- monitor b value
}
© www.soinside.com 2019 - 2024. All rights reserved.