C调用Python崩溃的记录

简介: C调用Python崩溃的记录

也不确定哪里出了问题。


 根据目前了解的情况,出错原因如下:


新产生一个数组缓冲区。

产生调用Python的数组参数。

销毁该缓冲区。

调用Python函数。

 这时发现这个缓冲区已经销毁了,于是出错了。


 正确做法是,3、4颠倒。


 参考《C向Python传递数组参数时,调用函数后才能销毁》。

#0  0x00007f474329b984 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
[Current thread is 1 (Thread 0x7f470affd700 (LWP 31868))]
(gdb)
(gdb) backtrace
#0  0x00007f474329b984 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
#1  0x00007f4743324106 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
#2  0x00007f47432a01a7 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
#3  0x00007f47432a0e3b in _PyObject_GC_Malloc ()
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
#4  0x00007f47432903eb in PyType_GenericAlloc ()
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
#5  0x00007f4608204ab8 in THPVariable_NewWithVar (type=<optimized out>,
    var=...) at torch/csrc/autograd/python_variable.cpp:48
#6  0x00007f4608206659 in THPVariable_Wrap (var=...)
    at torch/csrc/autograd/python_variable.cpp:75
#7  0x00007f460820dcbc in torch::autograd::utils::wrap (tensor=...)
    at /pytorch/torch/csrc/autograd/utils/wrap_outputs.h:18
#8  torch::autograd::THPVariable_getitem (self=0x7f45b015f370,
    index=0x7f4690018a58)
    at torch/csrc/autograd/python_variable_indexing.cpp:292
#9  0x00007f47432739fd in PyEval_EvalFrameEx ()
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
#10 0x00007f47433af11c in PyEval_EvalCodeEx ()
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
---Type <return> to continue, or q <return> to quit---
#11 0x00007f47433053b0 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
#12 0x00007f47432d82b3 in PyObject_Call ()
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
#13 0x00007f474324474a in ?? ()
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
#14 0x00007f47432d7afb in PyIter_Next ()
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
#15 0x00007f474327b593 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
#16 0x00007f47432799b1 in PyEval_EvalFrameEx ()
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
#17 0x00007f47433af11c in PyEval_EvalCodeEx ()
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
#18 0x00007f4743277f5d in PyEval_EvalFrameEx ()
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
#19 0x00007f47433af11c in PyEval_EvalCodeEx ()
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
#20 0x00007f47433053b0 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
#21 0x00007f47432d82b3 in PyObject_Call ()
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
#22 0x00007f474334c46c in ?? ()
---Type <return> to continue, or q <return> to quit---
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
#23 0x00007f47432d82b3 in PyObject_Call ()
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
#24 0x00007f47432f9535 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
#25 0x00007f47432d82b3 in PyObject_Call ()
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
#26 0x00007f474327639c in PyEval_EvalFrameEx ()
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
#27 0x00007f47433af11c in PyEval_EvalCodeEx ()
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
#28 0x00007f47433053b0 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
#29 0x00007f47432d82b3 in PyObject_Call ()
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
#30 0x00007f474334c46c in ?? ()
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
#31 0x00007f47432d82b3 in PyObject_Call ()
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
#32 0x00007f47432f9535 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
#33 0x00007f47432d82b3 in PyObject_Call ()
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
---Type <return> to continue, or q <return> to quit---
#34 0x00007f474327639c in PyEval_EvalFrameEx ()
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
#35 0x00007f47433af11c in PyEval_EvalCodeEx ()
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
#36 0x00007f4743277f5d in PyEval_EvalFrameEx ()
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
#37 0x00007f47433af11c in PyEval_EvalCodeEx ()
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
#38 0x00007f47433053b0 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
#39 0x00007f47432d82b3 in PyObject_Call ()
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
#40 0x00007f474334c46c in ?? ()
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
#41 0x00007f47432d82b3 in PyObject_Call ()
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
#42 0x00007f47432f9535 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
#43 0x00007f47432d82b3 in PyObject_Call ()
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
#44 0x00007f474327639c in PyEval_EvalFrameEx ()
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
#45 0x00007f47433af11c in PyEval_EvalCodeEx ()
---Type <return> to continue, or q <return> to quit---
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
#46 0x00007f47433053b0 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
#47 0x00007f47432d82b3 in PyObject_Call ()
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
#48 0x00007f47433ae547 in PyEval_CallObjectWithKeywords ()
   from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
