`
realnicky
  • 浏览: 61666 次
  • 来自: 杭州
社区版块
存档分类
最新评论

python coredump的经历[转]

 
阅读更多

最近在写python,用了email/sqlite3/mysql/poplib/等东东。程序写完后进行压力,发现无端端退出了,把ulimit -c 设置成比较大的数字(在linux下默认是0 ),让它产生core文件。跟踪了N个core文件,都是在malloc/free之类的地方,感觉就是多线程问题,冲乱了内存。但是隔着一个python解析器,难以跟踪,花了两三天时间都没找到问题,郁闷了好久。Python都会coredump?用了python好久的高手都不解。

最后没办法,只能“拆卸”来找问题,依次拆了解析mail部分、pop部分、mysql部分,都照样core,最后拆sqlite3,不core了。python2.5可是自称自带sqlite3的啊!!居然有问题。详细研究后,发现python2.5所谓自带sqlite3,其实只是自带了sqlite3的封装接口,还是需要下载sqlite3.4的包进行安装,然后在python2.5的setup.py中修订sqlite3的路径(如果不是默认路径安装),才会生成_sqlite3.so。而sqlite3在linux下编译默认是不支持多线程安全!在windows下反而默认是支持的。GOD!!! 增加多线程选项:

--enable-threadsafe --enable-cross-thread-connections

目前跑得很稳定,不再出现coredump现象。

惨痛的coredump经历,差点打击了我对python的信心!!

分享到:
评论

相关推荐

    GDB之在线调试与Coredump分析

    在线调试是在程序运行的过程中进行调试,而Coredump分析是在程序异常退出后,通过分析Coredump文件了解程序崩溃时的状态,以确定崩溃的原因。 在线调试是开发者在程序运行时进行调试的过程,可以实时查看程序的运行...

    window COREdump文件生成 c++代码

    在Windows操作系统上,生成Coredump文件对于调试和分析C++程序崩溃原因至关重要。Coredump文件包含了程序崩溃时内存中的关键信息,如进程的内存映射、全局变量、堆栈信息等,使得开发者能够定位到问题的具体位置,...

    linux coredump分析方法实例介绍

    Linux Core Dump 分析方法实例介绍 本文将通过实例来介绍 Linux 中如何进行 Core Dump 分析,解决死机问题。 一、Core Dump 介绍 Core Dump 是 Linux 系统中一种特殊的文件,它记录了系统崩溃或死机时的系统状态...

    Linux下生成core dump

    ### Linux下生成Core Dump详解 #### 一、Core Dump简介 在Linux环境下,当一个程序因为某种原因(如段错误)而崩溃时,系统可以自动为该程序创建一个名为“core dump”的文件。这个文件包含了程序崩溃时内存的快照...

    coredump文件的生成与解析.docx

    coredump 文件的生成与解析 coredump 文件是 Linux 操作系统中的一个重要概念,它记录了程序崩溃时的内存状态和寄存器信息,为程序崩溃后的调试和分析提供了重要的依据。本文将详细介绍 coredump 文件的生成和解析...

    Coredump简介及使用

    标题《Coredump简介及使用》和描述《Android Coredump简介及使用_v1.0_***.pdf》揭示了文档主要介绍Coredump的基本概念、产生的原因、控制产生Coredump的方法以及如何使用Coredump文件。Coredump机制广泛存在于多个...

    高通core dump解析工具

    在IT行业中,Core Dump是一种非常重要的调试手段,它记录了程序在崩溃时内存的状态,包括进程的寄存器信息、堆栈轨迹以及内存映射等。对于开发者来说,利用Core Dump进行问题排查能够帮助我们快速定位和修复软件中的...

    Accelerated Linux Core Dump Analysis

    Linux Core Dump 权威书籍

    coredump文件调试

    Core Dump 文件调试 Core Dump 文件调试是指使用 GDB 调试 Core Dump 文件的过程。Core Dump 文件是操作系统执行的一个动作,当某个进程因为一些原因意外终止(crash)的时候,操作系统会将这个进程当时的内存信息...

    coredump问题原理探究-Linux x86版.rar

    在Linux系统中,当应用程序因某种异常而崩溃时,系统可能会生成一个名为"core dump"的文件,这个文件记录了程序崩溃时的内存状态、进程信息以及调用堆栈等重要数据,对于开发者来说,是排查问题的重要工具。...

    容器中生成coredump文件

    如何在让docker中运行的进程生成core dump文件

    ubuntu-linux下程序崩溃生成coredump的方法.pdf

    ### Ubuntu Linux 下程序崩溃生成 Core Dump 的方法 #### 一、Linux 下 Core Dump 文件 **Core Dump 文件** 是一种在程序崩溃时由操作系统自动生成的文件,它包含了程序崩溃时刻的内存快照以及相关的系统信息。这...

    AIX 下的 core dump 分析入门

    AIX 下的 core dump 分析入门.mht,html文档,请大家参考以下

    Linux Debugging(五): coredump 分析入門1

    在Linux系统中,调试是解决程序异常和错误的关键步骤,特别是在遇到程序崩溃并产生coredump时。coredump是操作系统在程序异常终止时保存的内存映像,包含了程序运行时的状态,如内存布局、堆栈信息、全局变量和...

    coredump栈分析

    在IT领域,`coredump`(核心转储)是一种记录程序崩溃时内存状态的文件,它包含了进程在异常发生时的内存映像、寄存器值以及调用堆栈等关键信息。`栈分析`是coredump分析的重要部分,通过分析栈信息,我们可以定位到...

    Linux Debugging: coredump 分析入门的材料

    本篇文章将围绕`coredump`分析进行入门讲解,结合实例深入探讨如何利用`coredump`来解决实际问题。 首先,我们要理解什么是`coredump`。当一个运行在Linux上的应用程序因为某种原因异常终止(如段错误、除零错误等...

    Linux应用程序调试之debug_coredump

    在Linux系统中,当应用程序遇到不可恢复的错误时,如段错误(Segmentation fault),系统会生成一个核心转储文件(core dump)。这个文件包含了进程崩溃时刻的内存映像、寄存器状态以及堆栈信息,是分析和调试程序...

    coredump栈分析介绍

    coredump栈分析介绍 coredump stack frame-pointer 栈分析 coredump stack frame-pointer 栈分析 coredump stack frame-pointer 栈分析,初学者可参考

    海思busybox+coredump

    海思busybox+coredump

Global site tag (gtag.js) - Google Analytics