首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

内核转储的设置

简介 当程序运行的过程中异常终止或崩溃,操作系统会将程序当时的内存状态记录下来,保存在一个文件中,这种行为就叫做 Core Dump(中文有的翻译成“核心转储”)。...核心转储如何产生 上面说当程序运行过程中异常终止或崩溃时会发生 core dump,但还没说到什么具体的情景程序会发生异常终止或崩溃。...因为前者会向进程发出 SIGTSTP 信号,该信号的默认操作为暂停进程(Stop Process);后者会向进程发出SIGINT 信号,该信号默认操作为终止进程(Terminate Process)。...而如果我们使用 Ctrl+\ 来终止一个进程,会向进程发出 SIGQUIT 信号,默认是会产生 core dump 的。...(自 Linux 3.7 起)内核配置时没有配置 CONFIG_COREDUMP 选项。

1.9K40

QT常见面试题,基础知识偏多

,同步执行) 当信号发出后,相应的槽函数将立即被调用。...2.Qt::QueuedConnection(排队方式)(此时信号被塞到信号队列里了,信号与槽函数关系类似于消息通信,异步执行) 当信号发出后,排队到信号队列中,需等到接收对象所属线程的事件循环取得控制权时才取得该信号...如果这个参数不设置的话,默认表示的是那种方式呢? 没加的话与直连方式相同:当信号发出后,相应的槽函数将立即被调用。emit语句后的代码将在所有槽函数执行完毕后被执行。...死锁是如何产生的? 答:死锁的产生有如下四个必要条件 1. 资源是互斥的,同一时刻只能有一个进程占有该资源 2. 资源的释放只能有该进程自己完成 3. ...6.不会为引用变量开辟内存空间,它和它引用的变量共用一块内存空间,指针会开辟内存空间 7.引用自加改变引用值的内容,指针自加改变指针的指向 8.sizeof含义不同,引用结果为引用类型的大小,指针始终是地址空间所占大小