#49 0x00007f4746ae7342 in PythonClass::python_function (this=0x7f46900008c0,
目录
相关文章
|
数据采集 JSON 搜索推荐
Python 调用Zoomeye搜索接口
钟馗之眼是一个强大的搜索引擎,不同于百度谷歌,它主要收集网络中的主机,服务等信息,国内互联网安全厂商知道创宇开放了他们的海量数据库,对之前沉淀的数据进行了整合、整理,打造了一个名符其实的网络空间搜索引擎ZoomEye,运用Python接口可以灵活的实现数据采集。
277 0
Python 调用Zoomeye搜索接口
|
数据安全/隐私保护 Python
python接口自动化(三十四)-封装与调用--函数和参数化(详解)
参数化的思维只需记住一点:不要写死,这样就便于维护,否则就会牵一发而动全身,一处修改导致处处修改,不便于维护。
1204 1
python接口自动化(三十四)-封装与调用--函数和参数化(详解)
|
Java C# 决策智能
运筹优化学习09:一个示例带你入门如何使用C++、C#、Java、Python、Matlab调用Cplex(下)
运筹优化学习09:一个示例带你入门如何使用C++、C#、Java、Python、Matlab调用Cplex
运筹优化学习09:一个示例带你入门如何使用C++、C#、Java、Python、Matlab调用Cplex(下)
|
Java 测试技术 C#
运筹优化学习09:一个示例带你入门如何使用C++、C#、Java、Python、Matlab调用Cplex(上)
运筹优化学习09:一个示例带你入门如何使用C++、C#、Java、Python、Matlab调用Cplex
运筹优化学习09:一个示例带你入门如何使用C++、C#、Java、Python、Matlab调用Cplex(上)
|
NoSQL Redis 开发工具
python调用redis-cell(CL.THROTTLE)
python调用redis-cell(CL.THROTTLE)
249 0
python调用redis-cell(CL.THROTTLE)
|
Python Windows
python 3.8.11 版本下geopandas的安装记录
python 3.8.11 版本下geopandas的安装记录
python 3.8.11 版本下geopandas的安装记录
|
Linux Python
linux qt 项目中QProcess调用命令行命令执行python脚本
linux qt 项目中QProcess调用命令行命令执行python脚本
linux qt 项目中QProcess调用命令行命令执行python脚本
|
数据管理 测试技术 API
python接口自动化(三十七)-封装与调用--读取excel 数据(详解)
在进行软件接口测试或设计自动化测试框架时,一个不比可避免的过程就是: 参数化,在利用python进行自动化测试开发时,通常会使用excel来做数据管理,利用xlrd、xlwt开源包来读写excel。例如:当我们登录的账号有多个的时候,我们一般用 excel 存放测试数据,本篇文章介绍,python 读取excel 方法,并保存为字典格式。
382 0
python接口自动化(三十七)-封装与调用--读取excel 数据(详解)
|
jenkins 测试技术 持续交付
python接口自动化(三十六)-封装与调用--流程类接口关联续集(详解)
上一篇已经给大家都介绍过了流程类接口关联,但是由于博客的登录机制改变,所以没有办法给小伙伴们实战演练一下,那么这篇就按照上一篇计划的用jenkins来给小伙伴们演示一下流程类接口的封装和调用,其实很简单,就是用上一篇和前边这篇传送门的代码稍稍修改即可。不知道你自己练习了么,如果练习了,可以看看和我有什么不同,没练习的看看自己思路和我有啥不一样。好了废话少说进入主题
203 0
python接口自动化(三十六)-封装与调用--流程类接口关联续集(详解)
|
jenkins 测试技术 持续交付
python接口自动化(三十五)-封装与调用--流程类接口关联(详解)
流程相关的接口,主要用 session 关联,如果写成函数(如上篇),s 参数每个函数都要带,每个函数多个参数,这时候封装成类会更方便。在这里我们还是以博客园为例,带着小伙伴们实践一下。
394 0
python接口自动化(三十五)-封装与调用--流程类接口关联(详解)