segfault调用CPython PyDateTime_FromTimestamp

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

我正在将cpython和v8嵌入到一起,并在通过PyDateTime将javascript数据转换为PyDateTime_FromTimestamp时遇到段错误:

Handle<Date> date = Handle<Date>::Cast(value);
printf("%d\n", 8);
PyObject* floatObj = PyFloat_FromDouble(date->NumberValue());
printf("%d\n", 9);
printf("%d\n", floatObj);
PyObject* timeTuple = Py_BuildValue("(O)", floatObj);
Py_DECREF(floatObj);
printf("%d\n", 10);
PyObject* dateTime = PyDateTime_FromTimestamp(timeTuple);
printf("%d\n", 11);
Py_DECREF(timeTuple);
printf("%d\n", 12);

运行时我得到以下输出:

8
9
14709864
10
[1]    33794 segmentation fault

任何洞察为什么timeTuple似乎导致PyDateTime_FromTimestamp错误?

字符串,数字,布尔值,数组,字符串等的转换都可以正常工作。

python-2.7 v8 cpython embedded-v8
1个回答
0
投票

回答我自己的问题:

看来PyDateTime_IMPORT;宏需要从你将调用PyDateTime_FromTimestamp的同一个文件中调用。我之前在调用Py_Initialize后直接在另一个文件中调用它。

© www.soinside.com 2019 - 2024. All rights reserved.