5.9K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    详解Linux共享内存的管理

    我们知道,系统进行进程间通信(IPC)的时候,可用的方式包括信号量、共享内存、消息队列、管道、信号(signal)、套接字等形式[2]。...其中显示“dest”表示共享内存段已经被删除,但是还有用户在使用它,当该段内存的mode字段设置为 SHM_DEST时就会显示“dest”。...当用户调用shmctl的IPC_RMID时,内存先查看多少个进程与这个内存关联着,如果关联数为0,就会销 毁这段共享内存,否者设置这段内存的mod的mode位为SHM_DEST,如果所有进程都不用则删除这段共享内存...(header)数 = 0 已用空间 = 0 字节 ---------- 共享内存状态 ------------ 段已分配 11 页已分配 27256...已分配信号量数 = 0 Linux上的ipcs命令,不支持UNIX上的-b、-o指令,同样UNIX中不支持-l、-u指令,所以在编写跨平台的脚本时,需要注意这个问题。

    3.7K50

    Linux信号列表及其详解

    1) SIGHUP 本信号在用户终端连接(正常或非正常)结束时发出, 通常是在终端的控制进程结束时, 通知同一session内的各个作业, 这时它们与控制终端不再关联。...不过可以捕获这个信号,比如wget能捕获SIGHUP信号,并忽略它,这样就算退出了Linux登录,wget也能继续下载。 此外,对于与终端脱离关系的守护进程,这个信号用于通知它重新读取配置文件。...2) SIGINT 程序终止(interrupt)信号, 在用户键入INTR字符(通常是Ctrl-C)时发出,用于通知前台进程组终止进程。...用户键入SUSP字符时(通常是Ctrl-Z)发出这个信号 21) SIGTTIN 当后台作业要从用户终端读数据时, 该作业中的所有进程会收到SIGTTIN信号....,SIGTTOU 默认进程忽略的信号有:SIGCHLD,SIGPWR,SIGURG,SIGWINCH 此外,SIGIO在SVR4是退出,在4.3BSD中是忽略;SIGCONT在进程挂起时是继续,否则是忽略

    14.5K30

    UNIX和Linux信号

    大家用的一般都是非时实信号,下边是信号列表. 1) SIGHUP 本信号在用户终端连接(正常或非正常)结束时发出, 通常是在终端的控制进程结束时, 通知同一session内的各个作业, 这时它们与控制终端不再关联...不过可以捕获这个信号,比如wget能捕获SIGHUP信号,并忽略它,这样就算退出了Linux登录,wget也能继续下载。 此外,对于与终端脱离关系的守护进程,这个信号用于通知它重新读取配置文件。...2) SIGINT 程序终止(interrupt)信号, 在用户键入INTR字符(通常是Ctrl-C)时发出,用于通知前台进程组终止进程。...用户键入SUSP字符时(通常是Ctrl-Z)发出这个信号 21) SIGTTIN 当后台作业要从用户终端读数据时, 该作业中的所有进程会收到SIGTTIN信号....继续执行一个停止的进程 SIGURG  忽略信号    I/O紧急信号 SIGIO   忽略信号    描述符上可以进行I/O SIGCHLD 忽略信号    当子进程停止或退出时通知父进程 SIGTTOU

    4.2K40

    Linux进程信号【信号产生】

    可以通过 man 7 signal 进行查询 man 7 signal 简单总结一下,1~31 号信号对应的功能如下(表格内容引用自 2021dragon Linux中的31个普通信号) 信号编号 信号名...这些都是比较常见的问题,当发生这些问题时,我们可以通过 键盘键入 ctrl + c 发出 2 号信号终止前台进程的运行 下面是一段死循环代码: #include #include...函数是一个 回调函数,当信号发出时,会去调用相应的函数,也就是执行相应的动作 我们先对 2 号信号注册新动作,在尝试按下 ctrl + c,看看它发出的究竟是不是 2 号信号 #include 的进程发出终止信号 C语言中对于越界 读 的检查不够严格,属于抽查行为,因此野指针越界读还不一定报错,但越界写是一定会报错的 权限不匹配:页表中除了保存映射关系外,还会保存该区域的权限情况...,比如 是否命中 / RW 等权限,当发生操作与权限不匹配时,比如 nullptr 只允许读取,并不允许其他行为,此时解引用就会触发 MMU 异常,操作系统识别到后,同样会对对应的进程发出终止信号 页表中的属性

    32110

    【深究】对常驻进程问题再剖析

    启动进程时,shm_attach()方法报错: failed for key 0x6104e88b: No space left on device 当时定位的原因是: 主进程异常退出,导致信号量和共享内存没有回收...,资源耗尽,当再次申请资源时,无可用资源导致。...基于这个思路,并在测试环境不断尝试kill pid动作及进程关闭效果(代码日志),最终定位到是所使用的laravel框架版本及依赖的php版本的问题,导致异步信号量支持的判断失效。...,当Linux启动时,会寻找这些目录中的服务脚本,并根据脚本的run level确定不同的启动级别。...3、事务 这里的事务,与数据库中事务的概念有所不同,是为了保证多个依赖的配置单元之间没有环形引用。比如有A,B,C三个单元,存在环形依赖关系: ? 如果存在这一的依赖,那么将无法启动任意一个服务。

    73920

    Linux下异常信号——Signal

    按发出信号的原因简单分类,如下: (1) 与进程终止相关的信号。 当进程退出,或者子进程终止时,发出这类信号。 (2) 与进程例外事件相关的信号。...6 C 由abort(3)发出的退出指令 SIGFPE 8 C 浮点异常 SIGKILL 9 AEF Kill信号 SIGSEGV 11...C 无效的内存引用 SIGPIPE 13 A 管道破裂:写一个没有读端口的管道 SIGALRM 14 A 由alarm(2)发出的信号 SIGTERM...15 A 终止信号 处理动作一项中的字母含义如下 A 缺省的动作是终止进程 C 缺省的动作是终止进程并进行内核映像转储(dump core),内核映像转储是指将进程数据在内存的映像和进程在内核结构中的部分内容以一定格式转储到文件系统...,log中的这些信号可以直接忽略 11是经常出现且需要重点关注的信号,遇到这个数字千万要放过 6和14,遇到这个信号也千万不要忽略,需要找开发进行分析讨论的哟,它可能是问题,当然,也可能不是问题 其他的信号

    4.6K20

    PYthon signal总结

    我们在信号基础里提到,进程可以无视信号,可以采取默认操作,还可以自定义操作。当handler为signal.SIG_IGN时,信号被无视(ignore)。...当handler为singal.SIG_DFL,进程采取默认操作(default)。当handler为一个函数名时,进程采取函数中定义的操作。 ?...当信号SIGUSR1被传递给该进程时,进程从暂停中恢复,并根据预设,执行SIGTSTP的信号处理函数myHandler()。...但在os包中,有类似于linux的kill命令的函数,分别为 os.kill(pid, sid) os.killpg(pgid, sid) 分别向进程和进程组(见Linux进程关系)发送信号。...C 非法指令 SIGABRT 6 C 由abort(3)发出的退出指令 SIGFPE 8 C 浮点异常 SIGKILL 9 AEF Kill信号 SIGSEGV 11 C 无效的内存引用 SIGPIPE

    4.7K40

    sigaction介绍

    sa_mask sa_mask 指定一个系统在处理该信号时要屏蔽(阻塞)的信号集合,即在调用该信号捕捉函数之前,这一信号集要加进进程的信号屏蔽字中。...仅当从信号捕捉函数返回时再将进程的信号屏蔽字复位为原先值。另外,除了SA_NODEFER标志被指定外,触发信号处理函数执行的那个信号也会被阻塞。...SA_NOCLDWAIT 当调用此系统调用的进程之子进程终止时,系统不会建立zombie进程。...终止进程 用户定义信号1 SIGUSR2 终止进程 用户定义信号2 SIGVTALRM 终止进程 虚拟计时器到时 1) SIGHUP 本信号在用户终端连接(正常或非正常)结束时发出, 通常是在终端的控...用户键入SUSP字符时 (通常是Ctrl-Z)发出这个信号 21) SIGTTIN 当后台作业要从用户终端读数据时, 该作业中的所有进程会收到SIGTTIN 信号.

    1.2K10

    Linux内核同步原理学习笔记

    (3)加锁 当涉及到对数据结构的操作时,比如对链表的处理时, 就不可能仅通过原子指令来保证同步,此时,需要一种锁机制。 程序中的锁机制就像日常生活中的门锁,门后的房间就是临界区。...用户空间可能产生并发的地方有: *共享内存 同一个进程的两个可执行线程,访问共享的内存时可能因为被调度程序抢占后发生重新调度而并发 *信号 信号处理是异步的,如果信号处理程序和进程的其他部分共享数据,则有可能并发...例如交通路口的拥堵。 a.自死锁 如果代码已经获得了某个锁,又再次去获得它,就会造成自死锁。...如果一个进程a试图获得一个已经被占用的信号量时,该进程将被送入一个等待队列,然后睡眠。 持有信号量的进程b将信号量释放后,进程a将被唤醒并获得信号量。...信号量的特性 a.信号量适用于锁会被长期持有时,因为其开销比较大 b.只有在进程上下文中才能获得信号量,因为获取信号量时可能导致睡眠,不适用于中断上下文 c.可以在持有信号量时去睡眠,因此可以在持有信号量的时候和用户空间同步

    1.3K20

    php进程通信-进程信号

    信号值 信号类型 信号说明 SIGHUP 1 终止进程(终端线路挂断) 本信号在用户终端连接(正常或非正常、结束时发出, 通常是在终端的控制进程结束时, 通知同一session内的各个作业, 这时它们与控制终端不再关联...SIGIOT 6 建立CORE文件(执行I/O自陷) SIGIOT 在PDP-11上由iot指令产生, 在其它机器上和SIGABRT一样....通常用来要求程序自己正常退出. shell命令kill缺省产生这个信号. SIGCHLD 17 忽略信号(当子进程停止或退出时通知父进程) SIGCHLD 子进程结束时, 父进程会收到这个信号....用户键入SUSP字符时 (通常是Ctrl-Z、发出这个信号 SIGTTIN 21 停止进程(后端进程读终端) SIGTTIN 当后台作业要从用户终端读数据时, 该作业中的所有进程会收到SIGTTIN 信号...处理超时函数,从而进行超时逻辑,当在30秒处理完毕时,php将关闭改定时信号,正常往下执行 三:其他 1:php进程信号中,无法捕获SIGKILL信号,该信号将会强制关闭进程

    1.5K10

    【QT】QT 的窗口坐标 & 信号与槽

    每个事件都会发出一个信号,例如用户点击按钮会发出**“按钮被点击"的信号,用户关闭窗口会发出"窗口被关闭”**的信号。 Qt 中的所有控件都具有接收信号的能力,一个控件还可以接收多个不同的信号。...槽函数与一般的函数不同的是:槽函数可以与一个信号关联,当信号被发射时,关联的槽函数被自动执行 说明 (1)信号和槽机制底层是通过函数间的相互调用实现的。...代码示例:在窗口中设置一个按钮,当点击 “按钮” 时关闭 “窗口” 这里 QPushButton:: clicked 介绍一下: 注意connect 要求, 这俩参数是匹配的 (button,...但如果想方便的编写槽函数,比如在编写函数时连函数名都不想定义,则可以通过Lambda表达式来达到这个目的。 Lambda表达式 是 C++11 增加的特性。...C++11 中的 Lambda表达式 用于定义并创建匿名的函数对象,以简化编程工作。

    10010

    L007Linux信号、信号处理和信号处理函数

    当检测到某种软件条件已经具备时发出信号,如由alarm或settimer设置的定时器超时时将生成SIGALRM信号。...(2) SIGINT:用户按下组合键时,用户端时向正在运行中的由该终端启动的程序发出此信号。默认动作为终止进程。...(3) SIGQUIT:当用户按下组合键时产生该信号,用户终端向正在运行中的由该终端启动的程序发出此信号。默认动作为终止进程并产生core文件。...(20) SIGTTIN:当后台进程要从用户终端读数据时,该终端中的所有进程会收到SIGTTIN信号。默认动作为暂停进程。...三、进程对信号的响应 当信号发生时,用户可以要求进程以下列3种方式之一对信号做出响应。

    4.2K30

    Linux信号列表

    1) SIGHUP 本信号在用户终端连接(正常或非正常)结束时发出, 通常是在终端的控制进程结束时, 通知同一session内的各个作业, 这时它们与控制终端不再关联。...不过可以捕获这个信号,比如wget能捕获SIGHUP信号,并忽略它,这样就算退出了Linux登录,wget也 能继续下载。 此外,对于与终端脱离关系的守护进程,这个信号用于通知它重新读取配置文件。...2) SIGINT 程序终止(interrupt)信号, 在用户键入INTR字符(通常是Ctrl-C)时发出,用于通知前台进程组终止进程。...用户键入SUSP字符时(通常是Ctrl-Z)发出这个信号 21) SIGTTIN 当后台作业要从用户终端读数据时, 该作业中的所有进程会收到SIGTTIN信号....,SIGTTOU 默认进程忽略的信号有:SIGCHLD,SIGPWR,SIGURG,SIGWINCH 此外,SIGIO在SVR4是退出,在4.3BSD中是忽略;SIGCONT在进程挂起时是继续,否则是忽略

    3K40

    信号(一) - 概念

    互斥锁最常用于管理竞争进程对单个资源的访问。当一个资源有多个相同的副本并且这些副本中的每一个都可以由单独的进程同时使用时,就会使用信号量。考虑一个办公用品商店。...信号量实例和变量信号量是派生自 %SYSTEM.Semaphore 的类的实例。...尽管包含对信号量的引用的变量的名称不必与信号量的名称相对应,但良好的编程习惯表明存在某种关系。像所有对非持久数据的对象引用一样,当最后一个信号量引用被回收时,底层信号量也被删除。...当进程调用WaitMany方法时,会检查等待列表中的每个操作。对于满足的请求,调用目标信号量的WaitComplete方法,然后从等待列表中删除该请求。...当一个信号量被删除时,如果任何等待列表中存在该信号量的挂起递减,则调用 WaitCompleted 回调,递减值为零。它将从映射的系统(本地或远程)中删除。

    37010

    记一次 PHP 并发性能调优实战 -- 性能提升 104%

    当一个进程处于 Sleep 状态的时候, 任然占用了不少 CPU, 先不要怀疑是不是进程的问题, 我们看一下 Ttop 命令的 man page....我们知道中断有硬中断和软中断, 硬中断是由网卡, 鼠标等硬件发出中断信号, cpu 马上停下在做的事情, 处理中断信号. 软中断是由操作系统发出的, 常用于进程的强制调度....不管是 vmstat 还是 pidstat 都只是新能探测工具, 我们无法看到具体的中断是由谁发出的....结合 vmstat 中的命令, 我们可以确定造成 qps 不高的原因之一是过多的进程争抢 CPU 导致的, 我们现在还不能确定具体是什么, 所以还需要进一步的排查. strace strace 可以查看系统调用..., 我们知道, 当使用系统调用的时候, 系统陷入内核态, 这个过程是会产生软中断的, 通过查看 php-fpm 的系统调用, 验证我们的猜想 ?

    2.4K32

    JAVA那点破事!并发、IO模型、集合、线程池、死锁、非阻塞、AQS....

    解决方式有很多, 可以通过,自增版本号方式,永远不会回退 Java中提供了 AtomicStampedReference,增加了标志字段,更新时不光检查值,还要检查当前的标志是否等于预期标志,全部满足条件才会更新...红黑树的时间复杂度 O(logn);链表的时间复杂度 O(n),当链表过长时,红黑树能大大提高查询性能。 ConcurrentHashMap 如何能保证线程安全的?...进程通过将一个或多个fd传递给select,阻塞在select操作上,select帮我们侦测多个fd是否准备就绪,当有fd准备就绪时,select返回数据可读状态,应用程序再调用recvfrom读取数据...信号驱动IO不是用循环请求询问的方式去监控数据就绪状态,而是在调用sigaction时候建立一个SIGIO的信号联系,当内核数据准备好之后再通过SIGIO信号通知线程数据准备好后的可读状态,当线程收到可读状态的信号后...,此时再向内核发起recvfrom读取数据的请求,因为信号驱动IO的模型下应用线程在发出信号监控后即可返回,不会阻塞,所以这样的方式下,一个应用线程也可以同时监控多个fd。

    63130

    重识Nginx - 15 使用信号管理Nginx的父子进程

    文章目录 Nginx 进程管理 :信号 常用信号说明 ---- Nginx 进程管理 :信号 标红的 USR2 、WINCH ,只能通过 kill 的方式 来发送,主要是nginx 热部署的时候使用...---- 常用信号说明 信号 取值 默认动作 含义(发出信号的原因) SIGHUP 1 Term 终端的挂断或进程死亡 SIGINT 2 Term 来自键盘的中断信号 SIGQUIT 3 Core 来自键盘的离开信号...SIGILL 4 Core 非法指令 SIGABRT 6 Core 来自abort的异常信号 SIGFPE 8 Core 浮点例外 SIGKILL 9 Term 杀死 SIGSEGV 11 Core...段非法错误(内存引用无效) SIGPIPE 13 Term 管道损坏:向一个没有读进程的管道写数据 SIGALRM 14 Term 来自alarm的计时器到时信号 SIGTERM 15 Term 终止...Cont 如果停止,继续执行 SIGSTOP 17,19,23 Stop 非来自终端的停止信号 SIGTSTP 18,20,24 Stop 来自终端的停止信号 SIGTTIN 21,21,26 Stop

    64940

    Linux进程间的通信

    进程间的通信有管道、信号、消息队列、信号量、共享内存、套接字等。 一、管道通信 管道通信方式分为无名管道和有名管道,无名通道可用于有亲缘关系进程间的通信,有名通道克服了管道没有名字的限制。...2.只能由于父子进程或者兄弟进程之间 3.单独过程一种独立的文件系统 4.数据的读出和写入:一个进程向管道中写的内容被管道另一端的进程读出。...返回值 若成功则返回0,否则返回-1;,错误原因在errno中 错误代码 EMFILE:进程已用文件描述符最大量 ENFILE:系统已无文件描述符可用 EFAULT:参数filedes数组地址不合法...s",buffer); } } 读写无名管道 二、信号量 信号量是一个计数器,可以用来控制多个进程对共享资源的访问,常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。...三、消息队列 消息队列(message queue) 消息队列是由消息的链表,存放在内核中并有消息队列标识符的标识。克服了信号量传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。

    2K30
    领券