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,
目录
相关文章
|
6月前
|
安全 JavaScript 前端开发
深入理解Python中的try-except语句,避免代码崩溃的噩梦
深入理解Python中的try-except语句,避免代码崩溃的噩梦
123 0
|
6月前
|
程序员 索引 Python
探索Python异常:让程序不再崩溃!
探索Python异常:让程序不再崩溃!
|
数据采集 JSON 搜索推荐
Python 调用Zoomeye搜索接口
钟馗之眼是一个强大的搜索引擎,不同于百度谷歌,它主要收集网络中的主机,服务等信息,国内互联网安全厂商知道创宇开放了他们的海量数据库,对之前沉淀的数据进行了整合、整理,打造了一个名符其实的网络空间搜索引擎ZoomEye,运用Python接口可以灵活的实现数据采集。
269 0
Python 调用Zoomeye搜索接口
|
开发者
[oeasy]python0099_雅达利大崩溃_IBM的开放架构_兼容机_oem
[oeasy]python0099_雅达利大崩溃_IBM的开放架构_兼容机_oem
135 0
[oeasy]python0099_雅达利大崩溃_IBM的开放架构_兼容机_oem
|
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)
242 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 方法,并保存为字典格式。
370 0
python接口自动化(三十七)-封装与调用--读取excel 数据(详解)